Add port number validation
This commit is contained in:
@@ -13,6 +13,8 @@ import org.koitharu.kotatsu.core.prefs.AppSettings
|
||||
import org.koitharu.kotatsu.core.ui.BasePreferenceFragment
|
||||
import org.koitharu.kotatsu.settings.utils.EditTextBindListener
|
||||
import org.koitharu.kotatsu.settings.utils.PasswordSummaryProvider
|
||||
import org.koitharu.kotatsu.settings.utils.validation.DomainValidator
|
||||
import org.koitharu.kotatsu.settings.utils.validation.PortNumberValidator
|
||||
import java.net.Proxy
|
||||
|
||||
@AndroidEntryPoint
|
||||
@@ -32,7 +34,7 @@ class ProxySettingsFragment : BasePreferenceFragment(R.string.proxy),
|
||||
EditTextBindListener(
|
||||
inputType = EditorInfo.TYPE_CLASS_NUMBER,
|
||||
hint = null,
|
||||
validator = null,
|
||||
validator = PortNumberValidator(),
|
||||
),
|
||||
)
|
||||
findPreference<EditTextPreference>(AppSettings.KEY_PROXY_PASSWORD)?.let { pref ->
|
||||
|
||||
@@ -11,6 +11,8 @@ import org.koitharu.kotatsu.parsers.config.ConfigKey
|
||||
import org.koitharu.kotatsu.settings.utils.AutoCompleteTextViewPreference
|
||||
import org.koitharu.kotatsu.settings.utils.EditTextBindListener
|
||||
import org.koitharu.kotatsu.settings.utils.EditTextDefaultSummaryProvider
|
||||
import org.koitharu.kotatsu.settings.utils.validation.DomainValidator
|
||||
import org.koitharu.kotatsu.settings.utils.validation.HeaderValidator
|
||||
|
||||
fun PreferenceFragmentCompat.addPreferencesFromRepository(repository: RemoteMangaRepository) {
|
||||
val configKeys = repository.getConfigKeys()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.koitharu.kotatsu.settings
|
||||
package org.koitharu.kotatsu.settings.utils.validation
|
||||
|
||||
import okhttp3.HttpUrl
|
||||
import org.koitharu.kotatsu.R
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.koitharu.kotatsu.settings
|
||||
package org.koitharu.kotatsu.settings.utils.validation
|
||||
|
||||
import okhttp3.Headers
|
||||
import org.koitharu.kotatsu.R
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.koitharu.kotatsu.settings.utils.validation
|
||||
|
||||
import org.koitharu.kotatsu.R
|
||||
import org.koitharu.kotatsu.core.util.EditTextValidator
|
||||
|
||||
class PortNumberValidator : EditTextValidator() {
|
||||
|
||||
override fun validate(text: String): ValidationResult {
|
||||
val trimmed = text.trim()
|
||||
if (trimmed.isEmpty()) {
|
||||
return ValidationResult.Success
|
||||
}
|
||||
return if (!checkCharacters(trimmed)) {
|
||||
ValidationResult.Failed(context.getString(R.string.invalid_port_number))
|
||||
} else {
|
||||
ValidationResult.Success
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkCharacters(value: String): Boolean {
|
||||
val intValue = value.toIntOrNull() ?: return false
|
||||
return intValue in 1..65535
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ import dagger.hilt.android.AndroidEntryPoint
|
||||
import org.koitharu.kotatsu.R
|
||||
import org.koitharu.kotatsu.core.ui.AlertDialogFragment
|
||||
import org.koitharu.kotatsu.databinding.PreferenceDialogAutocompletetextviewBinding
|
||||
import org.koitharu.kotatsu.settings.DomainValidator
|
||||
import org.koitharu.kotatsu.settings.utils.validation.DomainValidator
|
||||
import org.koitharu.kotatsu.sync.data.SyncSettings
|
||||
import javax.inject.Inject
|
||||
|
||||
|
||||
@@ -432,4 +432,5 @@
|
||||
<string name="username">Username</string>
|
||||
<string name="password">Password</string>
|
||||
<string name="authorization_optional">Authorization (optional)</string>
|
||||
<string name="invalid_port_number">Invalid port number</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user