Compare commits
1 commit
1026c82293
...
c4cb1ba3d5
Author | SHA1 | Date | |
---|---|---|---|
c4cb1ba3d5 |
1 changed files with 25 additions and 3 deletions
|
@ -1,11 +1,9 @@
|
||||||
package im.angry.openeuicc.ui.wizard
|
package im.angry.openeuicc.ui.wizard
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Patterns
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.Toast
|
|
||||||
import androidx.core.widget.addTextChangedListener
|
import androidx.core.widget.addTextChangedListener
|
||||||
import com.google.android.material.textfield.TextInputLayout
|
import com.google.android.material.textfield.TextInputLayout
|
||||||
import im.angry.openeuicc.common.R
|
import im.angry.openeuicc.common.R
|
||||||
|
@ -86,10 +84,34 @@ class DownloadWizardDetailsFragment : DownloadWizardActivity.DownloadWizardStepF
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateInputCompleteness() {
|
private fun updateInputCompleteness() {
|
||||||
inputComplete = Patterns.DOMAIN_NAME.matcher(smdp.editText!!.text).matches()
|
inputComplete = isValidAddress(smdp.editText!!.text)
|
||||||
if (state.confirmationCodeRequired) {
|
if (state.confirmationCodeRequired) {
|
||||||
inputComplete = inputComplete && confirmationCode.editText!!.text.isNotEmpty()
|
inputComplete = inputComplete && confirmationCode.editText!!.text.isNotEmpty()
|
||||||
}
|
}
|
||||||
refreshButtons()
|
refreshButtons()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun isValidAddress(input: CharSequence): Boolean {
|
||||||
|
if (!input.contains('.')) return false
|
||||||
|
var fqdn = input
|
||||||
|
var port = 443
|
||||||
|
if (input.contains(':')) {
|
||||||
|
val portIndex = input.lastIndexOf(':')
|
||||||
|
fqdn = input.substring(0, portIndex)
|
||||||
|
port = input.substring(portIndex + 1, input.length).toIntOrNull(10) ?: 0
|
||||||
|
}
|
||||||
|
// see https://en.wikipedia.org/wiki/Port_(computer_networking)
|
||||||
|
if (port < 1 || port > 0xffff) return false
|
||||||
|
// see https://en.wikipedia.org/wiki/Fully_qualified_domain_name
|
||||||
|
if (fqdn.isEmpty() || fqdn.length > 255) return false
|
||||||
|
for (part in fqdn.split('.')) {
|
||||||
|
if (part.isEmpty() || part.length > 64) return false
|
||||||
|
if (part.first() == '-' || part.last() == '-') return false
|
||||||
|
for (c in part) {
|
||||||
|
if (c.isLetterOrDigit() || c == '-') continue
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue