From 3716d69b0ba8f86e087eb8e7cef52d6d3dce403b Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 15 Nov 2018 10:17:07 -0800 Subject: [PATCH] Dismiss emoji variation popup when keyboard is dismissed. Fixes #8372 --- .../securesms/components/emoji/EmojiPageView.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/org/thoughtcrime/securesms/components/emoji/EmojiPageView.java b/src/org/thoughtcrime/securesms/components/emoji/EmojiPageView.java index 0cb893596..c1ef63087 100644 --- a/src/org/thoughtcrime/securesms/components/emoji/EmojiPageView.java +++ b/src/org/thoughtcrime/securesms/components/emoji/EmojiPageView.java @@ -21,6 +21,7 @@ public class EmojiPageView extends FrameLayout implements VariationSelectorListe private GridLayoutManager layoutManager; private RecyclerView.OnItemTouchListener scrollDisabler; private VariationSelectorListener variationSelectorListener; + private EmojiVariationSelectorPopup popup; public EmojiPageView(@NonNull Context context, @NonNull EmojiSelectionListener emojiSelectionListener, @@ -34,8 +35,9 @@ public class EmojiPageView extends FrameLayout implements VariationSelectorListe recyclerView = view.findViewById(R.id.emoji); layoutManager = new GridLayoutManager(context, 8); scrollDisabler = new ScrollDisabler(); + popup = new EmojiVariationSelectorPopup(context, emojiSelectionListener); adapter = new EmojiPageViewGridAdapter(EmojiProvider.getInstance(context), - new EmojiVariationSelectorPopup(context, emojiSelectionListener), + popup, emojiSelectionListener, this); @@ -54,6 +56,13 @@ public class EmojiPageView extends FrameLayout implements VariationSelectorListe adapter.setEmoji(model.getDisplayEmoji()); } + @Override + protected void onVisibilityChanged(@NonNull View changedView, int visibility) { + if (visibility != VISIBLE) { + popup.dismiss(); + } + } + @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { int idealWidth = getContext().getResources().getDimensionPixelOffset(R.dimen.emoji_drawer_item_width);