diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardAwareLinearLayout.java b/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardAwareLinearLayout.java index 69a46a72c5..eb97e475c2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardAwareLinearLayout.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/KeyboardAwareLinearLayout.java @@ -16,11 +16,9 @@ */ package org.thoughtcrime.securesms.components; -import android.annotation.TargetApi; import android.content.Context; import android.graphics.Rect; import android.os.Build; -import android.os.Build.VERSION_CODES; import android.preference.PreferenceManager; import android.util.AttributeSet; import android.util.DisplayMetrics; @@ -107,10 +105,6 @@ public class KeyboardAwareLinearLayout extends LinearLayoutCompat { } private void updateKeyboardState() { - updateKeyboardState(Integer.MAX_VALUE); - } - - private void updateKeyboardState(int previousHeight) { if (viewInset == 0) viewInset = getViewInset(); getWindowVisibleDisplayFrame(rect); @@ -130,11 +124,7 @@ public class KeyboardAwareLinearLayout extends LinearLayoutCompat { onKeyboardOpen(keyboardHeight); } } else if (keyboardOpen) { - if (previousHeight == keyboardHeight) { - onKeyboardClose(); - } else { - postDelayed(() -> updateKeyboardState(keyboardHeight), 100); - } + onKeyboardClose(); } } @@ -159,7 +149,6 @@ public class KeyboardAwareLinearLayout extends LinearLayoutCompat { } } - @TargetApi(VERSION_CODES.LOLLIPOP) private int getViewInset() { try { Field attachInfoField = View.class.getDeclaredField("mAttachInfo"); diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageDialogFragment.kt index e388709bba..092a00a399 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageDialogFragment.kt @@ -253,11 +253,7 @@ class AddMessageDialogFragment : KeyboardEntryDialogFragment(R.layout.v2_media_a binding.hud.showSoftkey(binding.content.addAMessageInput) } else { requestedEmojiDrawer = true - binding.hud.hideSoftkey(binding.content.addAMessageInput) { - binding.hud.post { - binding.hud.show(binding.content.addAMessageInput, emojiDrawerStub.get()) - } - } + binding.hud.show(binding.content.addAMessageInput, emojiDrawerStub.get()) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/composer/StoryReplyComposer.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/composer/StoryReplyComposer.kt index 832b3fffe1..9ac3127651 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/composer/StoryReplyComposer.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/composer/StoryReplyComposer.kt @@ -1,10 +1,8 @@ package org.thoughtcrime.securesms.stories.viewer.reply.composer -import android.app.Dialog import android.content.Context import android.util.AttributeSet import android.view.View -import android.view.ViewGroup import android.view.inputmethod.EditorInfo import android.widget.FrameLayout import android.widget.TextView @@ -147,6 +145,10 @@ class StoryReplyComposer @JvmOverloads constructor( emojiDrawer.onCloseEmojiSearch() } + fun close() { + inputAwareLayout.hideCurrentInput(input) + } + private fun onEmojiToggleClicked() { if (!emojiDrawer.isInitialised) { callback?.onInitializeEmojiDrawer(emojiDrawer) @@ -159,12 +161,8 @@ class StoryReplyComposer @JvmOverloads constructor( callback?.onHideEmojiKeyboard() } else { isRequestingEmojiDrawer = true - inputAwareLayout.hideSoftkey(input) { - inputAwareLayout.post { - inputAwareLayout.show(input, emojiDrawer) - emojiDrawer.post { callback?.onShowEmojiKeyboard() } - } - } + inputAwareLayout.show(input, emojiDrawer) + emojiDrawer.post { callback?.onShowEmojiKeyboard() } } } @@ -175,22 +173,4 @@ class StoryReplyComposer @JvmOverloads constructor( fun onShowEmojiKeyboard() = Unit fun onHideEmojiKeyboard() = Unit } - - companion object { - fun installIntoBottomSheet(context: Context, dialog: Dialog): StoryReplyComposer { - val container: ViewGroup = dialog.findViewById(R.id.container) - - val oldComposer: StoryReplyComposer? = container.findViewById(R.id.input) - if (oldComposer != null) { - return oldComposer - } - - val composer = StoryReplyComposer(context) - - composer.id = R.id.input - - container.addView(composer) - return composer - } - } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt index 318e6b1431..39a4110371 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt @@ -338,6 +338,10 @@ class StoryGroupReplyFragment : override fun onPageSelected(child: StoryViewsAndRepliesPagerParent.Child) { currentChild = child updateNestedScrolling() + + if (currentChild != StoryViewsAndRepliesPagerParent.Child.REPLIES) { + composer.close() + } } private fun updateNestedScrolling() { diff --git a/app/src/main/res/layout/stories_group_replies_fragment.xml b/app/src/main/res/layout/stories_group_replies_fragment.xml index caabd0232a..b268f97261 100644 --- a/app/src/main/res/layout/stories_group_replies_fragment.xml +++ b/app/src/main/res/layout/stories_group_replies_fragment.xml @@ -10,11 +10,11 @@