From a992b611bfafe3469e2ca33fb0533d6825b185c9 Mon Sep 17 00:00:00 2001 From: ryanlwlin Date: Thu, 2 Dec 2021 20:51:21 +0800 Subject: [PATCH] Fix incorrect UI after triple-tap is disabled The preference summary is not changed after users disable the triple tap shortcut by the confirm dialog. It is due to the fact that the fragment doesn't observe the settings value change. To fix it, we add the settings key to observe the change. Bug: 208755360 Test: manual test Change-Id: Ie5b7fc5e67c5491b53485af0d3d68d1789aeace4 --- .../ToggleFeaturePreferenceFragment.java | 11 ++++++++--- .../ToggleScreenMagnificationPreferenceFragment.java | 7 +++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java index c25abf3486d..233b7ee2997 100644 --- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java @@ -143,9 +143,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference setPreferenceScreen(preferenceScreen); } - final List shortcutFeatureKeys = new ArrayList<>(); - shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS); - shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE); + final List shortcutFeatureKeys = getFeatureSettingsKeys(); mSettingsContentObserver = new SettingsContentObserver(new Handler(), shortcutFeatureKeys) { @Override public void onChange(boolean selfChange, Uri uri) { @@ -155,6 +153,13 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference }; } + protected List getFeatureSettingsKeys() { + final List shortcutFeatureKeys = new ArrayList<>(); + shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS); + shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE); + return shortcutFeatureKeys; + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java index 6b4a5f2b0ec..1586c5af56a 100644 --- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java @@ -275,6 +275,13 @@ public class ToggleScreenMagnificationPreferenceFragment extends return context.getText(resId); } + @Override + protected List getFeatureSettingsKeys() { + final List shortcutKeys = super.getFeatureSettingsKeys(); + shortcutKeys.add(Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED); + return shortcutKeys; + } + @Override protected CharSequence getShortcutTypeSummary(Context context) { if (!mShortcutPreference.isChecked()) {