summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt11
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt26
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)
+ }
+ }
}