From 3ce5a7da671e74bd778744672818f1315b1bae51 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Thu, 15 Dec 2022 13:32:22 -0500 Subject: [PATCH] Fix emoji toggle behavior when in emoji search mode. When in emoji search, toggle would be set to "emoji" state or act like in "emoji" state. Fix is to show "keyboard" state still when in emoji search. --- .../badges/gifts/flow/GiftFlowConfirmationFragment.kt | 2 +- .../org/thoughtcrime/securesms/components/InputPanel.java | 4 ++++ .../conversation/ConversationParentFragment.java | 8 ++++++-- .../mediasend/v2/review/AddMessageDialogFragment.kt | 8 ++++++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowConfirmationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowConfirmationFragment.kt index 56a732ece..d06417a31 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowConfirmationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowConfirmationFragment.kt @@ -157,7 +157,7 @@ class GiftFlowConfirmationFragment : viewModel.setAdditionalMessage(it) }, onEmojiToggleClicked = { - if (inputAwareLayout.isKeyboardOpen || (!inputAwareLayout.isKeyboardOpen && !inputAwareLayout.isInputOpen)) { + if ((inputAwareLayout.isKeyboardOpen && !emojiKeyboard.isEmojiSearchMode) || (!inputAwareLayout.isKeyboardOpen && !inputAwareLayout.isInputOpen)) { inputAwareLayout.show(it, emojiKeyboard) emojiToggle.setImageResource(R.drawable.ic_keyboard_24) } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java b/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java index 5cdee7a7a..89e0e488f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java @@ -489,6 +489,10 @@ public class InputPanel extends LinearLayout mediaKeyboard.setToMedia(); } + public void setToIme() { + mediaKeyboard.setToIme(); + } + @Override public void onKeyEvent(KeyEvent keyEvent) { composeText.dispatchKeyEvent(keyEvent); 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 d1832e71b..56a6bec30 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java @@ -1171,8 +1171,12 @@ public class ConversationParentFragment extends Fragment @Override public void onKeyboardShown() { inputPanel.onKeyboardShown(); - if (emojiDrawerStub.resolved() && emojiDrawerStub.get().isShowing() && !emojiDrawerStub.get().isEmojiSearchMode()) { - emojiDrawerStub.get().hide(true); + if (emojiDrawerStub.resolved() && emojiDrawerStub.get().isShowing()) { + if (emojiDrawerStub.get().isEmojiSearchMode()) { + inputPanel.setToIme(); + } else { + emojiDrawerStub.get().hide(true); + } } if (attachmentKeyboardStub.resolved() && attachmentKeyboardStub.get().isShowing()) { navigationBarBackground.setVisibility(View.GONE); 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 6aeed0cef..e388709bb 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 @@ -147,8 +147,12 @@ class AddMessageDialogFragment : KeyboardEntryDialogFragment(R.layout.v2_media_a override fun onKeyboardShown() { super.onKeyboardShown() - if (emojiDrawerStub.resolved() && emojiDrawerStub.get().isShowing && !emojiDrawerStub.get().isEmojiSearchMode) { - emojiDrawerStub.get().hide(true) + if (emojiDrawerStub.resolved() && emojiDrawerStub.get().isShowing) { + if (emojiDrawerStub.get().isEmojiSearchMode) { + binding.content.emojiToggle.setToIme() + } else { + emojiDrawerStub.get().hide(true) + } } }