summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorsaber safavi <saber.safavi@codic.se>2022-09-16 13:08:28 +0200
committersaber safavi <saber.safavi@codic.se>2022-09-22 10:31:15 +0200
commit034d5886d35161184ba764b3c358dbee10f5149b (patch)
tree7df7220b8be572b0c7d41f171093f556bb28fb7c /android
parent91a3ec41e28ad948f32bca0791b961c59fea05be (diff)
downloadmullvadvpn-034d5886d35161184ba764b3c358dbee10f5149b.tar.xz
mullvadvpn-034d5886d35161184ba764b3c358dbee10f5149b.zip
Disable account creation while entering account number
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt18
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt4
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) {