diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-08-31 13:44:42 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-09-02 13:15:27 +0000 |
| commit | 037b816157ebc07dc09023fe22e6688b2af30685 (patch) | |
| tree | 59afc0d8de6fc5647fab2f2e351e08cf068e097d /android/src | |
| parent | 8af0eb4a0396d5a4bacf93b9af0b0424674ce9bf (diff) | |
| download | mullvadvpn-037b816157ebc07dc09023fe22e6688b2af30685.tar.xz mullvadvpn-037b816157ebc07dc09023fe22e6688b2af30685.zip | |
Finish moving button enabling to the widget
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt | 11 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt | 26 |
2 files changed, 24 insertions, 13 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 df3bbd6d07..ce18cec31b 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt @@ -3,7 +3,6 @@ package net.mullvad.mullvadvpn.ui import android.content.Context import android.text.Editable import android.text.TextWatcher -import android.text.style.MetricAffectingSpan import android.view.MotionEvent import android.view.View import android.view.View.OnTouchListener @@ -15,8 +14,6 @@ import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.ui.AccountInputContainer.BorderState import net.mullvad.mullvadvpn.ui.widget.AccountInput -const val MIN_ACCOUNT_TOKEN_LENGTH = 10 - class AccountInputController(val parentView: View, context: Context) { private val disabledBackgroundColor = context.getColor(R.color.white20) private val disabledTextColor = context.getColor(R.color.white) @@ -170,12 +167,6 @@ class AccountInputController(val parentView: View, context: Context) { } } - private fun removeFormattingSpans(text: Editable) { - for (span in text.getSpans(0, text.length, MetricAffectingSpan::class.java)) { - text.removeSpan(span) - } - } - inner class InputWatcher : TextWatcher { override fun beforeTextChanged(text: CharSequence, start: Int, count: Int, after: Int) {} @@ -183,8 +174,6 @@ class AccountInputController(val parentView: View, context: Context) { override fun afterTextChanged(text: Editable) { inputHasFocus = true - removeFormattingSpans(text) - newInput.setButtonEnabled(text.length >= MIN_ACCOUNT_TOKEN_LENGTH) leaveErrorState() } } 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 f4ce3ebbf9..0bb352dcfd 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 @@ -1,6 +1,9 @@ package net.mullvad.mullvadvpn.ui.widget import android.content.Context +import android.text.Editable +import android.text.TextWatcher +import android.text.style.MetricAffectingSpan import android.util.AttributeSet import android.view.LayoutInflater import android.view.View @@ -21,7 +24,20 @@ class AccountInput : LinearLayout { inflater.inflate(R.layout.account_input, this) } - private val input = container.findViewById<TextView>(R.id.login_input) + private val inputWatcher = object : TextWatcher { + override fun beforeTextChanged(text: CharSequence, start: Int, count: Int, after: Int) {} + + override fun onTextChanged(text: CharSequence, start: Int, before: Int, count: Int) {} + + override fun afterTextChanged(text: Editable) { + removeFormattingSpans(text) + setButtonEnabled(text.length >= MIN_ACCOUNT_TOKEN_LENGTH) + } + } + + private val input = container.findViewById<TextView>(R.id.login_input).apply { + addTextChangedListener(inputWatcher) + } private val button = container.findViewById<ImageButton>(R.id.login_button).apply { setOnClickListener { @@ -81,7 +97,7 @@ class AccountInput : LinearLayout { setButtonEnabled(false) } - /*private*/ fun setButtonEnabled(enabled: Boolean) { + private fun setButtonEnabled(enabled: Boolean) { button.apply { if (enabled != isEnabled()) { setEnabled(enabled) @@ -90,4 +106,10 @@ class AccountInput : LinearLayout { } } } + + private fun removeFormattingSpans(text: Editable) { + for (span in text.getSpans(0, text.length, MetricAffectingSpan::class.java)) { + text.removeSpan(span) + } + } } |
