From a9e6e8c811d61121feb47aa2b7dca06b657350cf Mon Sep 17 00:00:00 2001 From: menghanli Date: Mon, 18 Apr 2022 21:50:36 +0800 Subject: [PATCH] Fix quick settings tooltip changed when color correction fab clicked Root cause: Users click on color correction fab to make foreground activity recreate. When recreated, the ag/13472947 makes the MainSwitch updates to ON status and get the callback for #onPreferenceToggled. It pops up the direct-use style tooltip rather than the edit style tooltip. Soluton: Reference #updateSwitchBarToggleSwitch to early returns if values are same. Bug: 229167631 Test: Manual testing Change-Id: I6781fd509db7538898ad6ff0ae47124c9b9e1bc5 --- .../ToggleColorInversionPreferenceFragment.java | 5 +++++ .../accessibility/ToggleDaltonizerPreferenceFragment.java | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java index 71f47ccbd63..06f82764a19 100644 --- a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java @@ -51,6 +51,11 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere @Override protected void onPreferenceToggled(String preferenceKey, boolean enabled) { + final boolean isEnabled = Settings.Secure.getInt(getContentResolver(), ENABLED, OFF) == ON; + if (enabled == isEnabled) { + return; + } + if (enabled) { showQuickSettingsTooltipIfNeeded(QuickSettingsTooltipType.GUIDE_TO_DIRECT_USE); } diff --git a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java index ac4408fad89..208d5c1549e 100644 --- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java @@ -166,6 +166,11 @@ public final class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePrefe @Override protected void onPreferenceToggled(String preferenceKey, boolean enabled) { + final boolean isEnabled = Settings.Secure.getInt(getContentResolver(), ENABLED, OFF) == ON; + if (enabled == isEnabled) { + return; + } + if (enabled) { showQuickSettingsTooltipIfNeeded(QuickSettingsTooltipType.GUIDE_TO_DIRECT_USE); }