diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java b/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java index c85eb618..c226c1b7 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java @@ -18,12 +18,15 @@ import java.util.List; import io.github.sspanak.tt9.Logger; import io.github.sspanak.tt9.R; +import io.github.sspanak.tt9.db.DictionaryLoader; import io.github.sspanak.tt9.db.WordStoreAsync; import io.github.sspanak.tt9.ime.helpers.AppHacks; import io.github.sspanak.tt9.ime.helpers.InputModeValidator; import io.github.sspanak.tt9.ime.helpers.InputType; import io.github.sspanak.tt9.ime.helpers.TextField; import io.github.sspanak.tt9.ime.modes.InputMode; +import io.github.sspanak.tt9.ime.modes.ModeABC; +import io.github.sspanak.tt9.ime.modes.ModePredictive; import io.github.sspanak.tt9.languages.Language; import io.github.sspanak.tt9.languages.LanguageCollection; import io.github.sspanak.tt9.preferences.SettingsStore; @@ -237,7 +240,10 @@ public class TraditionalT9 extends KeyPadHandler { statusBar.setText("--"); normalizationHandler.removeCallbacksAndMessages(null); - normalizationHandler.postDelayed(WordStoreAsync::normalizeNext, SettingsStore.WORD_NORMALIZATION_DELAY); + normalizationHandler.postDelayed( + () -> { if (!DictionaryLoader.getInstance(this).isRunning()) WordStoreAsync.normalizeNext(); }, + SettingsStore.WORD_NORMALIZATION_DELAY + ); } @@ -360,6 +366,11 @@ public class TraditionalT9 extends KeyPadHandler { return true; } + if (DictionaryLoader.getInstance(this).isRunning()) { + UI.toast(this, R.string.dictionary_loading_please_wait); + return true; + } + cancelAutoAccept(); acceptIncompleteSuggestion(); @@ -607,7 +618,11 @@ public class TraditionalT9 extends KeyPadHandler { private void getSuggestions() { - mInputMode.loadSuggestions(this::handleSuggestions, suggestionBar.getCurrentSuggestion()); + if (mInputMode instanceof ModePredictive && DictionaryLoader.getInstance(this).isRunning()) { + UI.toast(this, R.string.dictionary_loading_please_wait); + } else { + mInputMode.loadSuggestions(this::handleSuggestions, suggestionBar.getCurrentSuggestion()); + } } @@ -711,7 +726,7 @@ public class TraditionalT9 extends KeyPadHandler { } } // make "abc" and "ABC" separate modes from user perspective - else if (mInputMode.isABC() && mInputMode.getTextCase() == InputMode.CASE_LOWER && mLanguage.hasUpperCase()) { + else if (mInputMode instanceof ModeABC && mInputMode.getTextCase() == InputMode.CASE_LOWER && mLanguage.hasUpperCase()) { mInputMode.nextTextCase(); } else { int nextModeIndex = (allowedInputModes.indexOf(mInputMode.getId()) + 1) % allowedInputModes.size(); diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/modes/InputMode.java b/app/src/main/java/io/github/sspanak/tt9/ime/modes/InputMode.java index 62fd18ec..02896df1 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/modes/InputMode.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/modes/InputMode.java @@ -75,8 +75,7 @@ abstract public class InputMode { return newSuggestions; } - // Mode identifiers - public boolean isABC() { return false; } + // Numeric mode identifiers. "instanceof" cannot be used in all cases, because they inherit each other. public boolean is123() { return false; } public boolean isPassthrough() { return false; } public boolean isNumeric() { return false; } diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java index e017ca33..c5bbddfe 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java @@ -51,7 +51,6 @@ public class ModeABC extends InputMode { } } - @Override final public boolean isABC() { return true; } @Override public int getSequenceLength() { return 1; } @Override public boolean shouldAcceptPreviousSuggestion() { return autoAcceptTimeout == 0 || !shouldSelectNextLetter; } diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 7f4d1417..d69975a9 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -21,6 +21,7 @@ Несупешно зареждане на речник за език „%1$s“ (%2$s). Зареждането на речник приключи. Зареждане на речник (%1$s)… + Моля, изчакайте да завърши зареждането на речник. Зареди речник Неуспешно зареждане. Липсва речник за „%1$s“. Речникът е изтрит успешно. diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 7592a23d..307e1d87 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -16,6 +16,7 @@ Sprachen Lade Wörterbuch (%1$s)… + Bitte warten Sie, bis das Wörterbuch geladen ist. Wörterbuch laden Wird nicht geladen. Wörterbuch für \"%1$s\" nicht gefunden. Kompatibilität diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 55c3a7c3..cdc911dc 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -26,6 +26,7 @@ Estado Selecciona teclado predeterminado Nueva línea + Por favor, espera a que se cargue el diccionario. Cargar diccionario Cargando diccionario Cargando diccionario (%1$s)… diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 0f8f0181..43c6d1b9 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -20,6 +20,7 @@ Echec du chargement de dictionnaire pour langue «%1$s» (%2$s). Chargement du dictionnaire terminé. Chargement du dictionnaire (%1$s)… + Veuillez patienter pendant le chargement du dictionnaire. Charger le dictionnaire Echec du chargement. Dictionnaire «%1$s» introuvable. Raccourcis clavier diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index fe8b2028..b5439739 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -19,6 +19,7 @@ Annullare il caricamento Caricamento del dizionario terminato. Caricamento del dizionario (%1$s)… + Attendi che il dizionario si carichi, per favore. Carica il dizionario Impossibile caricare. Dizionario per “%1$s” non trovato. Compatibilità diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 24d66161..97c87a8f 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -34,6 +34,7 @@ טעינת המילון הושלמה. טוען מילון (%1$s)… טוען מילון + אנא המתינו עד שהמילון יטען. טעינת מילון סטטוס בחר מקלדת ברירת מחדל @@ -43,7 +44,7 @@ מחק את הבלתי נבחר המילון נוקה בהצלחה - המחיקה מתבצעת... + המחיקה מתבצעת… לחצן הוספת מילה לחצן מחיקה בחירת מקלדת diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 57c36e1e..7f429207 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -14,6 +14,7 @@ Donker thema Talen Woordenboek laden (%1$s)… + Wacht alsjeblieft tot het woordenboek geladen is. Woordenboek laden Laden mislukt. Woordenboek voor %1$s niet gevonden. Woordenboek succesvol gewist. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 2b6da64b..14426af9 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -35,6 +35,7 @@ Dicionário carregado com sucesso. Carregando dicionário (%1$s)… Carregando dicionário… + Aguarde o carregamento do dicionário, por favor Carregar Dicionário Não há um dicionário para o idioma \"%1$s\". É possível carregá-lo em "Configurações". Falha no carregamento. Não foi encontrado um dicionário para o idioma \"%1$s\". diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index cf8b5d9b..ec0fbd77 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -20,6 +20,7 @@ Ошибка загрузки словаря для языка «%1$s» (%2$s). Загрузка словаря завершена. Загрузка словаря (%1$s)… + Пожалуйста, подождите, пока словарь загружается. Загрузить словарь Ошибка загрузки. Словарь «%1$s» не найден. Словарь успешно удален. diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 9585bdf1..a765a00c 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -20,6 +20,7 @@ Помилка завантаження словника для мови «%1$s» (%2$s). Завантаження словника завершено. Завантаження словника (%1$s)… + Будь ласка, зачекайте, доки словник завантажиться. Завантажити словник Помилка завантаження. Словник «%1$s» не знайдено. Завантаження словника diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 93d4dd0d..05b83ffd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -63,6 +63,7 @@ Dictionary load completed. Loading dictionary (%1$s)… Loading dictionary + Please wait for the dictionary to load. Load Dictionary No dictionary for language \"%1$s\". Go to Settings to load it. Loading failed. Dictionary for \"%1$s\" not found.