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 d6f02b7810..b1c81148a0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/InputAwareConstraintLayout.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/InputAwareConstraintLayout.kt @@ -63,6 +63,15 @@ class InputAwareConstraintLayout @JvmOverloads constructor( wasKeyboardVisibleBeforeToggle = false } + fun hideKeyboard(imeTarget: EditText, keepHeightOverride: Boolean = false) { + if (isKeyboardShowing) { + if (keepHeightOverride) { + overrideKeyboardGuidelineWithPreviousHeight() + } + ViewUtil.hideKeyboard(context, imeTarget) + } + } + private fun showInput(fragmentCreator: FragmentCreator, imeTarget: EditText) { inputId = fragmentCreator.id input = fragmentCreator.create() diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java index d820749032..59a778ac26 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java @@ -444,11 +444,7 @@ public final class ConversationReactionOverlay extends FrameLayout { animatorSet.start(); if (onHideListener != null) { - onHideListener.startHide(); - } - - if (selectedConversationModel.getFocusedView() != null) { - ViewUtil.focusAndShowKeyboard(selectedConversationModel.getFocusedView()); + onHideListener.startHide(selectedConversationModel.getFocusedView()); } animatorSet.addListener(new AnimationCompleteListener() { @@ -760,13 +756,15 @@ public final class ConversationReactionOverlay extends FrameLayout { private void handleActionItemClicked(@NonNull Action action) { hideInternal(new OnHideListener() { - @Override public void startHide() { + @Override + public void startHide(@Nullable View focusedView) { if (onHideListener != null) { - onHideListener.startHide(); + onHideListener.startHide(focusedView); } } - @Override public void onHide() { + @Override + public void onHide() { if (onHideListener != null) { onHideListener.onHide(); } @@ -893,7 +891,7 @@ public final class ConversationReactionOverlay extends FrameLayout { } public interface OnHideListener { - void startHide(); + void startHide(@Nullable View focusedView); void onHide(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index cb9f09fc5a..ad3ea99ee9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -2884,7 +2884,7 @@ class ConversationFragment : ViewUtil.fadeOut(target.quotedIndicatorView!!, 150, View.INVISIBLE) } - ViewUtil.hideKeyboard(requireContext(), itemView) + container.hideKeyboard(composeText, keepHeightOverride = true) viewModel.setHideScrollButtonsForReactionOverlay(true) @@ -2894,9 +2894,13 @@ class ConversationFragment : ReactionsToolbarListener(item.conversationMessage), selectedConversationModel, object : OnHideListener { - override fun startHide() { + override fun startHide(focusedView: View?) { multiselectItemDecoration.hideShade(binding.conversationItemRecycler) ViewUtil.fadeOut(binding.reactionsShade, resources.getInteger(R.integer.reaction_scrubber_hide_duration), View.GONE) + + if (focusedView == composeText) { + container.showSoftkey(composeText) + } } override fun onHide() {