From 7e3d2c0062c19d580b7f8e60e91d88c56c6ed315 Mon Sep 17 00:00:00 2001 From: sspanak Date: Mon, 3 Mar 2025 19:12:36 +0200 Subject: [PATCH] added an compatibility option for hiding the composing text for apps like Deezer and Smouldering Durtles --- .../java/io/github/sspanak/tt9/hacks/InputType.java | 11 ----------- .../java/io/github/sspanak/tt9/ime/TypingHandler.java | 9 ++++----- .../github/sspanak/tt9/ime/helpers/SuggestionOps.java | 2 +- .../io/github/sspanak/tt9/ime/helpers/TextField.java | 4 ++-- .../tt9/preferences/settings/SettingsHacks.java | 4 ++++ app/src/main/res/values-bg/strings.xml | 2 ++ app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values-es/strings.xml | 2 ++ app/src/main/res/values-fr/strings.xml | 2 ++ app/src/main/res/values-it/strings.xml | 2 ++ app/src/main/res/values-iw/strings.xml | 2 ++ app/src/main/res/values-lt/strings.xml | 2 ++ app/src/main/res/values-nl/strings.xml | 2 ++ app/src/main/res/values-pt-rBR/strings.xml | 2 ++ app/src/main/res/values-ru/strings.xml | 2 ++ app/src/main/res/values-tr/strings.xml | 2 ++ app/src/main/res/values-uk/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/prefs_screen_keypad.xml | 6 ++++++ docs/help/help.de.md | 7 +++++++ docs/help/help.en.md | 7 +++++++ docs/help/help.es.md | 7 +++++++ docs/help/help.fr.md | 7 +++++++ docs/help/help.it.md | 7 +++++++ docs/help/help.pt.md | 7 +++++++ docs/help/help.ru.md | 7 +++++++ docs/help/help.tr.md | 7 +++++++ docs/help/help.uk.md | 7 +++++++ 28 files changed, 106 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/hacks/InputType.java b/app/src/main/java/io/github/sspanak/tt9/hacks/InputType.java index 6f9673aa..2ecb53b4 100644 --- a/app/src/main/java/io/github/sspanak/tt9/hacks/InputType.java +++ b/app/src/main/java/io/github/sspanak/tt9/hacks/InputType.java @@ -49,17 +49,6 @@ public class InputType extends StandardInputType { } - /** - * isDeezerSearchBar - * The field for searching songs and artists in Deezer does not support composing text, which - * prevents the user from typing normally. This hack detects the search field, so that we can - * disable composing at the right place. - */ - public boolean isDeezerSearchBar() { - return isAppInput("deezer.android.app", 32769) && field.imeOptions == 33554438; - } - - /** * isDuoLingoReportBug * When reporting a bug in the Duolingo app, the text field is missing the TYPE_TEXT flag, which diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java index 202397c8..9b978c12 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java @@ -30,14 +30,13 @@ public abstract class TypingHandler extends KeyPadHandler { // internal settings/data @NonNull protected AppHacks appHacks = new AppHacks(null, null, null); @NonNull protected InputType inputType = new InputType(null, null); - @NonNull protected TextField textField = new TextField(null, null); + @NonNull protected TextField textField = new TextField(null, null, null); @NonNull protected TextSelection textSelection = new TextSelection(this,null); @NonNull protected SuggestionOps suggestionOps = new SuggestionOps(null, null, null, null, null); // input - protected ArrayList allowedInputModes = new ArrayList<>(); - @NonNull - protected InputMode mInputMode = InputMode.getInstance(null, null, null, null, InputMode.MODE_PASSTHROUGH); + @NonNull protected ArrayList allowedInputModes = new ArrayList<>(); + @NonNull protected InputMode mInputMode = InputMode.getInstance(null, null, null, null, InputMode.MODE_PASSTHROUGH); // language protected ArrayList mEnabledLanguages; @@ -85,7 +84,7 @@ public abstract class TypingHandler extends KeyPadHandler { } inputType = new InputType(connection, field); - textField = new TextField(connection, field); + textField = new TextField(settings, connection, field); textSelection = new TextSelection(this, connection); // changing the TextField and notifying all interested classes is an atomic operation diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/helpers/SuggestionOps.java b/app/src/main/java/io/github/sspanak/tt9/ime/helpers/SuggestionOps.java index a22480d8..65a87bcb 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/helpers/SuggestionOps.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/helpers/SuggestionOps.java @@ -24,7 +24,7 @@ public class SuggestionOps { delayedAcceptHandler = new Handler(Looper.getMainLooper()); this.onDelayedAccept = onDelayedAccept != null ? onDelayedAccept : s -> {}; - this.textField = textField != null ? textField : new TextField(null, null); + this.textField = textField != null ? textField : new TextField(null, null, null); if (settings != null && mainView != null && onSuggestionClick != null) { suggestionBar = new SuggestionsBar(settings, mainView, onSuggestionClick); } diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/helpers/TextField.java b/app/src/main/java/io/github/sspanak/tt9/ime/helpers/TextField.java index e7c358bc..db4560fd 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/helpers/TextField.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/helpers/TextField.java @@ -27,11 +27,11 @@ public class TextField extends InputField { private final boolean isNonText; - public TextField(InputConnection inputConnection, EditorInfo inputField) { + public TextField(SettingsStore settings, InputConnection inputConnection, EditorInfo inputField) { super(inputConnection, inputField); InputType inputType = new InputType(inputConnection, inputField); - isComposingSupported = !inputType.isNumeric() && !inputType.isLimited() && !inputType.isRustDesk() && !inputType.isDeezerSearchBar(); + isComposingSupported = !inputType.isNumeric() && !inputType.isLimited() && !inputType.isRustDesk() && (settings == null || settings.getAllowComposingText()); isNonText = !inputType.isText(); } diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java index 1e253dd6..3295ca97 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java @@ -69,4 +69,8 @@ class SettingsHacks extends BaseSettings { public void setDonationsVisible(boolean yes) { prefsEditor.putBoolean("pref_show_donations", yes).apply(); } + + public boolean getAllowComposingText() { + return prefs.getBoolean("pref_allow_composing_text", true); + } } diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index c692cbb3..c97b0603 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -112,6 +112,7 @@ Бърз Умерен Бавен + Думите ще бъдат видими в текстовите полета, докато пишете. Изключете за приложения, които прекъсват нормалното писане. Алтернативен метод за превъртане на думи Включете, ако понякога не виждате целия списък с думи или не може да стигнете до всички. Показвай клавишите за избор на думи от двете страни на списъка с предложения. @@ -203,4 +204,5 @@ Натиснете и задръжте, за да отворите в браузъра. Бутон „%1$s“ е зададен за функция „%2$s“. Искате ли да го зададете за „%3$s“? * Натиснете или задръжте клавиш, за да го присвоите на функцията „%1$s“.\n\n* Натиснете 0, за да отмените.\n\n* Натиснете 2, за да деактивирате функцията. + Показвай текст при съставяне diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 3279cad0..97d89923 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -29,6 +29,7 @@ Schnell Mäßig Langsam + Wörter in Textfeldern beim Tippen anzeigen. Deaktivieren, wenn eine App das Tippen unterbricht. Alternative Wort-Scroll-Methode Aktivieren Sie, wenn Sie manchmal nicht alle Vorschläge sehen können oder Probleme beim Scrollen haben. Bildlauf-Tasten auf beiden Seiten der Wortvorschlagsliste anzeigen. @@ -205,4 +206,5 @@ Nächster Vorschlag Filter löschen Einstellungsbildschirm anzeigen + Zusammengesetzten Text anzeigen diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c0c728d6..1f0bfcd0 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -66,6 +66,7 @@ Rápido Moderado Lento + Mostrar las palabras en los campos de texto al escribirlas. Desactivar cuando una aplicación interrumpa la escritura. Método alternativo de desplazamiento de sugerencias Habilítelo si a veces no puedes ver todas las sugerencias o tienes problemas para desplazarte por ellas. Mostrar teclas de desplazamiento en ambos lados de la lista de sugerencias de palabras. @@ -203,4 +204,5 @@ Mantén presionado para abrir en un navegador. La tecla \"%1$s\" ya está asignada a la función \"%2$s\". ¿Desea asignarla a \"%3$s\"? * Presione o mantenga pulsada una tecla para asignarla a la función \"%1$s\".\n\n* Presione 0 para cancelar.\n\n* Presione 2 para desactivar la función. + Mostrar texto en composición diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index d3f1ebb9..f8902fb2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -61,6 +61,7 @@ Rapide Modérée 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. @@ -203,4 +204,5 @@ La touche \"%1$s\" est déjà attribuée à la fonction \"%2$s\". Voulez-vous l’attribuer à \"%3$s\" ? * Appuyez ou maintenez une touche pour l’attribuer à la fonction \"%1$s\".\n\n* Appuyez sur 0 pour annuler.\n\n* Appuyez sur 2 pour désactiver la fonction. (maintenir) + Afficher texte en cours diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 528d2168..e82d27aa 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -31,6 +31,7 @@ Veloce Moderata Lenta + Mostra le parole nei campi di testo durante la digitazione. Disattiva quando un\'app interrompe la digitazione. Metodo alternativo di scorrimento delle suggerimenti Abilitare se a volte non riesci a vedere tutti i suggerimenti o hai problemi a scorrerli. Mostra i tasti di scorrimento su entrambi i lati della lista dei suggerimenti di parole. @@ -206,5 +207,6 @@ Modalità di input successiva Selezionare tastiera Mostrare impostazioni + Mostra testo in composizione diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 0d02f705..76e9f58b 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -33,6 +33,7 @@ מהיר בינוני איטי + הצגת המילים בשדות טקסט בעת ההקלדה. השבת כאשר אפליקציה מפריעה להקלדה. שיטת גלילת מילים אלטרנטיבית הפעל אם לפעמים אי אפשר לראות את כל ההצעות או יש בעיות בגלילתן. הצגת מקשי גלילה בשני צידי רשימת הצעות המילים. @@ -210,4 +211,5 @@ נקה מסנן ערוך טקסט הצעה קודמת + הצגת טקסט בהרכבה diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 3d3d4c93..9d131ee9 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -33,6 +33,7 @@ Greitas Vidutinis Lėtas + Rodyti žodžius teksto laukuose rašant. Išjungti, kai programa nutraukia rašymą. Alternatyvus slinkimo būdas per pasiūlytus žodžius Įjunkite, jei kartais nematote viso žodžių sąrašo arba kyla problemų juos pasirenkant. Rodyti slinkties klavišus abiejose žodžių pasiūlymų sąrašo pusėse. @@ -212,4 +213,5 @@ Paspauskite ir laikykite, kad atidarytumėte naršyklėje. Klavišas „%1$s“ jau priskirtas funkcijai „%2$s“. Ar norite jį priskirti „%3$s“? * Paspauskite arba palaikykite klavišą, kad priskirtumėte jį funkcijai „%1$s“.\n\n* Paspauskite 0, kad atšauktumėte.\n\n* Paspauskite 2, kad išjungtumėte funkciją. + Rodyti rašomą tekstą diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 108e1dd8..ec1f8fa5 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -28,6 +28,7 @@ Snel Gematigd Langzaam + Woorden weergeven in tekstvelden tijdens het typen. Uitschakelen wanneer een app het typen onderbreekt. Alternatieve suggestiescrolmethode Inschakelen als je soms niet alle suggesties kunt zien of problemen hebt met het scrollen. Pijltoetsen @@ -204,4 +205,5 @@ Volgende suggestie Volgende taal Filter wissen + Compositietekst weergeven diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 81d242f3..8b1322ce 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -34,6 +34,7 @@ Rápido Moderado Lento + Exibir as palavras nos campos de texto ao digitá-las. Desativar quando um app interromper a digitação. Método alternativo de rolagem de sugestões Ative se às vezes não conseguir ver todas as sugestões ou tiver problemas para rolá-las. Mostrar teclas de rolagem em ambos os lados da lista de sugestões de palavras. @@ -210,4 +211,5 @@ Limpar Filtro Editar Texto Sugestão Anterior + Mostrar texto em composição diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 132957d9..25cd4b87 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -61,6 +61,7 @@ Быстро Умеренное Медленное + Отображать слова в текстовых полях при вводе. Отключать, когда приложение прерывает ввод. Альтернативный метод прокрутки слов Включите, если иногда вы не видите все слова или у вас возникают проблемы с их прокруткой. Показывать клавиши прокрутки с обеих сторон списка предложенных слов. @@ -203,4 +204,5 @@ Нажмите и удерживайте, чтобы открыть в браузере. Клавиша «%1$s» уже назначена на функцию «%2$s». Назначить её на «%3$s»? * Нажмите или удерживайте клавишу, чтобы назначить её на функцию «%1$s».\n\n* Нажмите 0, чтобы отменить.\n\n* Нажмите 2, чтобы отключить функцию. + Показывать текст при вводе diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 04aeb69a..35204d66 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -29,6 +29,7 @@ Hızlı Normal Yavaş + Yazarken kelimeleri metin alanlarında göster. Bir uygulama yazmayı kesintiye uğrattığında devre dışı bırak. Alternatif Kaydırmalı Tahmin Tüm önerileri göremediğiniz ya da tahminlerde kaydırma yapamadığınız zaman etkinleştirin. Kelime öneri listesinin her iki tarafında kaydırma tuşlarını göster. @@ -208,4 +209,5 @@ \"%1$s\" tuşu zaten \"%2$s\" işlevine atanmış. Onu \"%3$s\" işlevine atamak ister misiniz? * \"%1$s\" işlevine atamak için bir tuşa basın veya basılı tutun.\n\n* İptal etmek için 0\'a basın.\n\n* İşlevi devre dışı bırakmak için 2\'ye basın. (basılı tut) + Yazılan metni göster diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index e31220b6..9aedfb82 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -35,6 +35,7 @@ Швидко Середній Повільний + Відображати слова в текстових полях під час введення. Вимикати, коли застосунок перериває введен Альтернативний метод прокрутки пропозицій Увімкніть, якщо ви іноді не бачите всіх пропозицій або не можете їх прокрутити. Показувати клавіші прокрутки з обох боків списку пропонованих слів. @@ -214,4 +215,5 @@ Натисніть і утримуйте, щоб відкрити в браузері. \"%1$s\" tuşu zaten \"%2$s\" işlevine atanmış. Onu \"%3$s\" işlevine atamak ister misiniz? * Натисніть або утримуйте клавішу, щоб призначити її функції «%1$s».\n\n* Натисніть 0, щоб скасувати.\n\n* Натисніть 2, щоб вимкнути функцію. + Показувати текст під час введення diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a96c6333..a3ad7006 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -47,6 +47,8 @@ Quick Moderate Slow + Show Composing Text + Display the words in text fields while typing them. Disable when an app interrupts typing. Alternative Suggestion Scrolling Method Enable if sometimes you can not see all suggestions or have trouble scrolling them. Arrow Keys diff --git a/app/src/main/res/xml/prefs_screen_keypad.xml b/app/src/main/res/xml/prefs_screen_keypad.xml index fd0ae7c9..3f5a9a36 100644 --- a/app/src/main/res/xml/prefs_screen_keypad.xml +++ b/app/src/main/res/xml/prefs_screen_keypad.xml @@ -41,6 +41,12 @@ android:key="pref_key_pad_debounce_time" android:title="@string/pref_hack_key_pad_debounce_time" /> + +