From dcdd78486ade153b99fff73189937647ea09011a Mon Sep 17 00:00:00 2001 From: sspanak Date: Wed, 26 Mar 2025 11:15:24 +0200 Subject: [PATCH] disabled the suggestion scrolling animation when there are too many words for even better performance --- .../io/github/sspanak/tt9/ui/tray/SuggestionsBar.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/tray/SuggestionsBar.java b/app/src/main/java/io/github/sspanak/tt9/ui/tray/SuggestionsBar.java index 61dd36c4..335c5e53 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/tray/SuggestionsBar.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/tray/SuggestionsBar.java @@ -38,6 +38,7 @@ public class SuggestionsBar { @Nullable private List suggestions = new ArrayList<>(); @NonNull private final List visibleSuggestions = new ArrayList<>(); + private final DefaultItemAnimator animator = new DefaultItemAnimator(); private final ResizableMainView mainView; private final Runnable onItemClick; @Nullable private final RecyclerView mView; @@ -73,8 +74,6 @@ public class SuggestionsBar { return; } - DefaultItemAnimator animator = new DefaultItemAnimator(); - animator.setMoveDuration(SettingsStore.SUGGESTIONS_SELECT_ANIMATION_DURATION); animator.setChangeDuration(SettingsStore.SUGGESTIONS_TRANSLATE_ANIMATION_DURATION); animator.setAddDuration(SettingsStore.SUGGESTIONS_TRANSLATE_ANIMATION_DURATION); @@ -197,7 +196,7 @@ public class SuggestionsBar { setStem(newSuggestions, containsGenerated); addManySuggestions(newSuggestions, mView != null ? SettingsStore.SUGGESTIONS_MAX : Integer.MAX_VALUE); selectedIndex = Math.min(selectedIndex, visibleSuggestions.size() - 1); - displaySuggestions(); + displaySuggestions(visibleSuggestions.size() <= SettingsStore.SUGGESTIONS_MAX); } @@ -267,11 +266,12 @@ public class SuggestionsBar { } - private void displaySuggestions() { + private void displaySuggestions(boolean withScrollAnimation) { if (mView == null) { return; } + mView.setItemAnimator(withScrollAnimation ? animator : null); mSuggestionsAdapter.resetItems(selectedIndex); if (selectedIndex > 0) { mView.scrollToPosition(selectedIndex);