1
0
Fork 0

Adding words, word normalization and typing in Predictive mode are now forbidden during dictionary loading

This commit is contained in:
sspanak 2024-02-12 18:10:57 +02:00 committed by Dimo Karaivanov
parent fb9ed51f52
commit 048ce9cfb4
14 changed files with 31 additions and 7 deletions

View file

@ -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();

View file

@ -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; }

View file

@ -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; }

View file

@ -21,6 +21,7 @@
<string name="dictionary_load_error">Несупешно зареждане на речник за език „%1$s“ (%2$s).</string>
<string name="dictionary_loaded">Зареждането на речник приключи.</string>
<string name="dictionary_loading">Зареждане на речник (%1$s)…</string>
<string name="dictionary_loading_please_wait">Моля, изчакайте да завърши зареждането на речник.</string>
<string name="dictionary_load_title">Зареди речник</string>
<string name="dictionary_not_found">Неуспешно зареждане. Липсва речник за „%1$s“.</string>
<string name="dictionary_truncated">Речникът е изтрит успешно.</string>

View file

@ -16,6 +16,7 @@
<string name="pref_choose_languages">Sprachen</string>
<string name="dictionary_loading">Lade Wörterbuch (%1$s)…</string>
<string name="dictionary_loading_please_wait">Bitte warten Sie, bis das Wörterbuch geladen ist.</string>
<string name="dictionary_load_title">Wörterbuch laden</string>
<string name="dictionary_not_found">Wird nicht geladen. Wörterbuch für \"%1$s\" nicht gefunden.</string>
<string name="pref_category_hacks">Kompatibilität</string>

View file

@ -26,6 +26,7 @@
<string name="setup_keyboard_status">Estado</string>
<string name="setup_default_keyboard">Selecciona teclado predeterminado</string>
<string name="char_newline">Nueva línea</string>
<string name="dictionary_loading_please_wait">Por favor, espera a que se cargue el diccionario.</string>
<string name="dictionary_load_title">Cargar diccionario</string>
<string name="dictionary_loading_indeterminate">Cargando diccionario</string>
<string name="dictionary_loading">Cargando diccionario (%1$s)…</string>

View file

@ -20,6 +20,7 @@
<string name="dictionary_load_error">Echec du chargement de dictionnaire pour langue «%1$s» (%2$s).</string>
<string name="dictionary_loaded">Chargement du dictionnaire terminé.</string>
<string name="dictionary_loading">Chargement du dictionnaire (%1$s)…</string>
<string name="dictionary_loading_please_wait">Veuillez patienter pendant le chargement du dictionnaire.</string>
<string name="dictionary_load_title">Charger le dictionnaire</string>
<string name="dictionary_not_found">Echec du chargement. Dictionnaire «%1$s» introuvable.</string>
<string name="pref_category_function_keys">Raccourcis clavier</string>

View file

@ -19,6 +19,7 @@
<string name="dictionary_cancel_load">Annullare il caricamento</string>
<string name="dictionary_loaded">Caricamento del dizionario terminato.</string>
<string name="dictionary_loading">Caricamento del dizionario (%1$s)…</string>
<string name="dictionary_loading_please_wait">Attendi che il dizionario si carichi, per favore.</string>
<string name="dictionary_load_title">Carica il dizionario</string>
<string name="dictionary_not_found">Impossibile caricare. Dizionario per “%1$s” non trovato.</string>
<string name="pref_category_hacks">Compatibilità</string>

View file

@ -34,6 +34,7 @@
<string name="dictionary_loaded">טעינת המילון הושלמה.</string>
<string name="dictionary_loading">טוען מילון (%1$s)…</string>
<string name="dictionary_loading_indeterminate">טוען מילון</string>
<string name="dictionary_loading_please_wait">אנא המתינו עד שהמילון יטען.</string>
<string name="dictionary_load_title">טעינת מילון</string>
<string name="setup_keyboard_status">סטטוס</string>
<string name="setup_default_keyboard">בחר מקלדת ברירת מחדל</string>
@ -43,7 +44,7 @@
<string name="dictionary_truncate_unselected">מחק את הבלתי נבחר</string>
<string name="dictionary_truncated">המילון נוקה בהצלחה</string>
<string name="dictionary_truncating">המחיקה מתבצעת...</string>
<string name="dictionary_truncating">המחיקה מתבצעת</string>
<string name="function_add_word_key">לחצן הוספת מילה</string>
<string name="function_backspace_key">לחצן מחיקה</string>
<string name="function_change_keyboard_key">בחירת מקלדת</string>

View file

@ -14,6 +14,7 @@
<string name="pref_dark_theme">Donker thema</string>
<string name="pref_choose_languages">Talen</string>
<string name="dictionary_loading">Woordenboek laden (%1$s)…</string>
<string name="dictionary_loading_please_wait">Wacht alsjeblieft tot het woordenboek geladen is.</string>
<string name="dictionary_load_title">Woordenboek laden</string>
<string name="dictionary_not_found">Laden mislukt. Woordenboek voor %1$s niet gevonden.</string>
<string name="dictionary_truncated">Woordenboek succesvol gewist.</string>

View file

@ -35,6 +35,7 @@
<string name="dictionary_loaded">Dicionário carregado com sucesso.</string>
<string name="dictionary_loading">Carregando dicionário (%1$s)…</string>
<string name="dictionary_loading_indeterminate">Carregando dicionário…</string>
<string name="dictionary_loading_please_wait">Aguarde o carregamento do dicionário, por favor</string>
<string name="dictionary_load_title">Carregar Dicionário</string>
<string name="dictionary_missing_go_load_it">Não há um dicionário para o idioma \"%1$s\". É possível carregá-lo em "Configurações".</string>
<string name="dictionary_not_found">Falha no carregamento. Não foi encontrado um dicionário para o idioma \"%1$s\".</string>

View file

@ -20,6 +20,7 @@
<string name="dictionary_load_error">Ошибка загрузки словаря для языка «%1$s» (%2$s).</string>
<string name="dictionary_loaded">Загрузка словаря завершена.</string>
<string name="dictionary_loading">Загрузка словаря (%1$s)…</string>
<string name="dictionary_loading_please_wait">Пожалуйста, подождите, пока словарь загружается.</string>
<string name="dictionary_load_title">Загрузить словарь</string>
<string name="dictionary_not_found">Ошибка загрузки. Словарь «%1$s» не найден.</string>
<string name="dictionary_truncated">Словарь успешно удален.</string>

View file

@ -20,6 +20,7 @@
<string name="dictionary_load_error">Помилка завантаження словника для мови «%1$s» (%2$s).</string>
<string name="dictionary_loaded">Завантаження словника завершено.</string>
<string name="dictionary_loading">Завантаження словника (%1$s)…</string>
<string name="dictionary_loading_please_wait">Будь ласка, зачекайте, доки словник завантажиться.</string>
<string name="dictionary_load_title">Завантажити словник</string>
<string name="dictionary_not_found">Помилка завантаження. Словник «%1$s» не знайдено.</string>
<string name="dictionary_loading_indeterminate">Завантаження словника</string>

View file

@ -63,6 +63,7 @@
<string name="dictionary_loaded">Dictionary load completed.</string>
<string name="dictionary_loading">Loading dictionary (%1$s)…</string>
<string name="dictionary_loading_indeterminate">Loading dictionary</string>
<string name="dictionary_loading_please_wait">Please wait for the dictionary to load.</string>
<string name="dictionary_load_title">Load Dictionary</string>
<string name="dictionary_missing_go_load_it">No dictionary for language \"%1$s\". Go to Settings to load it.</string>
<string name="dictionary_not_found">Loading failed. Dictionary for \"%1$s\" not found.</string>