diff --git a/app/src/main/java/io/github/sspanak/tt9/db/words/DictionaryLoader.java b/app/src/main/java/io/github/sspanak/tt9/db/words/DictionaryLoader.java
index cf634c7b..f1a2c4a6 100644
--- a/app/src/main/java/io/github/sspanak/tt9/db/words/DictionaryLoader.java
+++ b/app/src/main/java/io/github/sspanak/tt9/db/words/DictionaryLoader.java
@@ -117,8 +117,8 @@ public class DictionaryLoader {
return false;
}
- Long lastUpdateTime = self.lastAutoLoadAttemptTime.get(language.getId());
- boolean isItTooSoon = lastUpdateTime != null && System.currentTimeMillis() - lastUpdateTime < SettingsStore.DICTIONARY_AUTO_LOAD_COOLDOWN_TIME;
+ final Long lastUpdateTime = self.lastAutoLoadAttemptTime.get(language.getId());
+ final boolean isItTooSoon = lastUpdateTime != null && System.currentTimeMillis() - lastUpdateTime < SettingsStore.DICTIONARY_AUTO_LOAD_COOLDOWN_TIME;
if (isItTooSoon) {
return false;
}
@@ -127,12 +127,13 @@ public class DictionaryLoader {
(hash) -> {
getInstance(context).lastAutoLoadAttemptTime.put(language.getId(), System.currentTimeMillis());
- // no words at all, load without confirmation
- if (hash.isEmpty()) {
+ final boolean noDictionary = hash == null || 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);
- }
- // 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())) {
+ } else if (isDictionaryOutdated) {
new DictionaryUpdateNotification(context, language).show();
}
},
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 47e9be8f..ca8a68f9 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
@@ -207,7 +207,7 @@ public class TraditionalT9 extends MainViewHandler {
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);
RequestPermissionDialog.show(this, Manifest.permission.POST_NOTIFICATIONS);
}
diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languages/ItemDictionaryNotifications.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languages/ItemDictionaryNotifications.java
deleted file mode 100644
index 41cce7e9..00000000
--- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languages/ItemDictionaryNotifications.java
+++ /dev/null
@@ -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();
- }
-}
diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languages/LanguagesScreen.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languages/LanguagesScreen.java
index 6b1e2af7..718ff0c6 100644
--- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languages/LanguagesScreen.java
+++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languages/LanguagesScreen.java
@@ -41,10 +41,6 @@ public class LanguagesScreen extends BaseScreenFragment {
protected void onCreate() {
new ItemSelectLanguage(activity, findPreference(ItemSelectLanguage.NAME)).populate();
- new ItemDictionaryNotifications(findPreference(ItemDictionaryNotifications.NAME), activity)
- .populate()
- .enableClickHandler();
-
loadItem = new ItemLoadDictionary(
findPreference(ItemLoadDictionary.NAME),
activity,
diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java
index 62f679ae..1f968779 100644
--- a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java
+++ b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java
@@ -43,8 +43,12 @@ public class SettingsUI extends SettingsTyping {
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() {
- 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) {
diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml
index e157db6f..da6bc6e4 100644
--- a/app/src/main/res/values-bg/strings.xml
+++ b/app/src/main/res/values-bg/strings.xml
@@ -81,8 +81,6 @@
Редактиране на текст
Добавянето на думи не е възможно на този език.
Триене на текст
- Речникови известия
- Получавайте известия за обновления на речника и за прогреса при зареждане.
Задай нов
Добавяне на дума
Списък с команди
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index cc0ad587..54e8a26f 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -138,8 +138,6 @@
CSV wird exportiert…
CSV wird exportiert (%1$s)…
Layout auf dem Bildschirm
- Wörterbuchbenachrichtigungen
- Benachrichtigen über Wörterbuchaktualisierungen und den Ladevorgang.
Schriftgröße der Tasten
Höhe
Breite der Buchstabentasten
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 981f8d5b..0176d539 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -88,8 +88,6 @@
Orden de teclas inverso
Habilite la configuración si hay 7–8–9 en la primera fila, en lugar de 1–2–3.
Configuración inicial
- Notificaciones del diccionario
- Recibir notificaciones sobre actualizaciones del diccionario y sobre el progreso de la carga.
Lista de comandos
Limpiar el filtro
Editar texto
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 6d6090dd..f48fbde0 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -76,8 +76,6 @@
Espace
L\'ajout de mots n\'est pas possible dans cette langue.
Retour arrière
- Notifications du dictionnaire
- Recevoir des notifications sur les mises à jour du dictionnaire et sur la progression du chargement.
Liste des commandes
Supprimer le filtre
Modifier le texte
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index d5a288d1..26fd7954 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -139,8 +139,6 @@
CSV in corso…
CSV in corso (%1$s)…
Layout sullo schermo
- Notifiche del dizionario
- Ricevere notifiche sugli aggiornamenti del dizionario e sul progresso del caricamento.
Dimensione carattere dei tasti
Altezza
Larghezza dei tasti lettera
diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml
index 342d4b5a..84a70f4b 100644
--- a/app/src/main/res/values-iw/strings.xml
+++ b/app/src/main/res/values-iw/strings.xml
@@ -153,8 +153,6 @@
מייצא CSV…
מייצא CSV (%1$s)…
תצורת המקלדת על המסך
- התראות מילון
- לקבל התראות על עדכוני המילון ועל התקדמות הטעינה.
גודל גופן המקשים
גובה
רוחב מקשי האותיות
diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml
index 4d021a67..53c2c286 100644
--- a/app/src/main/res/values-lt/strings.xml
+++ b/app/src/main/res/values-lt/strings.xml
@@ -89,8 +89,6 @@
Žodžių pridėjimas šia kalba nėra galimas.
Trinti
- Žodyno pranešimai
- Gaukite pranešimus apie žodynų atnaujinimus ir įkėlimo progresą.
Rodyti komandų sąrašą
Panaikinti filtrą
Redaguoti tekstą
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 7ed67b02..c3e14736 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -139,8 +139,6 @@
CSV exporteren…
CSV exporteren (%1$s)…
Indeling op het scherm
- Woordenboekmeldingen
- Ontvang meldingen over woordenboekupdates en de voortgang van het laden.
Lettergrootte van toetsen
Hoogte
Breedte van lettertoetsen
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 1863347d..0e20ff91 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -154,8 +154,6 @@
Exportando CSV…
Exportando CSV (%1$s)…
Layout na tela
- Notificações do dicionário
- Receber notificações sobre atualizações do dicionário e sobre o progresso do carregamento.
Tamanho da fonte das teclas
Altura
Largura das teclas de letras
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index f6db8d48..e8a6dc8a 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -77,8 +77,6 @@
Не удалось загрузить словарь. Проблема в слове в строке %1$d для языка «%2$s».
Добавление слов невозможно на этом языке.
Стереть
- Уведомления словаря
- Получать уведомления о обновлениях словаря и о процессе загрузки.
Список команд
Удалить фильтр
Редактировать текста
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 3cf59a19..53f302cc 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -133,8 +133,6 @@
CSV dışa aktarılıyor…
CSV dışa aktarılıyor (%1$s)…
Ekran Düzeni
- Sözlük Bildirimleri
- Sözlük güncelleme ve yüklemeleri hakkında bildirimde bulunun.
Tuş yazı tipi boyutu
Yükseklik
Harf tuşlarının genişliği
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 5f7c4d1f..813bf250 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -121,8 +121,6 @@
Додавання слів неможливе цією мовою.
Стерти
- Сповіщення словника
- Отримувати повідомлення про оновлення словника та процес завантаження.
Список команд
Очистити фільтр
Редагувати тексту
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c76f79ce..b310e0d3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -121,8 +121,6 @@
Loading / %1$s… %2$d
Load Selected
Loading failed. Dictionary for \"%1$s\" not found.
- Dictionary Notifications
- Get notified about dictionary updates and see the loading progress.
Delete All
Delete Unselected
Dictionary deleted successfully.
diff --git a/app/src/main/res/xml/prefs_screen_languages.xml b/app/src/main/res/xml/prefs_screen_languages.xml
index 738fde71..2ff91f7b 100644
--- a/app/src/main/res/xml/prefs_screen_languages.xml
+++ b/app/src/main/res/xml/prefs_screen_languages.xml
@@ -6,12 +6,6 @@
app:key="pref_languages"
app:title="@string/pref_choose_languages" />
-
-