summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-09-04 17:39:45 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-09-21 15:28:41 +0000
commitb72167029105770de06e8b3b2943b1a416df5d9e (patch)
tree34db7c62a992d650ededf5366ca3a648c8d94e9a /android/src
parentccf83968cb5f14707990a6b224ab93ee4e0bbcb4 (diff)
downloadmullvadvpn-b72167029105770de06e8b3b2943b1a416df5d9e.tar.xz
mullvadvpn-b72167029105770de06e8b3b2943b1a416df5d9e.zip
Hide keyboard when input focus is lost
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt13
1 files changed, 13 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt
index f238c635bc..0a063fdc87 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt
@@ -1,11 +1,13 @@
package net.mullvad.mullvadvpn.ui.widget
import android.animation.ValueAnimator
+import android.app.Activity
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.view.View.OnLayoutChangeListener
+import android.view.inputmethod.InputMethodManager
import android.widget.ArrayAdapter
import android.widget.ListView
import android.widget.RelativeLayout
@@ -56,6 +58,10 @@ class AccountLogin : RelativeLayout {
private var inputHasFocus by observable(false) { _, _, hasFocus ->
updateBorder()
shouldShowAccountHistory = hasFocus
+
+ if (!hasFocus) {
+ hideKeyboard()
+ }
}
private var shouldShowAccountHistory by observable(false) { _, isShown, show ->
@@ -159,4 +165,11 @@ class AccountLogin : RelativeLayout {
border.borderState = BorderState.UNFOCUSED
}
}
+
+ private fun hideKeyboard() {
+ val inputManagerId = Activity.INPUT_METHOD_SERVICE
+ val inputManager = context.getSystemService(inputManagerId) as InputMethodManager
+
+ inputManager.hideSoftInputFromWindow(windowToken, 0)
+ }
}