From d86743a989455e08caa2ebbbee5f4bd217ecd3ec Mon Sep 17 00:00:00 2001 From: Avently <7953703+avently@users.noreply.github.com> Date: Tue, 17 Sep 2024 21:19:49 +0700 Subject: [PATCH] check validity of fields --- .../common/views/usersettings/NetworkAndServers.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/NetworkAndServers.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/NetworkAndServers.kt index 21db832385..ca15e58340 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/NetworkAndServers.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/NetworkAndServers.kt @@ -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),