From 83479e373ae1f39001308d19cb1c304d88b8e4d2 Mon Sep 17 00:00:00 2001 From: sspanak Date: Sun, 22 Sep 2024 14:02:42 +0300 Subject: [PATCH] added a button to disable the system spell checker --- .../screens/setup/ItemSpellCheck.java | 67 +++++++++++++++++++ .../screens/setup/SetupScreen.java | 2 + .../java/io/github/sspanak/tt9/ui/UI.java | 20 ++++++ app/src/main/res/values-bg/strings.xml | 3 + app/src/main/res/values-de/strings.xml | 3 + app/src/main/res/values-es/strings.xml | 3 + app/src/main/res/values-fr/strings.xml | 3 + app/src/main/res/values-it/strings.xml | 3 + app/src/main/res/values-iw/strings.xml | 3 + app/src/main/res/values-lt/strings.xml | 3 + app/src/main/res/values-nl/strings.xml | 3 + app/src/main/res/values-pt-rBR/strings.xml | 3 + app/src/main/res/values-ru/strings.xml | 3 + app/src/main/res/values-tr/strings.xml | 3 + app/src/main/res/values-uk/strings.xml | 3 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/xml/prefs_screen_setup.xml | 4 ++ docs/user-manual.md | 8 ++- 18 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/ItemSpellCheck.java diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/ItemSpellCheck.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/ItemSpellCheck.java new file mode 100644 index 00000000..e32013ef --- /dev/null +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/ItemSpellCheck.java @@ -0,0 +1,67 @@ +package io.github.sspanak.tt9.preferences.screens.setup; + +import android.content.Intent; +import android.content.pm.ResolveInfo; +import android.provider.Settings; +import android.service.textservice.SpellCheckerService; + +import androidx.preference.Preference; + +import io.github.sspanak.tt9.R; +import io.github.sspanak.tt9.hacks.DeviceInfo; +import io.github.sspanak.tt9.preferences.PreferencesActivity; +import io.github.sspanak.tt9.preferences.items.ItemClickable; +import io.github.sspanak.tt9.ui.UI; + +public class ItemSpellCheck extends ItemClickable { + public ItemSpellCheck(PreferencesActivity activity, Preference item) { + super(item); + + if (DeviceInfo.noTouchScreen(activity)) { + disable(); + item.setVisible(false); + } else if (isSpellCheckEnabled(activity)) { + enable(); + } else { + disable(); + } + } + + private boolean isSpellCheckEnabled(PreferencesActivity activity) { + if (activity == null) { + return false; + } + + Intent spellCheckIntent = new Intent(SpellCheckerService.SERVICE_INTERFACE); + return activity.getPackageManager().resolveService(spellCheckIntent, 0) != null; + } + + @Override + public void enable() { + if (item != null) { + super.enable(); + enableClickHandler(); + item.setSummary(R.string.setup_spell_checker_on); + } + } + + @Override + public void disable() { + if (item != null) { + super.disable(); + item.setSummary(R.string.setup_spell_checker_off); + } + } + + @Override + public void enableClickHandler() { + if (item != null && item.isEnabled()) { + super.enableClickHandler(); + } + } + + @Override + protected boolean onClick(Preference p) { + return UI.showSystemSpellCheckerSettings(p.getContext()); + } +} diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/SetupScreen.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/SetupScreen.java index 07eb3f2e..70da9717 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/SetupScreen.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/SetupScreen.java @@ -45,6 +45,8 @@ public class SetupScreen extends BaseScreenFragment { if (defaultKeyboardItem != null) { new ItemSetDefaultGlobalKeyboard(defaultKeyboardItem, activity).enableClickHandler(); } + + new ItemSpellCheck(activity, findPreference("global_spellchecker")).enableClickHandler(); } private void createHacksSection(boolean isEnabled) { diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/UI.java b/app/src/main/java/io/github/sspanak/tt9/ui/UI.java index f703bd7e..08ff731c 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/UI.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/UI.java @@ -1,6 +1,7 @@ package io.github.sspanak.tt9.ui; import android.app.AlertDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.inputmethodservice.InputMethodService; @@ -22,6 +23,25 @@ public class UI { ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).showInputMethodPicker(); } + public static boolean showSystemSpellCheckerSettings(Context context) { + ComponentName component = new ComponentName( + "com.android.settings", + "com.android.settings.Settings$SpellCheckersSettingsActivity" + ); + + Intent intent = new Intent(); + intent.addCategory(Intent.CATEGORY_LAUNCHER); + intent.setComponent(component); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + + try { + context.startActivity(intent); + return true; + } catch (Exception e) { + return false; + } + } + public static void showSettingsScreen(InputMethodService ims) { Intent prefIntent = new Intent(ims, PreferencesActivity.class); diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index c8483770..780ed97a 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -96,6 +96,9 @@ %1$s е активен %1$s е изключен Натиснете тук, за да включите TT9 от настройките на Андроид. + Системна проверка на правописа + Системната проверка на правописа може да попречи на добавянето на думи. Натиснете тук, за да я изключите. + Изключена (задръж) Зареждане на речник Неуспешно изтегляне на речника за език „%1$s“. Проверете връзката с интернет. diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 6afd84f0..f121917a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -73,6 +73,9 @@ %1$s ist aktiviert %1$s ist deaktiviert Klicken Sie hier, um TT9 in den Android-Einstellungen zu aktivieren. + Systemrechtschreibprüfung + Die Systemrechtschreibprüfung kann das Hinzufügen von Wörtern beeinträchtigen. Klicken Sie hier, um sie zu deaktivieren. + Deaktiviert Zurück Vorheriger Kanal Nächster Kanal diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index eeaee553..7d0e9c90 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -93,6 +93,9 @@ %1$s está habilitado %1$s está deshabilitado Pulse aquí para habilitar TT9 en la configuración de Android + Corrector ortográfico del sistema + El corrector ortográfico del sistema puede interferir con la adición de palabras. Haga clic aquí para desactivarlo. + Desactivado (еspera) Volver Llamar diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 5430fe28..0b0d896e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -89,6 +89,9 @@ %1$s est activé %1$s est désactivé Cliquez ici pour activer TT9 dans les paramètres Android. + Correcteur orthographique du système + Le correcteur orthographique du système peut interférer avec l\'ajout de mots. Cliquez ici pour le désactiver. + Désactivé Retour Chaîne précédente Chaîne suivante diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 69d69b28..cad4f253 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -74,6 +74,9 @@ %1$s è abilitato %1$s è disabilitato Clicca qui per abilitare TT9 dalle impostazioni di Android. + Controllo ortografico di sistema + Il controllo ortografico di sistema può interferire con l\'aggiunta di parole. Clicca qui per disabilitarlo. + Disabilitato Indietro Canale precedente Prossimo canale diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 520ee388..ce56a286 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -89,6 +89,9 @@ %1$s מופעל %1$s מושבת לחץ כאן כדי להפעיל את TT9 מהגדרות Android. + בודק איות מערכת + בודק האיות של המערכת עלול להפריע להוספת מילים. לחץ כאן כדי להשבית. + מנוטרל (החזק) חזור חיוג diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 193ae2ac..7fb9d955 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -100,6 +100,9 @@ „%1$s“ yra išjungtas Spauskite čia norėdami įjungti „TT9“ per „Android“ nustatymus. + Sistemos rašybos tikrintuvas + Sistemos rašybos tikrintuvas gali trukdyti pridėti žodžius. Spustelėkite čia, kad išjungtumėte. + Išjungtas (laikyti nusp.) Atgal mygtukas Skambinti mygtukas diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index b83c1690..5d621faf 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -75,6 +75,9 @@ %1$s is ingeschakeld %1$s is uitgeschakeld Klik hier om TT9 in te schakelen vanuit de Android-instellingen. + Systeemspellingscontrole + De systeemspellingscontrole kan het toevoegen van woorden verstoren. Klik hier om uit te schakelen. + Uitgeschakeld Terug Vorige kanaal Volgende kanaal diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index beed5b7a..cb312b2f 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -86,6 +86,9 @@ %1$s está ativado %1$s está desativado Clique aqui para ativar TT9 nas configurações do Android. + Verificador ortográfico do sistema + O verificador ortográfico do sistema pode interferir na adição de palavras. Clique aqui para desativá-lo. + Desativado (segurar) Voltar Chamada diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 792b5820..85d040c8 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -88,6 +88,9 @@ %1$s активен %1$s отключен Нажмите здесь, чтобы включить TT9 в настройках Android. + Системная проверка орфографии + Системная проверка орфографии может мешать добавлению слов. Нажмите здесь, чтобы отключить. + Отключена (зажать) Назад Позвонить diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 9813261d..e6255171 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -72,6 +72,9 @@ %1$s devrede %1$s devre dışı Android ayarlarında TT9 uygulamasını etkinleştirmek için burayı tıklayın. + Sistem Yazım Denetleyicisi + Sistem yazım denetleyicisi kelime eklemeye müdahale edebilir. Devre dışı bırakmak için buraya tıklayın. + Devre dışı Geri Önceki Seçim Sonraki Seçim diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index ec84dbf6..0d43a79c 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -134,6 +134,9 @@ %1$s вимкнуто Нажміть тут, щоб увімкнути TT9 в налаштуваннях Android. + Системна перевірка орфографії + Системна перевірка орфографії може заважати додаванню слів. Натисніть тут, щоб вимкнути. + Вимкнена (тримати) Назад Подзвонити diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index abb46156..62580521 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -172,6 +172,9 @@ %1$s is enabled %1$s is disabled Click here to enable TT9 from Android Settings. + System Spell Checker + System spell checker may interfere with adding words. Click here to disable. + Disabled (hold) -- diff --git a/app/src/main/res/xml/prefs_screen_setup.xml b/app/src/main/res/xml/prefs_screen_setup.xml index 295e9c91..17610334 100644 --- a/app/src/main/res/xml/prefs_screen_setup.xml +++ b/app/src/main/res/xml/prefs_screen_setup.xml @@ -9,6 +9,10 @@ app:key="global_default_keyboard" app:title="@string/setup_default_keyboard" /> + +