the dictionary loading status is now displayed on the Status Bar
This commit is contained in:
parent
8742811d85
commit
8d2cac0575
16 changed files with 56 additions and 2 deletions
|
|
@ -36,7 +36,7 @@ abstract class UiHandler extends AbstractHandler {
|
|||
setInputView(mainView.getView());
|
||||
createSuggestionBar();
|
||||
getSuggestionOps().setDarkTheme();
|
||||
statusBar = new StatusBar(settings, mainView.getView());
|
||||
statusBar = new StatusBar(this, settings, mainView.getView(), this::resetStatus);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import io.github.sspanak.tt9.R;
|
|||
import io.github.sspanak.tt9.db.exceptions.DictionaryImportException;
|
||||
import io.github.sspanak.tt9.languages.Language;
|
||||
import io.github.sspanak.tt9.languages.LanguageCollection;
|
||||
import io.github.sspanak.tt9.languages.NullLanguage;
|
||||
import io.github.sspanak.tt9.languages.exceptions.InvalidLanguageCharactersException;
|
||||
import io.github.sspanak.tt9.languages.exceptions.InvalidLanguageException;
|
||||
|
||||
|
|
@ -22,7 +23,9 @@ public class DictionaryLoadingBar extends DictionaryProgressNotification {
|
|||
|
||||
private boolean isStopped = false;
|
||||
private boolean hasFailed = false;
|
||||
private String shortMessage = "";
|
||||
private Runnable onStatusChange = null;
|
||||
private Runnable onStatusChange2 = null;
|
||||
|
||||
|
||||
public static DictionaryLoadingBar getInstance(Context context) {
|
||||
|
|
@ -44,6 +47,11 @@ public class DictionaryLoadingBar extends DictionaryProgressNotification {
|
|||
}
|
||||
|
||||
|
||||
public String getShortMessage() {
|
||||
return shortMessage;
|
||||
}
|
||||
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
|
@ -59,6 +67,11 @@ public class DictionaryLoadingBar extends DictionaryProgressNotification {
|
|||
}
|
||||
|
||||
|
||||
public void setOnStatusChange2(Runnable onStatusChange2) {
|
||||
this.onStatusChange2 = onStatusChange2;
|
||||
}
|
||||
|
||||
|
||||
public boolean isCancelled() {
|
||||
return isStopped;
|
||||
}
|
||||
|
|
@ -82,6 +95,7 @@ public class DictionaryLoadingBar extends DictionaryProgressNotification {
|
|||
data.getLong("fileLine", -1)
|
||||
);
|
||||
if (onStatusChange != null) onStatusChange.run();
|
||||
if (onStatusChange2 != null) onStatusChange2.run();
|
||||
} else if (progress >= 0) {
|
||||
hasFailed = false;
|
||||
if (fileCount >= 0) {
|
||||
|
|
@ -96,6 +110,7 @@ public class DictionaryLoadingBar extends DictionaryProgressNotification {
|
|||
);
|
||||
|
||||
if (onStatusChange != null) onStatusChange.run();
|
||||
if (onStatusChange2 != null) onStatusChange2.run();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -111,6 +126,13 @@ public class DictionaryLoadingBar extends DictionaryProgressNotification {
|
|||
}
|
||||
|
||||
|
||||
private String generateShortMessage(int languageId, int progress) {
|
||||
Language lang = LanguageCollection.getLanguage(languageId);
|
||||
lang = lang != null ? lang : new NullLanguage();
|
||||
return resources.getString(R.string.dictionary_loading_short, lang.getCode().toUpperCase(lang.getLocale()), progress) + "%";
|
||||
}
|
||||
|
||||
|
||||
private void showProgress(long time, int currentFile, int currentFileProgress, int languageId) {
|
||||
if (currentFileProgress <= 0) {
|
||||
hide();
|
||||
|
|
@ -129,9 +151,11 @@ public class DictionaryLoadingBar extends DictionaryProgressNotification {
|
|||
|
||||
String timeFormat = time > 60000 ? " (%1.0fs)" : " (%1.1fs)";
|
||||
message = resources.getString(R.string.completed) + String.format(Locale.ENGLISH, timeFormat, time / 1000.0);
|
||||
shortMessage = resources.getString(R.string.completed);
|
||||
} else {
|
||||
title = generateTitle(languageId);
|
||||
message = currentFileProgress + "%";
|
||||
shortMessage = generateShortMessage(languageId, currentFileProgress);
|
||||
}
|
||||
|
||||
renderMessage();
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package io.github.sspanak.tt9.ui.tray;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.SpannableString;
|
||||
import android.text.style.RelativeSizeSpan;
|
||||
import android.view.View;
|
||||
|
|
@ -12,6 +13,7 @@ import io.github.sspanak.tt9.R;
|
|||
import io.github.sspanak.tt9.ime.modes.InputMode;
|
||||
import io.github.sspanak.tt9.ime.voice.VoiceInputOps;
|
||||
import io.github.sspanak.tt9.preferences.settings.SettingsStore;
|
||||
import io.github.sspanak.tt9.ui.notifications.DictionaryLoadingBar;
|
||||
import io.github.sspanak.tt9.util.Logger;
|
||||
|
||||
public class StatusBar {
|
||||
|
|
@ -19,10 +21,17 @@ public class StatusBar {
|
|||
@NonNull private final SettingsStore settings;
|
||||
@Nullable private String statusText;
|
||||
|
||||
@NonNull private final DictionaryLoadingBar loadingBar;
|
||||
@NonNull private final Runnable onLoadingFinished;
|
||||
|
||||
public StatusBar(@NonNull SettingsStore settings, @Nullable View mainView) {
|
||||
|
||||
public StatusBar(@NonNull Context context, @NonNull SettingsStore settings, @Nullable View mainView, @NonNull Runnable onDictionaryLoadingFinished) {
|
||||
this.settings = settings;
|
||||
statusView = mainView != null ? mainView.findViewById(R.id.status_bar) : null;
|
||||
|
||||
loadingBar = DictionaryLoadingBar.getInstance(context);
|
||||
loadingBar.setOnStatusChange2(this::onLoading);
|
||||
onLoadingFinished = onDictionaryLoadingFinished;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -59,6 +68,14 @@ public class StatusBar {
|
|||
}
|
||||
|
||||
|
||||
private void onLoading() {
|
||||
setText("[ " + loadingBar.getShortMessage() + " ]");
|
||||
if (loadingBar.isCancelled() || loadingBar.isFailed() || !loadingBar.inProgress()) {
|
||||
onLoadingFinished.run();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void render() {
|
||||
if (statusView == null) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@
|
|||
<string name="dictionary_loaded">Зареждането на речник приключи.</string>
|
||||
<string name="dictionary_loading">Зареждане на речник (%1$s)…</string>
|
||||
<string name="dictionary_loading_please_wait">Моля, изчакайте да завърши зареждането на речник.</string>
|
||||
<string name="dictionary_loading_short">Зареждане / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Зареди избраните</string>
|
||||
<string name="dictionary_not_found">Неуспешно зареждане. Липсва речник за „%1$s“.</string>
|
||||
<string name="dictionary_truncated">Речникът е изтрит успешно.</string>
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@
|
|||
<string name="dictionary_loaded">Wörterbuch laden abgeschlossen.</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_loading_short">Laden / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Ausgewählte laden</string>
|
||||
<string name="dictionary_not_found">Wird nicht geladen. Wörterbuch für \"%1$s\" nicht gefunden.</string>
|
||||
<string name="pref_category_abc_mode">ABC-Modus</string>
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@
|
|||
<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_loading_short">Cargando / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Cargar los seleccionados</string>
|
||||
<string name="dictionary_loading_indeterminate">Cargando diccionario</string>
|
||||
<string name="dictionary_loading">Cargando diccionario (%1$s)…</string>
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
<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_loading_short">Chargement / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Charger les sélectionnées</string>
|
||||
<string name="dictionary_not_found">Echec du chargement. Dictionnaire «%1$s» introuvable.</string>
|
||||
<string name="pref_category_function_keys">Raccourcis clavier</string>
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@
|
|||
<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_loading_short">Caricamento / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Carica le selezionate</string>
|
||||
<string name="dictionary_not_found">Impossibile caricare. Dizionario per “%1$s” non trovato.</string>
|
||||
<string name="pref_category_abc_mode">Modalità ABC</string>
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@
|
|||
<string name="punctuation_order_after_group">אחרי הקבוצה (לא חובה)</string>
|
||||
<string name="setup_keyboard_status">מצב</string>
|
||||
<string name="setup_default_keyboard">בחר מקלדת ברירת מחדל</string>
|
||||
<string name="dictionary_loading_short">טוען / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">טען את הנבחרים</string>
|
||||
<string name="dictionary_not_found">הטעינה נכשלה, לא נמצא מילון עבור \"%1$s\".</string>
|
||||
<string name="dictionary_truncate_title">מחק הכל</string>
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@
|
|||
<string name="dictionary_loaded">Žodynas įkeltas.</string>
|
||||
<string name="dictionary_loading">Žodynas įkeliamas (%1$s)…</string>
|
||||
<string name="dictionary_loading_indeterminate">Žodynas įkeliamas</string>
|
||||
<string name="dictionary_loading_short">Įkeliama / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Įkelti žodyną</string>
|
||||
<string name="dictionary_not_found">Įkelti nepavyko. Žodynas \"%1$s\" nerastas.</string>
|
||||
<string name="dictionary_truncate_title">Ištrinti visus</string>
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@
|
|||
<string name="dictionary_loaded">Woordenboek laden voltooid.</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_loading_short">Laden / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Geselecteerde laden</string>
|
||||
<string name="dictionary_not_found">Laden mislukt. Woordenboek voor %1$s niet gevonden.</string>
|
||||
<string name="dictionary_truncate_title">Verwijder alle</string>
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@
|
|||
<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_loading_short">Carregando / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Carregar os selecionados</string>
|
||||
<string name="dictionary_not_found">Falha no carregamento. Não foi encontrado um dicionário para o idioma \"%1$s\".</string>
|
||||
<string name="dictionary_truncate_title">Limpar Dicionário</string>
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
<string name="dictionary_loaded">Загрузка словаря завершена.</string>
|
||||
<string name="dictionary_loading">Загрузка словаря (%1$s)…</string>
|
||||
<string name="dictionary_loading_please_wait">Пожалуйста, подождите, пока словарь загружается.</string>
|
||||
<string name="dictionary_loading_short">Загрузка / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Загрузить выбранные</string>
|
||||
<string name="dictionary_not_found">Ошибка загрузки. Словарь «%1$s» не найден.</string>
|
||||
<string name="dictionary_truncated">Словарь успешно удален.</string>
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@
|
|||
<string name="dictionary_loaded">Sözlük başarıyla yüklendi.</string>
|
||||
<string name="dictionary_loading">(%1$s) sözlük yükleniyor…</string>
|
||||
<string name="dictionary_loading_please_wait">Sözlük yüklenirken lütfen bekleyiniz.</string>
|
||||
<string name="dictionary_loading_short">Yükleniyor / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Seçilenleri yükle</string>
|
||||
<string name="dictionary_not_found">Yükleme başarısız oldu. \"%1$s\" sözlüğü bulunamadı.</string>
|
||||
<string name="pref_category_abc_mode">ABC Modu</string>
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@
|
|||
<string name="dictionary_loading">Словник завантажується (%1$s)…</string>
|
||||
<string name="dictionary_loading_indeterminate">Словник завантажується</string>
|
||||
<string name="dictionary_loading_please_wait">Будь ласка, дочекайтесь завантаження словника.</string>
|
||||
<string name="dictionary_loading_short">Завантаження / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Завантажити вибрані</string>
|
||||
<string name="dictionary_not_found">Помилка завантаження. Словник для мови \"%1$s\" не знайдений.</string>
|
||||
<string name="dictionary_truncate_title">Видалити все</string>
|
||||
|
|
|
|||
|
|
@ -118,6 +118,7 @@
|
|||
<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_loading_short">Loading / %1$s… %2$d</string>
|
||||
<string name="dictionary_load_title">Load Selected</string>
|
||||
<string name="dictionary_not_found">Loading failed. Dictionary for \"%1$s\" not found.</string>
|
||||
<string name="dictionary_no_notifications">Dictionary Notifications</string>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue