1
0
Fork 0

added an alternative suggestion scrolling method to fix invisible suggestions on some older devices

This commit is contained in:
sspanak 2023-08-11 18:04:20 +03:00 committed by Dimo Karaivanov
parent a1235e95ac
commit 936c7d3479
14 changed files with 48 additions and 1 deletions

View file

@ -265,6 +265,10 @@ public class SettingsStore {
/************* internal settings *************/
public int getSuggestionScrollingDelay() {
return prefs.getBoolean("pref_alternative_suggestion_scrolling", false) ? 200 : 0;
}
public int getDictionaryImportProgressUpdateInterval() { return 250; /* ms */ }
public int getDictionaryImportWordChunkSize() { return 1000; /* words */ }

View file

@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.view.View;
import androidx.core.content.ContextCompat;
@ -27,12 +28,17 @@ public class SuggestionsBar {
private final TraditionalT9 tt9;
private SuggestionsAdapter mSuggestionsAdapter;
private final Handler alternativeScrollingHandler = new Handler();
private final int suggestionScrollingDelay;
public SuggestionsBar(TraditionalT9 tt9, View mainView) {
super();
this.tt9 = tt9;
suggestionScrollingDelay = tt9.getSettings().getSuggestionScrollingDelay();
mView = mainView.findViewById(R.id.suggestions_bar);
mView.setLayoutManager(new LinearLayoutManager(mainView.getContext(), RecyclerView.HORIZONTAL,false));
@ -148,7 +154,11 @@ public class SuggestionsBar {
mSuggestionsAdapter.notifyItemChanged(oldIndex);
mSuggestionsAdapter.notifyItemChanged(selectedIndex);
mView.scrollToPosition(selectedIndex);
if (suggestionScrollingDelay > 0) {
alternativeScrollingHandler.postDelayed(() -> mView.scrollToPosition(selectedIndex), suggestionScrollingDelay);
} else {
mView.scrollToPosition(selectedIndex);
}
}