From 0a8361fc7d7f198b2f7dc35c398673a359380d8d Mon Sep 17 00:00:00 2001 From: sspanak Date: Wed, 23 Apr 2025 13:40:06 +0300 Subject: [PATCH] added an option to adjust the suggestion text size --- .../io/github/sspanak/tt9/ime/UiHandler.java | 2 +- .../screens/appearance/AppearanceScreen.java | 7 +++- .../appearance/ItemSuggestionFontSize.java | 39 +++++++++++++++++++ .../tt9/preferences/settings/SettingsUI.java | 8 ++++ .../github/sspanak/tt9/ui/tray/StatusBar.java | 13 ++++++- .../tt9/ui/tray/SuggestionsAdapter.java | 13 ++++++- .../sspanak/tt9/ui/tray/SuggestionsBar.java | 1 + app/src/main/res/values-bg/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 3 +- app/src/main/res/values-iw/strings.xml | 1 + app/src/main/res/values-lt/strings.xml | 1 + app/src/main/res/values-nl/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + .../main/res/xml/prefs_screen_appearance.xml | 4 ++ 21 files changed, 95 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemSuggestionFontSize.java diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/UiHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/UiHandler.java index 8dc1b864..13d29e14 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/UiHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/UiHandler.java @@ -33,7 +33,7 @@ abstract class UiHandler extends AbstractHandler { setInputView(mainView.getView()); createSuggestionBar(); getSuggestionOps().setDarkTheme(); - statusBar = new StatusBar(mainView.getView()); + statusBar = new StatusBar(settings, mainView.getView()); } 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 25a78f8f..33a66506 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 @@ -35,6 +35,7 @@ public class AppearanceScreen extends BaseScreenFragment { ItemShowArrows showArrows = new ItemShowArrows(findPreference(ItemShowArrows.NAME), activity.getSettings()); ItemNumpadFnKeyScale fnKeyWidth = new ItemNumpadFnKeyScale(findPreference(ItemNumpadFnKeyScale.NAME), activity.getSettings()); ItemNumpadKeyFontSize numpadKeyFontSize = new ItemNumpadKeyFontSize(findPreference(ItemNumpadKeyFontSize.NAME), activity.getSettings()); + ItemSuggestionFontSize suggestionFontSize = new ItemSuggestionFontSize(findPreference(ItemSuggestionFontSize.NAME), activity.getSettings()); ItemSelectLayoutType selectLayout = new ItemSelectLayoutType(findPreference(ItemSelectLayoutType.NAME), activity) .addOnChangeItem(alignment) @@ -43,7 +44,8 @@ public class AppearanceScreen extends BaseScreenFragment { .addOnChangeItem(numpadKeyFontSize) .addOnChangeItem(numpadKeyHeight) .addOnChangeItem(numpadShape) - .addOnChangeItem(showArrows); + .addOnChangeItem(showArrows) + .addOnChangeItem(suggestionFontSize); ItemDropDown[] items = { @@ -55,7 +57,8 @@ public class AppearanceScreen extends BaseScreenFragment { keyboardWidth, numpadShape, fnKeyWidth, - numpadKeyFontSize + numpadKeyFontSize, + suggestionFontSize }; for (ItemDropDown item : items) { diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemSuggestionFontSize.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemSuggestionFontSize.java new file mode 100644 index 00000000..7958b404 --- /dev/null +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemSuggestionFontSize.java @@ -0,0 +1,39 @@ +package io.github.sspanak.tt9.preferences.screens.appearance; + +import androidx.preference.DropDownPreference; + +import java.util.LinkedHashMap; + +import io.github.sspanak.tt9.preferences.items.ItemDropDown; +import io.github.sspanak.tt9.preferences.settings.SettingsStore; + +public class ItemSuggestionFontSize extends ItemDropDown implements ItemLayoutChangeReactive{ + public static final String NAME = "pref_suggestion_font_size"; + private final SettingsStore settings; + + public ItemSuggestionFontSize(DropDownPreference item, SettingsStore settings) { + super(item); + this.settings = settings; + } + + @Override + public ItemDropDown populate() { + LinkedHashMap options = new LinkedHashMap<>(); + for (int i = 70; i <= 150; i += 5) { + options.put(i, i + " %"); + } + super.populateIntegers(options); + super.setValue(String.valueOf(settings.getSuggestionFontSizePercent())); + onLayoutChange(settings.getMainViewLayout()); + + return this; + } + + + public void onLayoutChange(int mainViewLayout) { + if (item != null) { + item.setVisible(mainViewLayout != SettingsStore.LAYOUT_STEALTH); + item.setIconSpaceReserved(false); + } + } +} 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 df01d3fc..42ecc3a6 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,14 @@ public class SettingsUI extends SettingsTyping { return getStringifiedInt("pref_font_size", defaultSize); } + public float getSuggestionFontScale() { + return getSuggestionFontSizePercent() / 100f; + } + + public int getSuggestionFontSizePercent() { + return getStringifiedInt("pref_suggestion_font_size", 100); + } + public boolean getSuggestionSmoothScroll() { return prefs.getBoolean("pref_suggestion_smooth_scroll", !DeviceInfo.noTouchScreen(context)); } diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/tray/StatusBar.java b/app/src/main/java/io/github/sspanak/tt9/ui/tray/StatusBar.java index c636376c..8095ea51 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/tray/StatusBar.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/tray/StatusBar.java @@ -1,21 +1,27 @@ package io.github.sspanak.tt9.ui.tray; +import android.text.SpannableString; +import android.text.style.RelativeSizeSpan; import android.view.View; import android.widget.TextView; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import io.github.sspanak.tt9.R; import io.github.sspanak.tt9.ime.modes.InputMode; import io.github.sspanak.tt9.ime.voice.VoiceInputOps; +import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.util.Logger; public class StatusBar { @Nullable private final TextView statusView; + @NonNull private final SettingsStore settings; @Nullable private String statusText; - public StatusBar(@Nullable View mainView) { + public StatusBar(@NonNull SettingsStore settings, @Nullable View mainView) { + this.settings = settings; statusView = mainView != null ? mainView.findViewById(R.id.status_bar) : null; } @@ -63,6 +69,9 @@ public class StatusBar { return; } - statusView.setText(statusText); + SpannableString scaledText = new SpannableString(statusText); + scaledText.setSpan(new RelativeSizeSpan(settings.getSuggestionFontScale()), 0, statusText.length(), 0); + + statusView.setText(scaledText); } } diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/tray/SuggestionsAdapter.java b/app/src/main/java/io/github/sspanak/tt9/ui/tray/SuggestionsAdapter.java index c4385dad..c4c5c238 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/tray/SuggestionsAdapter.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/tray/SuggestionsAdapter.java @@ -3,6 +3,8 @@ package io.github.sspanak.tt9.ui.tray; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Color; +import android.text.SpannableString; +import android.text.style.RelativeSizeSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -21,6 +23,7 @@ public class SuggestionsAdapter extends RecyclerView.Adapter mSuggestions; + private float textSize; private int colorDefault; private int colorHighlight; @@ -46,7 +49,10 @@ public class SuggestionsAdapter extends RecyclerView.AdapterСимвол при двойно натисната „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 04f94a9a..eb503d71 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -49,6 +49,7 @@ Datenschutzerklärung Statusicon Ein Icon anzeigen, wenn die Tastatureingabe aktiv ist. + Schriftgröße der Vorschläge 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. diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 8a51ef9f..bd662441 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -80,6 +80,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. + Tamaño de fuente de las sugerencias 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. diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 6f94d3e0..c041f891 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -109,6 +109,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 + Taille de police des suggestions 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. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 7f590cac..f307057b 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -90,6 +90,7 @@ Abbassa il volume Alza il volume Nuova riga + Dimensione carattere suggerimenti 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. @@ -137,7 +138,7 @@ Layout sullo schermo Notifiche del dizionario Ricevere notifiche sugli aggiornamenti del dizionario e sul progresso del caricamento. - Dimensione del carattere dei tasti + Dimensione carattere dei tasti Altezza Larghezza dei tasti lettera Dimensione del carattere delle impostazioni diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index a8b717ac..6ddfb940 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -63,6 +63,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 bc9b1754..bad788da 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 + Siūlymų šrifto dydis 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 b90a1129..60b267b9 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -49,6 +49,7 @@ Privacybeleid Statusicoon Een icoon tonen wanneer toetsenbordinvoer actief is. + Lettergrootte van suggesties 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. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index dfcdad58..6c835f54 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -111,6 +111,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. + Tamanho da fonte das sugestões Rolagem suave de sugestões Inverter ordem das teclas Limpar Não Selecionados diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4fda50c1..00c84af6 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -105,6 +105,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 0c2c4b76..3896b40f 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -138,6 +138,7 @@ Yazı tipi boyutunu ayarla Standart + Öneri yazı tipi boyutu 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 c9538fd1..c4ff49c1 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 aaeb90b1..2b845cc5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -102,6 +102,7 @@ Privacy Policy Status Icon Show an icon when keyboard input is active. + Suggestion Font Size 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 f905e501..f393b17c 100644 --- a/app/src/main/res/xml/prefs_screen_appearance.xml +++ b/app/src/main/res/xml/prefs_screen_appearance.xml @@ -44,6 +44,10 @@ app:key="pref_numpad_fn_key_width" app:title="@string/pref_numpad_fn_key_width" /> + +