Change summary
src/cheogram/java/com/cheogram/android/EmojiSearch.java | 3
src/main/java/eu/siacs/conversations/ui/ConversationFragment.java | 10
2 files changed, 10 insertions(+), 3 deletions(-)
Detailed changes
@@ -291,13 +291,14 @@ public class EmojiSearch {
});
}
- public void search(final Activity activity, final String q) {
+ public void search(final Activity activity, final RecyclerView view, final String q) {
executor.execute(() -> {
final List<Emoji> results = find(q);
try {
// Acquire outside so to not block UI thread
doingUpdate.acquire();
activity.runOnUiThread(() -> {
+ try { view.getItemAnimator().endAnimations(); } catch (final Exception e) { }
submitList(results, () -> {
activity.runOnUiThread(() -> doingUpdate.release());
});
@@ -1623,6 +1623,13 @@ public class ConversationFragment extends XmppFragment
return adapter;
}
+ @Override
+ protected void onViewHidden() {
+ if (getRecyclerView() == null) return;
+ try { getRecyclerView().getItemAnimator().endAnimations(); } catch (final Exception e) { }
+ super.onViewHidden();
+ }
+
@Override
protected void onQuery(@Nullable CharSequence query) {
if (!activity.xmppConnectionService.getBooleanPreference("message_autocomplete", R.bool.message_autocomplete)) return;
@@ -1630,8 +1637,7 @@ public class ConversationFragment extends XmppFragment
emojiDebounce.removeCallbacksAndMessages(null);
emojiDebounce.postDelayed(() -> {
if (getRecyclerView() == null) return;
- try { getRecyclerView().getItemAnimator().endAnimations(); } catch (final Exception e) { }
- adapter.search(activity, query.toString());
+ adapter.search(activity, getRecyclerView(), query.toString());
}, 100L);
}
})