From e7d0b575bbbb99ed3964cd5a2fa094c451b4fac0 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 18 Aug 2023 13:00:54 -0400 Subject: [PATCH] Reshow IME keyboard if it was showing prior to opening attachment keyboard. --- .../securesms/components/InputAwareConstraintLayout.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/InputAwareConstraintLayout.kt b/app/src/main/java/org/thoughtcrime/securesms/components/InputAwareConstraintLayout.kt index ccd320f44f..d6f02b7810 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/InputAwareConstraintLayout.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/InputAwareConstraintLayout.kt @@ -25,6 +25,7 @@ class InputAwareConstraintLayout @JvmOverloads constructor( private var inputId: Int? = null private var input: Fragment? = null + private var wasKeyboardVisibleBeforeToggle: Boolean = false val isInputShowing: Boolean get() = input != null @@ -38,11 +39,12 @@ class InputAwareConstraintLayout @JvmOverloads constructor( } fun hideAll(imeTarget: EditText) { + wasKeyboardVisibleBeforeToggle = false ViewUtil.hideKeyboard(context, imeTarget) hideInput(resetKeyboardGuideline = true) } - fun toggleInput(fragmentCreator: FragmentCreator, imeTarget: EditText, showSoftKeyOnHide: Boolean = false) { + fun toggleInput(fragmentCreator: FragmentCreator, imeTarget: EditText, showSoftKeyOnHide: Boolean = wasKeyboardVisibleBeforeToggle) { if (fragmentCreator.id == inputId) { if (showSoftKeyOnHide) { showSoftkey(imeTarget) @@ -50,6 +52,7 @@ class InputAwareConstraintLayout @JvmOverloads constructor( hideInput(resetKeyboardGuideline = true) } } else { + wasKeyboardVisibleBeforeToggle = isKeyboardShowing hideInput(resetKeyboardGuideline = false) showInput(fragmentCreator, imeTarget) } @@ -57,6 +60,7 @@ class InputAwareConstraintLayout @JvmOverloads constructor( fun hideInput() { hideInput(resetKeyboardGuideline = true) + wasKeyboardVisibleBeforeToggle = false } private fun showInput(fragmentCreator: FragmentCreator, imeTarget: EditText) {