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" />