diff options
Diffstat (limited to 'android')
3 files changed, 24 insertions, 12 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/EditCustomDnsServerHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/EditCustomDnsServerHolder.kt index 797cd8a683..5e62f47209 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/EditCustomDnsServerHolder.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/EditCustomDnsServerHolder.kt @@ -2,14 +2,13 @@ package net.mullvad.mullvadvpn.ui.customdns import android.text.Editable import android.text.TextWatcher -import android.view.KeyEvent import android.view.View import android.view.View.OnFocusChangeListener -import android.view.inputmethod.EditorInfo import android.widget.EditText import java.net.InetAddress import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.R +import net.mullvad.mullvadvpn.util.setOnEnterOrDoneAction import net.mullvad.talpid.util.addressString class EditCustomDnsServerHolder( @@ -33,13 +32,7 @@ class EditCustomDnsServerHolder( } } - setOnEditorActionListener { _, action, event -> - if (action == EditorInfo.IME_ACTION_DONE || event?.keyCode == KeyEvent.KEYCODE_ENTER) { - saveDnsServer() - } - - false - } + setOnEnterOrDoneAction(::saveDnsServer) } private val watcher: TextWatcher = object : TextWatcher { 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 e9e05234f2..d2de7c4334 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 @@ -16,6 +16,7 @@ import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.ui.LoginState import net.mullvad.mullvadvpn.util.SegmentedInputFormatter +import net.mullvad.mullvadvpn.util.setOnEnterOrDoneAction import net.mullvad.talpid.util.EventNotifier const val MIN_ACCOUNT_TOKEN_LENGTH = 10 @@ -46,6 +47,7 @@ class AccountInput : LinearLayout { private val input = container.findViewById<EditText>(R.id.login_input).apply { addTextChangedListener(inputWatcher) + setOnEnterOrDoneAction(::login) onFocusChangeListener = OnFocusChangeListener { view, inputHasFocus -> hasFocus = inputHasFocus && view.isEnabled @@ -63,9 +65,7 @@ class AccountInput : LinearLayout { } private val button = container.findViewById<ImageButton>(R.id.login_button).apply { - setOnClickListener { - onLogin?.invoke(input.text.replace(Regex("[^0-9]"), "")) - } + setOnClickListener { login() } } val onFocusChanged = EventNotifier(false) @@ -110,6 +110,10 @@ class AccountInput : LinearLayout { onLogin?.invoke(accountNumber) } + private fun login() { + onLogin?.invoke(input.text.replace(Regex("[^0-9]"), "")) + } + private fun initialState() { input.apply { setTextColor(enabledTextColor) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/EditTextExt.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/EditTextExt.kt new file mode 100644 index 0000000000..b90201edfe --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/EditTextExt.kt @@ -0,0 +1,15 @@ +package net.mullvad.mullvadvpn.util + +import android.view.KeyEvent +import android.view.inputmethod.EditorInfo +import android.widget.EditText + +fun EditText.setOnEnterOrDoneAction(callback: () -> Unit) { + setOnEditorActionListener { _, action, event -> + if (action == EditorInfo.IME_ACTION_DONE || event?.keyCode == KeyEvent.KEYCODE_ENTER) { + callback() + } + + false + } +} |
