diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java index df052b6cbf..afbaf7ed3c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java @@ -1427,6 +1427,8 @@ public class ConversationFragment extends LoggingFragment implements Multiselect public interface ConversationFragmentListener extends VoiceNoteMediaControllerOwner { boolean isKeyboardOpen(); + boolean isAttachmentKeyboardOpen(); + void openAttachmentKeyboard(); void setThreadId(long threadId); void handleReplyMessage(ConversationMessage conversationMessage); void onMessageActionToolbarOpened(); @@ -1599,6 +1601,8 @@ public class ConversationFragment extends LoggingFragment implements Multiselect conversationViewModel.setShowScrollButtons(false); } + boolean isAttachmentKeyboardOpen = listener.isAttachmentKeyboardOpen(); + listener.handleReaction(item.getConversationMessage(), new ReactionsToolbarListener(item.getConversationMessage()), selectedConversationModel, @@ -1630,6 +1634,10 @@ public class ConversationFragment extends LoggingFragment implements Multiselect if (showScrollButtons) { conversationViewModel.setShowScrollButtons(true); } + + if (isAttachmentKeyboardOpen) { + listener.openAttachmentKeyboard(); + } } }); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java index 2469caeba4..21d6732113 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java @@ -3887,6 +3887,9 @@ public class ConversationParentFragment extends Fragment reactionDelegate.setOnActionSelectedListener(onActionSelectedListener); reactionDelegate.setOnHideListener(onHideListener); reactionDelegate.show(requireActivity(), recipient.get(), conversationMessage, groupViewModel.isNonAdminInAnnouncementGroup(), selectedConversationModel); + if (attachmentKeyboardStub.resolved()) { + attachmentKeyboardStub.get().hide(true); + } } @Override @@ -3964,6 +3967,16 @@ public class ConversationParentFragment extends Fragment return container.isKeyboardOpen(); } + @Override + public boolean isAttachmentKeyboardOpen() { + return attachmentKeyboardStub.resolved() && attachmentKeyboardStub.get().isShowing(); + } + + @Override + public void openAttachmentKeyboard() { + attachmentKeyboardStub.get().show(container.getKeyboardHeight(), true); + } + @Override public void setThreadId(long threadId) { this.threadId = threadId;