check validity of fields

This commit is contained in:
Avently
2024-09-17 21:19:49 +07:00
parent 0d087df1f3
commit d86743a989
@@ -288,7 +288,9 @@ fun SocksProxySettings(
networkProxySaved.auth == proxyAuthModeUnsaved.value &&
onionHosts.value == onionHostsSaved.value
) ||
remember { derivedStateOf { !validPort(portUnsaved.value.text) } }.value
!validCredential(usernameUnsaved.value.text) ||
!validCredential(passwordUnsaved.value.text) ||
!validPort(portUnsaved.value.text)
val resetDisabled = hostUnsaved.value.text.trim() == "localhost" && portUnsaved.value.text.trim() == "9050" && proxyAuthRandomUnsaved.value && onionHosts.value == NetCfg.defaults.onionHosts
ModalView(
close = {
@@ -348,7 +350,7 @@ fun SocksProxySettings(
usernameUnsaved,
stringResource(MR.strings.network_proxy_username),
modifier = Modifier.fillMaxWidth(),
isValid = { !it.contains(':') && !it.contains('@') },
isValid = ::validCredential,
keyboardActions = KeyboardActions(onNext = { defaultKeyboardAction(ImeAction.Next) }),
keyboardType = KeyboardType.Text,
)
@@ -356,7 +358,7 @@ fun SocksProxySettings(
passwordUnsaved,
stringResource(MR.strings.network_proxy_password),
modifier = Modifier.fillMaxWidth(),
isValid = { !it.contains(':') && !it.contains('@') },
isValid = ::validCredential,
keyboardActions = KeyboardActions(onNext = { defaultKeyboardAction(ImeAction.Next) }),
keyboardType = KeyboardType.Password,
)
@@ -487,6 +489,9 @@ fun validPort(s: String): Boolean {
return s.isNotBlank() && s.matches(validPort)
}
private fun validCredential(s: String): Boolean =
!s.contains(':') && !s.contains('@')
fun showWrongProxyConfigAlert() {
AlertManager.shared.showAlertMsg(
title = generalGetString(MR.strings.network_proxy_incorrect_config_title),