diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/AppearanceScreen.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/AppearanceScreen.java index e583a4b9..c332432a 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/AppearanceScreen.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/AppearanceScreen.java @@ -25,6 +25,7 @@ public class AppearanceScreen extends BaseScreenFragment { private void createMainSection() { (new ItemStatusIcon(findPreference(ItemStatusIcon.NAME), activity.getSettings())).populate(); (new ItemDragResize(findPreference(ItemDragResize.NAME), activity.getSettings())).populate(); + (new ItemSuggestionSmoothScroll(findPreference(ItemSuggestionSmoothScroll.NAME), activity.getSettings())).populate(); ItemAlignment alignment = new ItemAlignment(findPreference(ItemAlignment.NAME), activity.getSettings()); ItemNumpadKeyHeight numpadKeyHeight = new ItemNumpadKeyHeight(findPreference(ItemNumpadKeyHeight.NAME), activity.getSettings()); diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemSuggestionSmoothScroll.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemSuggestionSmoothScroll.java new file mode 100644 index 00000000..3401cb93 --- /dev/null +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemSuggestionSmoothScroll.java @@ -0,0 +1,27 @@ +package io.github.sspanak.tt9.preferences.screens.appearance; + +import androidx.preference.Preference; +import androidx.preference.SwitchPreferenceCompat; + +import io.github.sspanak.tt9.preferences.items.ItemClickable; +import io.github.sspanak.tt9.preferences.settings.SettingsStore; + +public class ItemSuggestionSmoothScroll extends ItemClickable { + public static final String NAME = "pref_suggestion_smooth_scroll"; + private final SettingsStore settings; + + public ItemSuggestionSmoothScroll(Preference item, SettingsStore settings) { + super(item); + this.settings = settings; + } + + @Override protected boolean onClick(Preference p) { return true; } + + public ItemSuggestionSmoothScroll populate() { + if (item != null) { + ((SwitchPreferenceCompat) item).setChecked(settings.getSuggestionSmoothScroll()); + } + + return this; + } +} diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java index 4019ca9b..5341771e 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java @@ -123,6 +123,10 @@ public class SettingsUI extends SettingsTyping { return getStringifiedInt("pref_font_size", defaultSize); } + public boolean getSuggestionSmoothScroll() { + return prefs.getBoolean("pref_suggestion_smooth_scroll", !DeviceInfo.noTouchScreen(context)); + } + public int getTheme() { return getStringifiedInt("pref_theme", AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM); } 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 899be9e2..9a343103 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 @@ -270,7 +270,8 @@ public class SuggestionsBar { return; } - mView.setItemAnimator(visibleSuggestions.size() <= SettingsStore.SUGGESTIONS_MAX + 1 ? animator : null); + boolean smooth = settings.getSuggestionSmoothScroll() && visibleSuggestions.size() <= SettingsStore.SUGGESTIONS_MAX + 1; + mView.setItemAnimator(smooth ? animator : null); mSuggestionsAdapter.resetItems(selectedIndex); if (selectedIndex > 0) { @@ -361,7 +362,8 @@ public class SuggestionsBar { return; } - mView.setItemAnimator(Math.abs(selectedIndex - lastScrollIndex) < SettingsStore.SUGGESTIONS_MAX ? animator : null); + boolean smooth = settings.getSuggestionSmoothScroll() && Math.abs(selectedIndex - lastScrollIndex) < SettingsStore.SUGGESTIONS_MAX; + mView.setItemAnimator(smooth ? animator : null); mView.scrollToPosition(containsStem() && selectedIndex == 1 ? 0 : selectedIndex); lastScrollIndex = selectedIndex; } diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 46bfbb57..1a112c29 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -23,7 +23,7 @@ Автоматични главни букви на всеки ред Започвай всеки ред с главна буква, дори и да е в средата на изречение. Редактиране на думи - Връщай списъка с предложения при натискане на Backspace на края на дума. (Не работи в някои приложения.) + Връщай списъка с думи при натискане на Backspace на края на дума. (Не работи в някои приложения.) Езици Изтрий всички Дълъг интервал @@ -126,6 +126,7 @@ Символ при двойно натисната „0“ Нов ред Интервал + Плавно превъртане на списъка с думи Бутони в обратен ред Включете настройката, ако на първият ред са 7–8–9, вместо 1–2–3. Изтрий неизбраните diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index db0f1923..a1ea17d4 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -48,6 +48,7 @@ Häufig verwendete Phrasen merken, um die Genauigkeit der Vorschläge zu verbessern. Statusicon Ein Icon anzeigen, wenn die Tastatureingabe aktiv ist. + Sanftes Scrollen der Wortliste Die Reihenfolge der Tasten umkehren Aktivieren Sie, wenn die Tastatur in der ersten Zeile 7–8–9 anstelle von 1–2–3 hat. Laden abbrechen diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 186a7a77..bc7619b1 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -79,6 +79,7 @@ Error al descargar el diccionario para el idioma \"%1$s\". Verifique la conexión a Internet. Carga del diccionario cancelada. Diccionario cargado con éxito. + Desplazamiento suave de sugerencias Orden de teclas inverso Habilite la configuración si hay 7–8–9 en la primera fila, en lugar de 1–2–3. Configuración inicial diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a67e26f6..5b0650b0 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -63,8 +63,8 @@ Lente Afficher les mots dans les champs de texte en les tapant. Désactiver lorsqu\'une application interrompt la saisie. Méthode alternative de défilement des mots - Activez si parfois vous ne pouvez pas voir toutes les suggestions ou vous avez des difficultés à les défiler. - Afficher les touches de défilement des deux côtés de la liste de suggestions de mots. + Activez si parfois vous ne pouvez pas voir tous les mots ou vous avez des difficultés à les défiler. + Afficher les touches de défilement des deux côtés de la liste de mots. Espace automatique Majuscules automatiques Ajouter automatiquement un espace après signes de ponctuation et mots. @@ -107,6 +107,7 @@ Nouvelle ligne Activer le redimensionnement et le déplacement du clavier en faisant glisser la barre d’état ou la touche Paramètres. Caractère lorsque «0» est appuyé deux fois + Défilement fluide de la liste de mots Inverser l\'ordre des clés Activez le paramètre s\'il y a 7–8–9 sur le premier rang, au lieu de 1–2–3. Supprimer les non sélectionnés diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 3775f69f..98f17a09 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -89,6 +89,7 @@ Abbassa il volume Alza il volume Nuova riga + Scorrimento fluido dei suggerimenti Invertire l\'ordine delle chiavi Abilita l\'impostazione se ci sono 7–8–9 sulla prima riga, invece di 1–2–3. Configurazione iniziale diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index ec8fe68f..eaa57c42 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -62,6 +62,7 @@ לזכור ביטויים נפוצים כדי לשפר את דיוק ההצעות. סמל מצב הצגת סמל כאשר קלט המקלדת פעיל. + גלילה חלקה של הצעות להפוך את סדר המקשים הפעל את ההגדרה אם המקלדת כוללת את המספרים 7-8-9 בשורה הראשונה, במקום 1-2-3. ביטול טעינה diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 5e77ccc0..fe9453e5 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -58,6 +58,7 @@ Tik žodžių sąrašas Vibruoti paspaudus virtualų klavišą. (Neįmanoma visuose įrenginiuose) Pagalba + Sklandus žodžių sąrašo slinkimas Atvirkštinė klavišų tvarka Įjunkite šį nustatymą jei pirmoje eilutėje turite 7–8–9, o ne 1–2–3. diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 2114ca0d..34c233e1 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -48,6 +48,7 @@ Veelgebruikte zinnen onthouden om de nauwkeurigheid van suggesties te verbeteren. Statusicoon Een icoon tonen wanneer toetsenbordinvoer actief is. + Vloeiend suggesties scrollen De volgorde van de toetsen omkeren Activeer als het toetsenbord 7–8–9 op de eerste rij heeft, in plaats van 1–2–3. Laden annuleren diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 6aff8419..392099b5 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -109,6 +109,7 @@ Nova Linha Espaço Utilize essa opção se você possuir as teclas 7–8–9 na linha de cima, ao invés de 1–2–3. + Rolagem suave de sugestões Inverter ordem das teclas Limpar Não Selecionados Sim diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index ae426985..0ad94fa7 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -103,6 +103,7 @@ (зажать) Назад Позвонить + Плавная прокрутка списка слов Перевернутая клавиатура Используйте настройку, если в первом ряду 7–8–9 вместо 1–2–3. Удалить невыбранные diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index bea758f1..1ac26cdb 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -137,6 +137,7 @@ Yazı tipi boyutunu ayarla Standart + Akıcı öneri kaydırma Tuş Düzenini Tersine Çevir Eğer ilk satırda 1–2–3 yerine 7–8–9 kullanıyorsanız bunu aktif edin. diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 8599a002..06c63ece 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -64,6 +64,7 @@ Лише список слів Вібрувати при натисканні віртуальної клавіші. (Неможливо на всіх пристроях) Допомога + Плавне гортання пропозицій Зворотній порядок клавіш Використовуйте це налаштування, якщо у вас в першому ряді 7–8–9 замість 1–2–3. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c017f573..2ab64c60 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -99,6 +99,7 @@ Remember commonly used phrases to improve the suggestions accuracy. Status Icon Show an icon when keyboard input is active. + Smooth Suggestion Scrolling Reverse Key Order Enable if the keypad has 7–8–9 on the first row, instead of 1–2–3. diff --git a/app/src/main/res/xml/prefs_screen_appearance.xml b/app/src/main/res/xml/prefs_screen_appearance.xml index 2e09c647..2bb914a9 100644 --- a/app/src/main/res/xml/prefs_screen_appearance.xml +++ b/app/src/main/res/xml/prefs_screen_appearance.xml @@ -51,6 +51,9 @@ +