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.