From ea019321e6e2958656bd74a333bfdcbd904ff421 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Thu, 3 Sep 2020 22:21:31 -0500 Subject: [PATCH] Revert "NumberPickerFactory: Show and hide keyboard using InputMethodManager" This reverts commit 6967def950939fde3ad1158d0f34b50c3ba80636. InputMethodManager method does not work reliably on widgets. It also cannot reliably hide the keyboard. --- .../org/isoron/androidbase/utils/InterfaceUtils.kt | 13 ------------- .../common/dialogs/NumberPickerFactory.kt | 13 ++++++------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/android/android-base/src/main/java/org/isoron/androidbase/utils/InterfaceUtils.kt b/android/android-base/src/main/java/org/isoron/androidbase/utils/InterfaceUtils.kt index 7e00ba27c..6ce0abae8 100644 --- a/android/android-base/src/main/java/org/isoron/androidbase/utils/InterfaceUtils.kt +++ b/android/android-base/src/main/java/org/isoron/androidbase/utils/InterfaceUtils.kt @@ -22,7 +22,6 @@ import android.content.* import android.graphics.* import android.util.* import android.view.* -import android.view.inputmethod.* import android.widget.* import android.widget.TextView.* import androidx.core.view.* @@ -83,16 +82,4 @@ object InterfaceUtils { return ViewCompat.getLayoutDirection(view!!) == ViewCompat.LAYOUT_DIRECTION_RTL } -} - -fun Context.getInputManager() = - this.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager - -fun Context.showKeyboard() { - this.getInputManager().toggleSoftInput(InputMethodManager.SHOW_FORCED, - InputMethodManager.HIDE_IMPLICIT_ONLY) -} - -fun Context.hideKeyboard() { - this.getInputManager().toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0) } \ No newline at end of file diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberPickerFactory.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberPickerFactory.kt index 71d32f349..d50907100 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberPickerFactory.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberPickerFactory.kt @@ -20,11 +20,12 @@ package org.isoron.uhabits.activities.common.dialogs import android.content.* +import androidx.appcompat.app.* import android.text.* import android.view.* +import android.view.WindowManager.LayoutParams.* import android.view.inputmethod.* import android.widget.* -import androidx.appcompat.app.* import org.isoron.androidbase.activities.* import org.isoron.androidbase.utils.* import org.isoron.uhabits.* @@ -69,16 +70,14 @@ class NumberPickerFactory val v = picker.value + 0.05 * picker2.value callback.onNumberPicked(v) } + .setOnDismissListener{ + callback.onNumberPickerDismissed() + } .create() dialog.setOnShowListener { picker.getChildAt(0)?.requestFocus() - context.showKeyboard() - } - - dialog.setOnDismissListener { - context.hideKeyboard() - callback.onNumberPickerDismissed() + dialog.window?.setSoftInputMode(SOFT_INPUT_STATE_ALWAYS_VISIBLE) } InterfaceUtils.setupEditorAction(picker, TextView.OnEditorActionListener { _, actionId, _ ->