when notification permissions are rejected, dictionaries updates are immediately applied
This commit is contained in:
parent
24013c9207
commit
decebe1fbe
19 changed files with 14 additions and 90 deletions
|
|
@ -117,8 +117,8 @@ public class DictionaryLoader {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Long lastUpdateTime = self.lastAutoLoadAttemptTime.get(language.getId());
|
final Long lastUpdateTime = self.lastAutoLoadAttemptTime.get(language.getId());
|
||||||
boolean isItTooSoon = lastUpdateTime != null && System.currentTimeMillis() - lastUpdateTime < SettingsStore.DICTIONARY_AUTO_LOAD_COOLDOWN_TIME;
|
final boolean isItTooSoon = lastUpdateTime != null && System.currentTimeMillis() - lastUpdateTime < SettingsStore.DICTIONARY_AUTO_LOAD_COOLDOWN_TIME;
|
||||||
if (isItTooSoon) {
|
if (isItTooSoon) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -127,12 +127,13 @@ public class DictionaryLoader {
|
||||||
(hash) -> {
|
(hash) -> {
|
||||||
getInstance(context).lastAutoLoadAttemptTime.put(language.getId(), System.currentTimeMillis());
|
getInstance(context).lastAutoLoadAttemptTime.put(language.getId(), System.currentTimeMillis());
|
||||||
|
|
||||||
// no words at all, load without confirmation
|
final boolean noDictionary = hash == null || hash.isEmpty();
|
||||||
if (hash.isEmpty()) {
|
final boolean isDictionaryOutdated = noDictionary || !hash.equals(new WordFile(context, language, self.assets).getHash());
|
||||||
|
final boolean noNotifications = !(new SettingsStore(context).getNotificationsApproved());
|
||||||
|
|
||||||
|
if (noDictionary || (isDictionaryOutdated && noNotifications)) {
|
||||||
load(context, language);
|
load(context, language);
|
||||||
}
|
} else if (isDictionaryOutdated) {
|
||||||
// or if the database is outdated, compared to the dictionary file, ask for confirmation and load
|
|
||||||
else if (!hash.equals(new WordFile(context, language, self.assets).getHash())) {
|
|
||||||
new DictionaryUpdateNotification(context, language).show();
|
new DictionaryUpdateNotification(context, language).show();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -207,7 +207,7 @@ public class TraditionalT9 extends MainViewHandler {
|
||||||
|
|
||||||
|
|
||||||
private void askForNotifications() {
|
private void askForNotifications() {
|
||||||
if (DeviceInfo.AT_LEAST_ANDROID_13 && !InputModeKind.isPassthrough(mInputMode) && settings.shouldAskForNotifications() && !inputType.isUs()) {
|
if (!InputModeKind.isPassthrough(mInputMode) && settings.shouldAskForNotifications() && !inputType.isUs()) {
|
||||||
settings.setNotificationsApproved(false);
|
settings.setNotificationsApproved(false);
|
||||||
RequestPermissionDialog.show(this, Manifest.permission.POST_NOTIFICATIONS);
|
RequestPermissionDialog.show(this, Manifest.permission.POST_NOTIFICATIONS);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
package io.github.sspanak.tt9.preferences.screens.languages;
|
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
|
||||||
import androidx.preference.SwitchPreferenceCompat;
|
|
||||||
|
|
||||||
import io.github.sspanak.tt9.preferences.PreferencesActivity;
|
|
||||||
import io.github.sspanak.tt9.preferences.items.ItemSwitch;
|
|
||||||
import io.github.sspanak.tt9.util.sys.Permissions;
|
|
||||||
|
|
||||||
public class ItemDictionaryNotifications extends ItemSwitch {
|
|
||||||
public static final String NAME = "dictionary_notifications";
|
|
||||||
private final SwitchPreferenceCompat item;
|
|
||||||
private final Permissions permissions;
|
|
||||||
|
|
||||||
public ItemDictionaryNotifications(SwitchPreferenceCompat preference, PreferencesActivity activity) {
|
|
||||||
super(preference);
|
|
||||||
this.item = preference;
|
|
||||||
this.permissions = new Permissions(activity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemDictionaryNotifications populate() {
|
|
||||||
super.populate();
|
|
||||||
if (item != null) {
|
|
||||||
item.setVisible(!item.isChecked());
|
|
||||||
}
|
|
||||||
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean getDefaultValue() {
|
|
||||||
return !permissions.noPostNotifications();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean onClick(Preference p, Object value) {
|
|
||||||
if (value == Boolean.TRUE || permissions.noPostNotifications()) {
|
|
||||||
permissions.requestPostNotifications();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Switch off the component on user refusal. Android will not allow permission request again.
|
|
||||||
item.setEnabled(false);
|
|
||||||
return !permissions.noPostNotifications();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -41,10 +41,6 @@ public class LanguagesScreen extends BaseScreenFragment {
|
||||||
protected void onCreate() {
|
protected void onCreate() {
|
||||||
new ItemSelectLanguage(activity, findPreference(ItemSelectLanguage.NAME)).populate();
|
new ItemSelectLanguage(activity, findPreference(ItemSelectLanguage.NAME)).populate();
|
||||||
|
|
||||||
new ItemDictionaryNotifications(findPreference(ItemDictionaryNotifications.NAME), activity)
|
|
||||||
.populate()
|
|
||||||
.enableClickHandler();
|
|
||||||
|
|
||||||
loadItem = new ItemLoadDictionary(
|
loadItem = new ItemLoadDictionary(
|
||||||
findPreference(ItemLoadDictionary.NAME),
|
findPreference(ItemLoadDictionary.NAME),
|
||||||
activity,
|
activity,
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,12 @@ public class SettingsUI extends SettingsTyping {
|
||||||
return prefs.getBoolean("add_word_no_confirmation", false);
|
return prefs.getBoolean("add_word_no_confirmation", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean getNotificationsApproved() {
|
||||||
|
return !DeviceInfo.AT_LEAST_ANDROID_13 || getStringifiedInt("pref_asked_for_notifications_version", 0) == Integer.MAX_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean shouldAskForNotifications() {
|
public boolean shouldAskForNotifications() {
|
||||||
return getStringifiedInt("pref_asked_for_notifications_version", 0) < BuildConfig.VERSION_CODE;
|
return DeviceInfo.AT_LEAST_ANDROID_13 && getStringifiedInt("pref_asked_for_notifications_version", 0) < BuildConfig.VERSION_CODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNotificationsApproved(boolean yes) {
|
public void setNotificationsApproved(boolean yes) {
|
||||||
|
|
|
||||||
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="function_edit_text">Редактиране на текст</string>
|
<string name="function_edit_text">Редактиране на текст</string>
|
||||||
<string name="function_add_word_not_available">Добавянето на думи не е възможно на този език.</string>
|
<string name="function_add_word_not_available">Добавянето на думи не е възможно на този език.</string>
|
||||||
<string name="function_backspace">Триене на текст</string>
|
<string name="function_backspace">Триене на текст</string>
|
||||||
<string name="dictionary_no_notifications">Речникови известия</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Получавайте известия за обновления на речника и за прогреса при зареждане.</string>
|
|
||||||
<string name="function_reassign">Задай нов</string>
|
<string name="function_reassign">Задай нов</string>
|
||||||
<string name="function_add_word">Добавяне на дума</string>
|
<string name="function_add_word">Добавяне на дума</string>
|
||||||
<string name="function_show_command_palette">Списък с команди</string>
|
<string name="function_show_command_palette">Списък с команди</string>
|
||||||
|
|
|
||||||
|
|
@ -138,8 +138,6 @@
|
||||||
<string name="dictionary_export_generating_csv">CSV wird exportiert…</string>
|
<string name="dictionary_export_generating_csv">CSV wird exportiert…</string>
|
||||||
<string name="dictionary_export_generating_csv_for_language">CSV wird exportiert (%1$s)…</string>
|
<string name="dictionary_export_generating_csv_for_language">CSV wird exportiert (%1$s)…</string>
|
||||||
<string name="pref_layout">Layout auf dem Bildschirm</string>
|
<string name="pref_layout">Layout auf dem Bildschirm</string>
|
||||||
<string name="dictionary_no_notifications">Wörterbuchbenachrichtigungen</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Benachrichtigen über Wörterbuchaktualisierungen und den Ladevorgang.</string>
|
|
||||||
<string name="pref_numpad_key_font_size">Schriftgröße der Tasten</string>
|
<string name="pref_numpad_key_font_size">Schriftgröße der Tasten</string>
|
||||||
<string name="pref_numpad_key_height">Höhe</string>
|
<string name="pref_numpad_key_height">Höhe</string>
|
||||||
<string name="pref_numpad_fn_key_width">Breite der Buchstabentasten</string>
|
<string name="pref_numpad_fn_key_width">Breite der Buchstabentasten</string>
|
||||||
|
|
|
||||||
|
|
@ -88,8 +88,6 @@
|
||||||
<string name="pref_upside_down_keys">Orden de teclas inverso</string>
|
<string name="pref_upside_down_keys">Orden de teclas inverso</string>
|
||||||
<string name="pref_upside_down_keys_summary">Habilite la configuración si hay 7–8–9 en la primera fila, en lugar de 1–2–3.</string>
|
<string name="pref_upside_down_keys_summary">Habilite la configuración si hay 7–8–9 en la primera fila, en lugar de 1–2–3.</string>
|
||||||
<string name="pref_category_setup">Configuración inicial</string>
|
<string name="pref_category_setup">Configuración inicial</string>
|
||||||
<string name="dictionary_no_notifications">Notificaciones del diccionario</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Recibir notificaciones sobre actualizaciones del diccionario y sobre el progreso de la carga.</string>
|
|
||||||
<string name="function_show_command_palette">Lista de comandos</string>
|
<string name="function_show_command_palette">Lista de comandos</string>
|
||||||
<string name="function_filter_clear">Limpiar el filtro</string>
|
<string name="function_filter_clear">Limpiar el filtro</string>
|
||||||
<string name="function_edit_text">Editar texto</string>
|
<string name="function_edit_text">Editar texto</string>
|
||||||
|
|
|
||||||
|
|
@ -76,8 +76,6 @@
|
||||||
<string name="char_space">Espace</string>
|
<string name="char_space">Espace</string>
|
||||||
<string name="function_add_word_not_available">L\'ajout de mots n\'est pas possible dans cette langue.</string>
|
<string name="function_add_word_not_available">L\'ajout de mots n\'est pas possible dans cette langue.</string>
|
||||||
<string name="function_backspace">Retour arrière</string>
|
<string name="function_backspace">Retour arrière</string>
|
||||||
<string name="dictionary_no_notifications">Notifications du dictionnaire</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Recevoir des notifications sur les mises à jour du dictionnaire et sur la progression du chargement.</string>
|
|
||||||
<string name="function_show_command_palette">Liste des commandes</string>
|
<string name="function_show_command_palette">Liste des commandes</string>
|
||||||
<string name="function_filter_clear">Supprimer le filtre</string>
|
<string name="function_filter_clear">Supprimer le filtre</string>
|
||||||
<string name="function_edit_text">Modifier le texte</string>
|
<string name="function_edit_text">Modifier le texte</string>
|
||||||
|
|
|
||||||
|
|
@ -139,8 +139,6 @@
|
||||||
<string name="dictionary_export_generating_csv">CSV in corso…</string>
|
<string name="dictionary_export_generating_csv">CSV in corso…</string>
|
||||||
<string name="dictionary_export_generating_csv_for_language">CSV in corso (%1$s)…</string>
|
<string name="dictionary_export_generating_csv_for_language">CSV in corso (%1$s)…</string>
|
||||||
<string name="pref_layout">Layout sullo schermo</string>
|
<string name="pref_layout">Layout sullo schermo</string>
|
||||||
<string name="dictionary_no_notifications">Notifiche del dizionario</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Ricevere notifiche sugli aggiornamenti del dizionario e sul progresso del caricamento.</string>
|
|
||||||
<string name="pref_numpad_key_font_size">Dimensione carattere dei tasti</string>
|
<string name="pref_numpad_key_font_size">Dimensione carattere dei tasti</string>
|
||||||
<string name="pref_numpad_key_height">Altezza</string>
|
<string name="pref_numpad_key_height">Altezza</string>
|
||||||
<string name="pref_numpad_fn_key_width">Larghezza dei tasti lettera</string>
|
<string name="pref_numpad_fn_key_width">Larghezza dei tasti lettera</string>
|
||||||
|
|
|
||||||
|
|
@ -153,8 +153,6 @@
|
||||||
<string name="dictionary_export_generating_csv">מייצא CSV…</string>
|
<string name="dictionary_export_generating_csv">מייצא CSV…</string>
|
||||||
<string name="dictionary_export_generating_csv_for_language">מייצא CSV (%1$s)…</string>
|
<string name="dictionary_export_generating_csv_for_language">מייצא CSV (%1$s)…</string>
|
||||||
<string name="pref_layout">תצורת המקלדת על המסך</string>
|
<string name="pref_layout">תצורת המקלדת על המסך</string>
|
||||||
<string name="dictionary_no_notifications">התראות מילון</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">לקבל התראות על עדכוני המילון ועל התקדמות הטעינה.</string>
|
|
||||||
<string name="pref_numpad_key_font_size">גודל גופן המקשים</string>
|
<string name="pref_numpad_key_font_size">גודל גופן המקשים</string>
|
||||||
<string name="pref_numpad_key_height">גובה</string>
|
<string name="pref_numpad_key_height">גובה</string>
|
||||||
<string name="pref_numpad_fn_key_width">רוחב מקשי האותיות</string>
|
<string name="pref_numpad_fn_key_width">רוחב מקשי האותיות</string>
|
||||||
|
|
|
||||||
|
|
@ -89,8 +89,6 @@
|
||||||
|
|
||||||
<string name="function_add_word_not_available">Žodžių pridėjimas šia kalba nėra galimas.</string>
|
<string name="function_add_word_not_available">Žodžių pridėjimas šia kalba nėra galimas.</string>
|
||||||
<string name="function_backspace">Trinti</string>
|
<string name="function_backspace">Trinti</string>
|
||||||
<string name="dictionary_no_notifications">Žodyno pranešimai</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Gaukite pranešimus apie žodynų atnaujinimus ir įkėlimo progresą.</string>
|
|
||||||
<string name="function_show_command_palette">Rodyti komandų sąrašą</string>
|
<string name="function_show_command_palette">Rodyti komandų sąrašą</string>
|
||||||
<string name="function_filter_clear">Panaikinti filtrą</string>
|
<string name="function_filter_clear">Panaikinti filtrą</string>
|
||||||
<string name="function_edit_text">Redaguoti tekstą</string>
|
<string name="function_edit_text">Redaguoti tekstą</string>
|
||||||
|
|
|
||||||
|
|
@ -139,8 +139,6 @@
|
||||||
<string name="dictionary_export_generating_csv">CSV exporteren…</string>
|
<string name="dictionary_export_generating_csv">CSV exporteren…</string>
|
||||||
<string name="dictionary_export_generating_csv_for_language">CSV exporteren (%1$s)…</string>
|
<string name="dictionary_export_generating_csv_for_language">CSV exporteren (%1$s)…</string>
|
||||||
<string name="pref_layout">Indeling op het scherm</string>
|
<string name="pref_layout">Indeling op het scherm</string>
|
||||||
<string name="dictionary_no_notifications">Woordenboekmeldingen</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Ontvang meldingen over woordenboekupdates en de voortgang van het laden.</string>
|
|
||||||
<string name="pref_numpad_key_font_size">Lettergrootte van toetsen</string>
|
<string name="pref_numpad_key_font_size">Lettergrootte van toetsen</string>
|
||||||
<string name="pref_numpad_key_height">Hoogte</string>
|
<string name="pref_numpad_key_height">Hoogte</string>
|
||||||
<string name="pref_numpad_fn_key_width">Breedte van lettertoetsen</string>
|
<string name="pref_numpad_fn_key_width">Breedte van lettertoetsen</string>
|
||||||
|
|
|
||||||
|
|
@ -154,8 +154,6 @@
|
||||||
<string name="dictionary_export_generating_csv">Exportando CSV…</string>
|
<string name="dictionary_export_generating_csv">Exportando CSV…</string>
|
||||||
<string name="dictionary_export_generating_csv_for_language">Exportando CSV (%1$s)…</string>
|
<string name="dictionary_export_generating_csv_for_language">Exportando CSV (%1$s)…</string>
|
||||||
<string name="pref_layout">Layout na tela</string>
|
<string name="pref_layout">Layout na tela</string>
|
||||||
<string name="dictionary_no_notifications">Notificações do dicionário</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Receber notificações sobre atualizações do dicionário e sobre o progresso do carregamento.</string>
|
|
||||||
<string name="pref_numpad_key_font_size">Tamanho da fonte das teclas</string>
|
<string name="pref_numpad_key_font_size">Tamanho da fonte das teclas</string>
|
||||||
<string name="pref_numpad_key_height">Altura</string>
|
<string name="pref_numpad_key_height">Altura</string>
|
||||||
<string name="pref_numpad_fn_key_width">Largura das teclas de letras</string>
|
<string name="pref_numpad_fn_key_width">Largura das teclas de letras</string>
|
||||||
|
|
|
||||||
|
|
@ -77,8 +77,6 @@
|
||||||
<string name="dictionary_load_bad_char">Не удалось загрузить словарь. Проблема в слове в строке %1$d для языка «%2$s».</string>
|
<string name="dictionary_load_bad_char">Не удалось загрузить словарь. Проблема в слове в строке %1$d для языка «%2$s».</string>
|
||||||
<string name="function_add_word_not_available">Добавление слов невозможно на этом языке.</string>
|
<string name="function_add_word_not_available">Добавление слов невозможно на этом языке.</string>
|
||||||
<string name="function_backspace">Стереть</string>
|
<string name="function_backspace">Стереть</string>
|
||||||
<string name="dictionary_no_notifications">Уведомления словаря</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Получать уведомления о обновлениях словаря и о процессе загрузки.</string>
|
|
||||||
<string name="function_show_command_palette">Список команд</string>
|
<string name="function_show_command_palette">Список команд</string>
|
||||||
<string name="function_filter_clear">Удалить фильтр</string>
|
<string name="function_filter_clear">Удалить фильтр</string>
|
||||||
<string name="function_edit_text">Редактировать текста</string>
|
<string name="function_edit_text">Редактировать текста</string>
|
||||||
|
|
|
||||||
|
|
@ -133,8 +133,6 @@
|
||||||
<string name="dictionary_export_generating_csv">CSV dışa aktarılıyor…</string>
|
<string name="dictionary_export_generating_csv">CSV dışa aktarılıyor…</string>
|
||||||
<string name="dictionary_export_generating_csv_for_language">CSV dışa aktarılıyor (%1$s)…</string>
|
<string name="dictionary_export_generating_csv_for_language">CSV dışa aktarılıyor (%1$s)…</string>
|
||||||
<string name="pref_layout">Ekran Düzeni</string>
|
<string name="pref_layout">Ekran Düzeni</string>
|
||||||
<string name="dictionary_no_notifications">Sözlük Bildirimleri</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Sözlük güncelleme ve yüklemeleri hakkında bildirimde bulunun.</string>
|
|
||||||
<string name="pref_numpad_key_font_size">Tuş yazı tipi boyutu</string>
|
<string name="pref_numpad_key_font_size">Tuş yazı tipi boyutu</string>
|
||||||
<string name="pref_numpad_key_height">Yükseklik</string>
|
<string name="pref_numpad_key_height">Yükseklik</string>
|
||||||
<string name="pref_numpad_fn_key_width">Harf tuşlarının genişliği</string>
|
<string name="pref_numpad_fn_key_width">Harf tuşlarının genişliği</string>
|
||||||
|
|
|
||||||
|
|
@ -121,8 +121,6 @@
|
||||||
|
|
||||||
<string name="function_add_word_not_available">Додавання слів неможливе цією мовою.</string>
|
<string name="function_add_word_not_available">Додавання слів неможливе цією мовою.</string>
|
||||||
<string name="function_backspace">Стерти</string>
|
<string name="function_backspace">Стерти</string>
|
||||||
<string name="dictionary_no_notifications">Сповіщення словника</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Отримувати повідомлення про оновлення словника та процес завантаження.</string>
|
|
||||||
<string name="function_show_command_palette">Список команд</string>
|
<string name="function_show_command_palette">Список команд</string>
|
||||||
<string name="function_filter_clear">Очистити фільтр</string>
|
<string name="function_filter_clear">Очистити фільтр</string>
|
||||||
<string name="function_edit_text">Редагувати тексту</string>
|
<string name="function_edit_text">Редагувати тексту</string>
|
||||||
|
|
|
||||||
|
|
@ -121,8 +121,6 @@
|
||||||
<string name="dictionary_loading_short">Loading / %1$s… %2$d</string>
|
<string name="dictionary_loading_short">Loading / %1$s… %2$d</string>
|
||||||
<string name="dictionary_load_title">Load Selected</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_not_found">Loading failed. Dictionary for \"%1$s\" not found.</string>
|
||||||
<string name="dictionary_no_notifications">Dictionary Notifications</string>
|
|
||||||
<string name="dictionary_no_notifications_summary">Get notified about dictionary updates and see the loading progress.</string>
|
|
||||||
<string name="dictionary_truncate_title">Delete All</string>
|
<string name="dictionary_truncate_title">Delete All</string>
|
||||||
<string name="dictionary_truncate_unselected">Delete Unselected</string>
|
<string name="dictionary_truncate_unselected">Delete Unselected</string>
|
||||||
<string name="dictionary_truncated">Dictionary deleted successfully.</string>
|
<string name="dictionary_truncated">Dictionary deleted successfully.</string>
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,6 @@
|
||||||
app:key="pref_languages"
|
app:key="pref_languages"
|
||||||
app:title="@string/pref_choose_languages" />
|
app:title="@string/pref_choose_languages" />
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
|
||||||
app:isPreferenceVisible="false"
|
|
||||||
app:key="dictionary_notifications"
|
|
||||||
app:title="@string/dictionary_no_notifications"
|
|
||||||
app:summary="@string/dictionary_no_notifications_summary"/>
|
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
app:key="dictionary_load"
|
app:key="dictionary_load"
|
||||||
app:title="@string/dictionary_load_title" />
|
app:title="@string/dictionary_load_title" />
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue