From 9bb64d561ffec8a8b498d73dbb85c434a6c496e2 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Sat, 11 May 2024 17:40:49 +0200 Subject: [PATCH] read use_contacts pref as false if permission was revoked avoids resetting dictinary facilitator on every startInputView --- .../keyboard/latin/settings/SettingsValues.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java b/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java index f64e4a90..f60df971 100644 --- a/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java +++ b/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java @@ -6,6 +6,7 @@ package helium314.keyboard.latin.settings; +import android.Manifest; import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; @@ -23,6 +24,7 @@ import helium314.keyboard.latin.InputAttributes; import helium314.keyboard.latin.R; import helium314.keyboard.latin.RichInputMethodManager; import helium314.keyboard.latin.common.Colors; +import helium314.keyboard.latin.permissions.PermissionsUtil; import helium314.keyboard.latin.utils.InputTypeUtils; import helium314.keyboard.latin.utils.Log; import helium314.keyboard.latin.utils.PopupKeysUtilsKt; @@ -225,7 +227,7 @@ public class SettingsValues { mPopupKeyLabelSources = PopupKeysUtilsKt.getEnabledPopupKeys(prefs, Settings.PREF_POPUP_KEYS_LABELS_ORDER + "_" + mLocale.toLanguageTag(), popupKeyLabelDefault); mAddToPersonalDictionary = prefs.getBoolean(Settings.PREF_ADD_TO_PERSONAL_DICTIONARY, false); - mUseContactsDictionary = prefs.getBoolean(Settings.PREF_USE_CONTACTS, false); + mUseContactsDictionary = SettingsValues.readUseContactsEnabled(prefs, context); mCustomNavBarColor = prefs.getBoolean(Settings.PREF_NAVBAR_COLOR, false); mNarrowKeyGaps = prefs.getBoolean(Settings.PREF_NARROW_KEY_GAPS, true); mSettingsValuesForSuggestion = new SettingsValuesForSuggestion( @@ -344,6 +346,11 @@ public class SettingsValues { return autoCorrectionThreshold; } + private static boolean readUseContactsEnabled(final SharedPreferences prefs, final Context context) { + return prefs.getBoolean(Settings.PREF_USE_CONTACTS, false) + && PermissionsUtil.checkAllPermissionsGranted(context, Manifest.permission.READ_CONTACTS); + } + public String dump() { final StringBuilder sb = new StringBuilder("Current settings :"); sb.append("\n mSpacingAndPunctuations = ");