From 1437976f3803d0365cffb133e38ff945c6fc800c Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 10 Jul 2022 18:36:25 +0200 Subject: [PATCH] Fix issue #236 - Wrong custom emoji displayed when filtering --- .../fedilab/android/ui/drawer/ComposeAdapter.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java index 4851b42a5..9a4f9d150 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java @@ -664,6 +664,7 @@ public class ComposeAdapter extends RecyclerView.Adapter emojisList = new ArrayList<>(); /** * Initialize text watcher for content writing * It will allow to complete autocomplete edit text while starting words with @, #, : etc. @@ -672,7 +673,6 @@ public class ComposeAdapter extends RecyclerView.Adapter[] emojis = new List[]{null}; String pattern = "(.|\\s)*(@[\\w_-]+@[a-z0-9.\\-]+|@[\\w_-]+)"; final Pattern mentionPattern = Pattern.compile(pattern); @@ -958,13 +958,13 @@ public class ComposeAdapter extends RecyclerView.Adapter { List emojisToDisplay = new ArrayList<>(); try { - if (emojis[0] == null) { - emojis[0] = new EmojiInstance(context).getEmojiList(BaseMainActivity.currentInstance); + if (emojisList == null || emojisList.size() == 0) { + emojisList = new EmojiInstance(context).getEmojiList(BaseMainActivity.currentInstance); } - if (emojis[0] == null) { + if (emojis == null) { return; } - for (Emoji emoji : emojis[0]) { + for (Emoji emoji : emojisList) { if (shortcode != null && emoji.shortcode.contains(shortcode)) { emojisToDisplay.add(emoji); if (emojisToDisplay.size() >= 10) { @@ -983,7 +983,7 @@ public class ComposeAdapter extends RecyclerView.Adapter 0) { final String search = searchA[searchA.length - 1]; holder.binding.content.setOnItemClickListener((parent, view, position, id) -> { - String shortcodeSelected = emojis[0].get(position).shortcode; + String shortcodeSelected = emojisToDisplay.get(position).shortcode; String deltaSearch = ""; int searchLength = searchDeep; if (currentCursorPosition < searchDeep) { //Less than 15 characters are written before the cursor position