From 1e2c0069315cb1f90e4a260486870a2474a1d080 Mon Sep 17 00:00:00 2001 From: sspanak Date: Wed, 16 Apr 2025 18:14:51 +0300 Subject: [PATCH] enabled re-composing in Japanese and Chinese (not always possible, but better than nothing) --- .../sspanak/tt9/ime/modes/ModeIdeograms.java | 31 +++++++++++++++++-- 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 +- 14 files changed, 42 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeIdeograms.java b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeIdeograms.java index 68425d41..1a36f7f0 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeIdeograms.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeIdeograms.java @@ -19,6 +19,8 @@ public class ModeIdeograms extends ModeWords { protected String NAME; private boolean isFiltering = false; + @NonNull private String lastAcceptedSequence = ""; + @NonNull private String lastAcceptedWord = ""; protected ModeIdeograms(SettingsStore settings, Language lang, InputType inputType, TextField textField) { @@ -86,11 +88,30 @@ public class ModeIdeograms extends ModeWords { super.onPredictions(); } + + @Override + public String recompose() { + if (lastAcceptedWord.isEmpty()) { + return null; + } + + String before = textField.getStringBeforeCursor(lastAcceptedWord.length()); + if (lastAcceptedWord.equals(before)) { + reset(); + digitSequence = lastAcceptedSequence; + return lastAcceptedWord; + } else { + Logger.d(LOG_TAG, "Not recomposing word: '" + before + "' != last word: '" + lastAcceptedWord + "'"); + return null; + } + } + /******************************* ACCEPT WORDS *********************************/ @Override public void onAcceptSuggestion(@NonNull String currentWord, boolean preserveWords) { - if (currentWord.isEmpty() || new Text(currentWord).isNumeric()) { + Text text = new Text(currentWord); + if (text.isEmpty() || text.startsWithWhitespace() || text.isNumeric()) { reset(); Logger.i(LOG_TAG, "Current word is empty or numeric. Nothing to accept."); return; @@ -103,8 +124,14 @@ public class ModeIdeograms extends ModeWords { return; } + + try { - ((IdeogramPredictions) predictions).onAcceptIdeogram(currentWord); + if (!digitSequence.equals(SPECIAL_CHAR_SEQUENCE) && !digitSequence.equals(PUNCTUATION_SEQUENCE)) { + ((IdeogramPredictions) predictions).onAcceptIdeogram(currentWord); + lastAcceptedSequence = digitSequence; + lastAcceptedWord = currentWord; + } } catch (Exception e) { Logger.e(LOG_TAG, "Failed incrementing priority of word: '" + currentWord + "'. " + e.getMessage()); } diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 9103f721..0ebe7deb 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 в края на дума, за да я редактирате. (Не е възможно в някои приложения и при текст на няколко езика) Езици Изтрий всички Дълъг интервал diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index dc44f3c5..95daf98c 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -40,7 +40,7 @@ Automatische Großbuchstaben auf jeder Zeile Jede Zeile mit einem Großbuchstaben beginnen, auch wenn es mitten im Satz ist. Wortnachbearbeitung - Backspace am Wortende drücken, um das Wort zu bearbeiten. (Nicht möglich in manchen Apps, bei gemischtem oder ideografischem Text) + Backspace am Wortende drücken, um das Wort zu bearbeiten. (Nicht möglich in manchen Apps und bei mehrsprachigem Text) Sprachen Lange Leertaste Breite diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 0e331d38..dd120949 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -30,7 +30,7 @@ Mayúsculas automáticas en cada línea Comenzar cada línea con una letra mayúscula, incluso si está en medio de una oración. Recomposición de palabras - Pulsar Backspace al final de la palabra para editar. (No funciona en algunas apps, texto mixto o ideográfico) + Pulsar Backspace al final de la palabra para editarla. (No funciona en algunas apps ni con texto multilingüe) Idiomas Tema oscuro Espacio diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 564d0ffb..6dc25028 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -24,7 +24,7 @@ Majuscules automatiques sur chaque ligne Commencer chaque ligne avec une majuscule, même si elle est au milieu d\'une phrase. Recomposition de mots - Appuyer sur Retour arrière en fin de mot pour le modifier. (Impossible dans certaines applis, texte mixte ou idéographique) + Appuyer sur Retour arrière en fin de mot pour le modifier. (Impossible dans certaines applis et avec du texte multilingue) Langues Supprimer tous Grande barre d\'espace diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index b977fae8..f42a8c8e 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -42,7 +42,7 @@ Maiuscole automatiche su ogni riga Iniziare ogni riga con una lettera maiuscola, anche se è nel mezzo di una frase. Ricomposizione delle parole - Premere Backspace alla fine della parola per modificarla. (Non possibile in alcune app, testo misto o ideografico) + Premere Backspace alla fine della parola per modificarla. (Non possibile in alcune app e con testo multilingue) Lingue Barra spaziatrice lunga diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 2f75d51e..a620b45f 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -44,7 +44,7 @@ רישיות אוטומטיות בכל שורה להתחיל כל שורה באות ראשונה גדולה, גם אם היא באמצע משפט. עריכת מילים - ללחוץ Backspace בסוף מילה כדי לערוך אותה. (לא אפשרי בחלק מהאפליקציות, טקסט מעורב או אידאוגרפי) + ללחוץ על Backspace בסוף מילה כדי לערוך אותה. (לא אפשרי בחלק מהאפליקציות ובטקסט רב-לשוני) שפות ערכת נושא שחורה לאפשר שינוי גודל והזזת המקלדת על ידי גרירת שורת המצב או מקש ההגדרות. diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 30992b0f..f6b2b7dc 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -44,7 +44,7 @@ Automatiniai didžiosios raidės kiekvienoje eilutėje Pradėti kiekvieną eilutę didžiąja raide, net jei ji yra sakinio viduryje. Žodžių redagavimas - Paspausti Backspace žodžio pabaigoje, kad redaguotumėte. (Negalima kai kuriose programose, mišri ar ideografinė kalba) + Paspauskite Backspace žodžio pabaigoje, kad redaguotumėte. (Negalima kai kuriose programose ir su daugiakalbiu tekstu) Kalbos Tamsi išvaizda Taip diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 184e54ff..d6b0d5c7 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -40,7 +40,7 @@ Automatische hoofdletters op elke regel Elke regel beginnen met een hoofdletter, zelfs als het midden van een zin is. Woordherbewerking - Druk op Backspace aan het einde van een woord om het te bewerken. (Niet mogelijk in sommige apps, bij gemengde of ideografische tekst) + Druk op Backspace aan het einde van een woord om het te bewerken. (Niet mogelijk in sommige apps en bij meertalige tekst) Talen Lange spatiebalk Breedte diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 7dab06f6..fd302bb2 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -45,7 +45,7 @@ Letras maiúsculas automáticas em cada linha Começar cada linha com uma letra maiúscula, mesmo que esteja no meio de uma frase. Recomposição de palavras - Pressionar Backspace no fim da palavra para editar. (Não funciona em alguns apps, texto misto ou ideográfico) + Pressionar Backspace no fim da palavra para editar. (Não funciona em alguns apps e com texto em vários idiomas) Idiomas Modo Escuro Permitir redimensionar e mover o teclado arrastando a Barra de Status ou a tecla de Configurações. diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4e40885e..d5cba8f9 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -24,7 +24,7 @@ Автоматические заглавные буквы на каждой строке Начинать каждую строку с заглавной буквы, даже если она в середине предложения. Редактирование слов - Нажать Backspace в конце слова, чтобы его изменить. (Недоступно в некоторых приложениях, при смешанном или иероглифическом тексте) + Нажать Backspace в конце слова, чтобы его изменить. (Недоступно в некоторых приложениях и при многоязычном тексте) Языки Удалить все Длинный пробел diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 19b81a6b..f0deb5e1 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -40,7 +40,7 @@ Her Satıra Büyük Harf ile Başlama Cümlenin ortasında olsa bile her yeni satıra büyük harf ile başlar. Kelime Yeniden Düzenleme - Kelime sonunda Backspace tuşuna basarak düzenle. (Bazı uygulamalarda, karışık ya da ideografik metinlerde mümkün değil) + Kelime sonunda Backspace tuşuna basarak düzenle. (Bazı uygulamalarda ve çok dilli metinlerde mümkün değil) Diller Uzun boşluk tuşu diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c98721a4..57e9cb2c 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -46,7 +46,7 @@ Автоматичні великі літери на кожному рядку Починати кожен рядок з великої літери, навіть якщо він у середині речення. Редагування слів - Натисніть Backspace в кінці слова, щоб відредагувати. (Не працює в деяких програмах, зі змішаним чи ієрогліфічним текстом) + Натисніть Backspace в кінці слова, щоб його відредагувати. (Не працює в деяких програмах і з багатомовним текстом) Мови Темна тема Так diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0d4a3f05..7eaba8e4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -63,7 +63,7 @@ Fast Delete Erase entire words by holding or swiping Backspace. (Not supported in some apps) Word Re-Composition - Press Backspace at word end to edit the word. (Not possible in some apps, with mixed-language or ideographic text) + Press Backspace at word end to edit the word. (Not possible in some apps and with mixed-language text) Languages Dark Theme Yes