From ddf4dd5bc9ad1aa58d334819b6ca5a53baf92f0f Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Fri, 11 Aug 2023 18:14:07 -0500 Subject: [PATCH] Anything, even newline, can end an emoji search --- .../java/eu/siacs/conversations/ui/ConversationFragment.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 5ee483e1122cc2199903a87faaff827947b57036..2a01be14fec3a04de78ff914d5ce3614e5d6c304 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -1407,6 +1407,7 @@ public class ConversationFragment extends XmppFragment setupEmojiSearch(); emojiPopup = new PopupWindow(emojiSearchBinding.getRoot(), WindowManager.LayoutParams.MATCH_PARENT, (int) (activity.getResources().getDisplayMetrics().density * 150)); Handler emojiDebounce = new Handler(Looper.getMainLooper()); + final Pattern notEmojiSearch = Pattern.compile("[^\\w\\(\\)\\+'\\-]"); binding.textinput.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) { @@ -1418,7 +1419,7 @@ public class ConversationFragment extends XmppFragment return; } final String q = s.toString().substring(lastColon + 1); - if (q.matches(".*[^\\w\\(\\)\\+'\\-].*")) { + if (notEmojiSearch.matcher(q).find()) { emojiPopup.dismiss(); } else { EmojiSearch.EmojiSearchAdapter adapter = ((EmojiSearch.EmojiSearchAdapter) emojiSearchBinding.emoji.getAdapter());