diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-08-31 14:17:43 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-09-02 13:15:27 +0000 |
| commit | 2c15eca7ec1585af80903342a5d0a6d3ccedee98 (patch) | |
| tree | 182b7002d38da6f7fbdafdd429dd99029cd0b570 /android/src/main | |
| parent | 037b816157ebc07dc09023fe22e6688b2af30685 (diff) | |
| download | mullvadvpn-2c15eca7ec1585af80903342a5d0a6d3ccedee98.tar.xz mullvadvpn-2c15eca7ec1585af80903342a5d0a6d3ccedee98.zip | |
Move input view management to the widget
Diffstat (limited to 'android/src/main')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt | 29 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt | 26 |
2 files changed, 28 insertions, 27 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt index ce18cec31b..9698e671de 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt @@ -16,10 +16,7 @@ import net.mullvad.mullvadvpn.ui.widget.AccountInput class AccountInputController(val parentView: View, context: Context) { private val disabledBackgroundColor = context.getColor(R.color.white20) - private val disabledTextColor = context.getColor(R.color.white) private val enabledBackgroundColor = context.getColor(R.color.white) - private val enabledTextColor = context.getColor(R.color.blue) - private val errorTextColor = context.getColor(R.color.red) private var inputHasFocus by observable(false) { _, _, hasFocus -> updateBorder() @@ -37,7 +34,7 @@ class AccountInputController(val parentView: View, context: Context) { newInput.loginState = newState when (newState) { - LoginState.Initial -> initialState() + LoginState.Initial -> {} LoginState.InProgress -> loggingInState() LoginState.Success -> successState() LoginState.Failure -> failureState() @@ -87,37 +84,15 @@ class AccountInputController(val parentView: View, context: Context) { container.setOnClickListener { shouldShowAccountHistory = true } } - private fun initialState() { - input.apply { - setTextColor(enabledTextColor) - setEnabled(true) - visibility = View.VISIBLE - } - } - private fun loggingInState() { - input.apply { - setTextColor(disabledTextColor) - setEnabled(false) - visibility = View.VISIBLE - clearFocus() - } accountHistoryList.visibility = View.INVISIBLE } private fun successState() { - input.visibility = View.GONE container.visibility = View.INVISIBLE } private fun failureState() { - input.apply { - findFocus() - setTextColor(errorTextColor) - setEnabled(true) - visibility = View.VISIBLE - } - usingErrorColor = true } @@ -162,7 +137,7 @@ class AccountInputController(val parentView: View, context: Context) { private fun leaveErrorState() { if (usingErrorColor) { - input.setTextColor(enabledTextColor) + newInput.loginState = LoginState.Initial usingErrorColor = false } } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt index 0bb352dcfd..64bad94b5d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt @@ -17,6 +17,10 @@ import net.mullvad.mullvadvpn.ui.LoginState const val MIN_ACCOUNT_TOKEN_LENGTH = 10 class AccountInput : LinearLayout { + private val disabledTextColor = context.getColor(R.color.white) + private val enabledTextColor = context.getColor(R.color.blue) + private val errorTextColor = context.getColor(R.color.red) + private val container = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE).let { service -> val inflater = service as LayoutInflater @@ -78,11 +82,24 @@ class AccountInput : LinearLayout { } private fun initialState() { + input.apply { + setTextColor(enabledTextColor) + setEnabled(true) + visibility = View.VISIBLE + } + button.visibility = View.VISIBLE setButtonEnabled(input.text.length >= MIN_ACCOUNT_TOKEN_LENGTH) } private fun loggingInState() { + input.apply { + setTextColor(disabledTextColor) + setEnabled(false) + visibility = View.VISIBLE + clearFocus() + } + button.visibility = View.GONE setButtonEnabled(false) } @@ -90,11 +107,20 @@ class AccountInput : LinearLayout { private fun successState() { button.visibility = View.GONE setButtonEnabled(false) + + input.visibility = View.GONE } private fun failureState() { button.visibility = View.VISIBLE setButtonEnabled(false) + + input.apply { + findFocus() + setTextColor(errorTextColor) + setEnabled(true) + visibility = View.VISIBLE + } } private fun setButtonEnabled(enabled: Boolean) { |
