diff options
| author | saber safavi <saber.safavi@codic.se> | 2022-09-16 13:08:28 +0200 |
|---|---|---|
| committer | saber safavi <saber.safavi@codic.se> | 2022-09-22 10:31:15 +0200 |
| commit | 034d5886d35161184ba764b3c358dbee10f5149b (patch) | |
| tree | 7df7220b8be572b0c7d41f171093f556bb28fb7c | |
| parent | 91a3ec41e28ad948f32bca0791b961c59fea05be (diff) | |
| download | mullvadvpn-034d5886d35161184ba764b3c358dbee10f5149b.tar.xz mullvadvpn-034d5886d35161184ba764b3c358dbee10f5149b.zip | |
Disable account creation while entering account number
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt | 18 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt | 4 |
2 files changed, 17 insertions, 5 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt index 989202f9a0..98c78c5ea1 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt @@ -21,7 +21,9 @@ import net.mullvad.mullvadvpn.ui.extension.requireMainActivity import net.mullvad.mullvadvpn.ui.fragments.ACCOUNT_TOKEN_ARGUMENT_KEY import net.mullvad.mullvadvpn.ui.fragments.BaseFragment import net.mullvad.mullvadvpn.ui.fragments.DeviceListFragment +import net.mullvad.mullvadvpn.ui.widget.AccountInput import net.mullvad.mullvadvpn.ui.widget.AccountLogin +import net.mullvad.mullvadvpn.ui.widget.Button import net.mullvad.mullvadvpn.ui.widget.HeaderBar import net.mullvad.mullvadvpn.util.JobTracker import net.mullvad.mullvadvpn.viewmodel.LoginViewModel @@ -40,6 +42,8 @@ class LoginFragment : BaseFragment(), NavigationBarPainter { private lateinit var scrollArea: ScrollView private lateinit var background: View private lateinit var headerBar: HeaderBar + private lateinit var input: AccountInput + private lateinit var createAccountButton: Button @Deprecated("Refactor code to instead rely on Lifecycle.") private val jobTracker = JobTracker() @@ -68,8 +72,12 @@ class LoginFragment : BaseFragment(), NavigationBarPainter { onClearHistory = loginViewModel::clearAccountHistory } - view.findViewById<net.mullvad.mullvadvpn.ui.widget.Button>(R.id.create_account) - .setOnClickAction("createAccount", jobTracker, loginViewModel::createAccount) + createAccountButton = view.findViewById(R.id.create_account) + createAccountButton.setOnClickAction( + "createAccount", + jobTracker, + loginViewModel::createAccount + ) scrollArea = view.findViewById(R.id.scroll_area) @@ -81,7 +89,7 @@ class LoginFragment : BaseFragment(), NavigationBarPainter { loginViewModel.clearState() triggerAutoLoginIfAccountTokenPresent() - + input = accountLogin.findViewById(R.id.input) return view } @@ -95,6 +103,9 @@ class LoginFragment : BaseFragment(), NavigationBarPainter { false } } + input.onTextChanged.subscribe(this) { + createAccountButton.isEnabled = it.isEmpty() + } } override fun onResume() { @@ -105,6 +116,7 @@ class LoginFragment : BaseFragment(), NavigationBarPainter { override fun onStop() { jobTracker.cancelAllJobs() requireMainActivity().backButtonHandler = null + input.onTextChanged.unsubscribe(this) super.onStop() } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt index ea4ce8a211..1312e4ddfd 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt @@ -41,7 +41,7 @@ class AccountInput : LinearLayout { override fun afterTextChanged(text: Editable) { removeFormattingSpans(text) setButtonEnabled(text.length >= MIN_ACCOUNT_TOKEN_LENGTH) - onTextChanged.notify(Unit) + onTextChanged.notify(text.toString()) } } @@ -71,7 +71,7 @@ class AccountInput : LinearLayout { val onFocusChanged = EventNotifier(false) private var hasFocus by onFocusChanged.notifiable() - val onTextChanged = EventNotifier(Unit) + val onTextChanged = EventNotifier("") var loginState by observable(LoginState.Initial) { _, _, state -> when (state) { |
