diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/CorrectionSettingsFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/CorrectionSettingsFragment.java index 544cd3547..3f4c2a657 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/CorrectionSettingsFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/CorrectionSettingsFragment.java @@ -20,7 +20,6 @@ import static org.dslul.openboard.inputmethod.latin.permissions.PermissionsManag import android.Manifest; import android.app.Activity; -import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; @@ -68,8 +67,7 @@ public final class CorrectionSettingsFragment extends SubScreenFragment super.onCreate(icicle); addPreferencesFromResource(R.xml.prefs_screen_correction); - final Context context = getActivity(); - final PackageManager pm = context.getPackageManager(); + final PackageManager pm = requireContext().getPackageManager(); final Preference editPersonalDictionary = findPreference(Settings.PREF_EDIT_PERSONAL_DICTIONARY); @@ -79,7 +77,7 @@ public final class CorrectionSettingsFragment extends SubScreenFragment if (ri == null) { overwriteUserDictionaryPreference(editPersonalDictionary); } - mLookupContactsPreference = (SwitchPreferenceCompat) findPreference(AndroidSpellCheckerService.PREF_USE_CONTACTS_KEY); + mLookupContactsPreference = findPreference(AndroidSpellCheckerService.PREF_USE_CONTACTS_KEY); refreshEnabledSettings(); } @@ -91,7 +89,7 @@ public final class CorrectionSettingsFragment extends SubScreenFragment && !PermissionsUtil.checkAllPermissionsGranted( getActivity() /* context */, Manifest.permission.READ_CONTACTS) ) { - get(getActivity() /* context */).requestPermissions(this /* PermissionsResultCallback */, + get(requireContext()).requestPermissions(this /* PermissionsResultCallback */, getActivity() /* activity */, Manifest.permission.READ_CONTACTS); } refreshEnabledSettings(); @@ -113,9 +111,9 @@ public final class CorrectionSettingsFragment extends SubScreenFragment } private void refreshEnabledSettings() { - setPreferenceEnabled(Settings.PREF_AUTO_CORRECTION_CONFIDENCE, + setPreferenceVisible(Settings.PREF_AUTO_CORRECTION_CONFIDENCE, Settings.readAutoCorrectEnabled(getSharedPreferences(), getResources())); - setPreferenceEnabled(Settings.PREF_ADD_TO_PERSONAL_DICTIONARY, getSharedPreferences().getBoolean(Settings.PREF_KEY_USE_PERSONALIZED_DICTS, true)); + setPreferenceVisible(Settings.PREF_ADD_TO_PERSONAL_DICTIONARY, getSharedPreferences().getBoolean(Settings.PREF_KEY_USE_PERSONALIZED_DICTS, true)); turnOffLookupContactsIfNoPermission(); } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/GestureSettingsFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/GestureSettingsFragment.java index 5dcf88592..339a35191 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/GestureSettingsFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/GestureSettingsFragment.java @@ -16,6 +16,8 @@ package org.dslul.openboard.inputmethod.latin.settings; +import android.content.SharedPreferences; +import android.content.res.Resources; import android.os.Bundle; import org.dslul.openboard.inputmethod.latin.R; @@ -34,5 +36,20 @@ public final class GestureSettingsFragment extends SubScreenFragment { public void onCreate(final Bundle icicle) { super.onCreate(icicle); addPreferencesFromResource(R.xml.prefs_screen_gesture); + refreshSettingsEnablement(); + } + + @Override + public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) { + refreshSettingsEnablement(); + } + + private void refreshSettingsEnablement() { + final SharedPreferences prefs = getSharedPreferences(); + final Resources res = getResources(); + setPreferenceVisible(Settings.PREF_GESTURE_PREVIEW_TRAIL, + Settings.readGestureInputEnabled(prefs, res)); + setPreferenceVisible(Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, + Settings.readGestureInputEnabled(prefs, res)); } } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/PreferencesSettingsFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/PreferencesSettingsFragment.java index c0c2fa3a9..79de4afc3 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/PreferencesSettingsFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/PreferencesSettingsFragment.java @@ -86,11 +86,11 @@ public final class PreferencesSettingsFragment extends SubScreenFragment { private void refreshEnablingsOfKeypressSoundAndVibrationAndHistRetentionSettings() { final SharedPreferences prefs = getSharedPreferences(); final Resources res = getResources(); - setPreferenceEnabled(Settings.PREF_VIBRATION_DURATION_SETTINGS, + setPreferenceVisible(Settings.PREF_VIBRATION_DURATION_SETTINGS, Settings.readVibrationEnabled(prefs, res)); - setPreferenceEnabled(Settings.PREF_KEYPRESS_SOUND_VOLUME, + setPreferenceVisible(Settings.PREF_KEYPRESS_SOUND_VOLUME, Settings.readKeypressSoundEnabled(prefs, res)); - setPreferenceEnabled(Settings.PREF_CLIPBOARD_HISTORY_RETENTION_TIME, + setPreferenceVisible(Settings.PREF_CLIPBOARD_HISTORY_RETENTION_TIME, Settings.readClipboardHistoryEnabled(prefs)); } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubScreenFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubScreenFragment.java index e4973624a..68e157b88 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubScreenFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubScreenFragment.java @@ -42,11 +42,11 @@ public abstract class SubScreenFragment extends PreferenceFragmentCompat implements OnSharedPreferenceChangeListener { private OnSharedPreferenceChangeListener mSharedPreferenceChangeListener; - static void setPreferenceEnabled(final String prefKey, final boolean enabled, - final PreferenceScreen screen) { + static void setPreferenceVisible(final String prefKey, final boolean visible, + final PreferenceScreen screen) { final Preference preference = screen.findPreference(prefKey); if (preference != null) { - preference.setEnabled(enabled); + preference.setVisible(visible); } } @@ -76,8 +76,8 @@ public abstract class SubScreenFragment extends PreferenceFragmentCompat listPreference.setSummary(entryIndex < 0 ? null : entries[entryIndex]); } - final void setPreferenceEnabled(final String prefKey, final boolean enabled) { - setPreferenceEnabled(prefKey, enabled, getPreferenceScreen()); + final void setPreferenceVisible(final String prefKey, final boolean visible) { + setPreferenceVisible(prefKey, visible, getPreferenceScreen()); } final void removePreference(final String prefKey) { diff --git a/app/src/main/res/xml/prefs_screen_gesture.xml b/app/src/main/res/xml/prefs_screen_gesture.xml index ab871918c..f58a3ba2c 100644 --- a/app/src/main/res/xml/prefs_screen_gesture.xml +++ b/app/src/main/res/xml/prefs_screen_gesture.xml @@ -26,14 +26,12 @@ android:persistent="true" />