summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-09-01 19:43:26 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-09-02 13:15:27 +0000
commit31c77a24ca5372160a66985cda47b6b8c29c75e9 (patch)
tree08333c1bd5f0941d1a04b046f19755045a97cf52 /android/src
parentb636f3d99f0d45707d3b86efdb1ff09f5de28368 (diff)
downloadmullvadvpn-31c77a24ca5372160a66985cda47b6b8c29c75e9.tar.xz
mullvadvpn-31c77a24ca5372160a66985cda47b6b8c29c75e9.zip
Replace text watcher with a text changed event
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt23
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountInput.kt3
2 files changed, 8 insertions, 18 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 ac89633db1..54f006f762 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountInputController.kt
@@ -1,8 +1,6 @@
package net.mullvad.mullvadvpn.ui
import android.content.Context
-import android.text.Editable
-import android.text.TextWatcher
import android.view.View
import android.widget.ArrayAdapter
import android.widget.ListView
@@ -44,6 +42,10 @@ class AccountInputController(val parentView: View, context: Context) {
onFocusChanged.subscribe(this) { hasFocus ->
inputHasFocus = hasFocus
}
+
+ onTextChanged.subscribe(this) { _ ->
+ leaveErrorState()
+ }
}
var accountHistory: ArrayList<String>? = null
@@ -66,14 +68,9 @@ class AccountInputController(val parentView: View, context: Context) {
get() = newInput.onLogin
set(value) { newInput.onLogin = value }
- init {
- input.apply {
- addTextChangedListener(InputWatcher())
- }
- }
-
fun onDestroy() {
newInput.onFocusChanged.unsubscribe(this)
+ newInput.onTextChanged.unsubscribe(this)
}
private fun loggingInState() {
@@ -130,14 +127,4 @@ class AccountInputController(val parentView: View, context: Context) {
usingErrorColor = false
}
}
-
- inner class InputWatcher : 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) {
- 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 f3e2d3493c..fd1c5a1e96 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
@@ -38,6 +38,7 @@ class AccountInput : LinearLayout {
override fun afterTextChanged(text: Editable) {
removeFormattingSpans(text)
setButtonEnabled(text.length >= MIN_ACCOUNT_TOKEN_LENGTH)
+ onTextChanged.notify(Unit)
}
}
@@ -58,6 +59,8 @@ class AccountInput : LinearLayout {
val onFocusChanged = EventNotifier(false)
private var hasFocus by onFocusChanged.notifiable()
+ val onTextChanged = EventNotifier(Unit)
+
var loginState by observable(LoginState.Initial) { _, _, state ->
when (state) {
LoginState.Initial -> initialState()