From 012ba80c507aee6dacfa5a9180ca020c84210463 Mon Sep 17 00:00:00 2001 From: chenjean Date: Tue, 8 Oct 2024 16:57:33 +0800 Subject: [PATCH] Create a method to allow child classes to define it's main switch toggle's pref key We'd like to make the main switch toggle's preference searchable. Since we construct the preference programmatically, this would allow the preference to be automatically scrolled to when the user is brought to this page from a search result. Bug: 372171003 Flag: EXEMPT refactor Test: manual Test: atest ToggleColorInversionPreferenceFragmentTest atest ToggleDaltonizerPreferenceFragmentTest atest ToggleFeaturePreferenceFragmentTest Change-Id: I6eed7598ad296a758573318cf4bde5de30c7005c --- ...chAccessibilityActivityPreferenceFragment.java | 2 +- .../ToggleDaltonizerPreferenceFragment.java | 2 +- .../ToggleFeaturePreferenceFragment.java | 9 ++++++--- ...oggleColorInversionPreferenceFragmentTest.java | 7 +++---- .../ToggleDaltonizerPreferenceFragmentTest.java | 3 +-- .../ToggleFeaturePreferenceFragmentTest.java | 15 +++++---------- 6 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java b/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java index 80d1ce0cdd0..91e65b1d4ec 100644 --- a/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java +++ b/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java @@ -67,7 +67,7 @@ public class LaunchAccessibilityActivityPreferenceFragment extends ToggleFeature initLaunchPreference(); final View view = super.onCreateView(inflater, container, savedInstanceState); - removePreference(KEY_USE_SERVICE_PREFERENCE); + removePreference(getUseServicePreferenceKey()); return view; } diff --git a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java index 86ddd71e262..d2fc6cc01c1 100644 --- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java @@ -106,7 +106,7 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF final List lists = new ArrayList<>(); lists.add(KEY_TOP_INTRO_PREFERENCE); lists.add(KEY_PREVIEW); - lists.add(KEY_USE_SERVICE_PREFERENCE); + lists.add(getUseServicePreferenceKey()); // Putting saturation level close to the preview so users can see what is changing. lists.add(KEY_SATURATION); lists.add(KEY_DEUTERANOMALY); diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java index 6649cf48354..a9f422e3749 100644 --- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java @@ -83,7 +83,6 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment public static final String KEY_GENERAL_CATEGORY = "general_categories"; public static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference"; protected static final String KEY_TOP_INTRO_PREFERENCE = "top_intro"; - protected static final String KEY_USE_SERVICE_PREFERENCE = "use_service"; protected static final String KEY_HTML_DESCRIPTION_PREFERENCE = "html_description"; protected static final String KEY_SAVED_QS_TOOLTIP_RESHOW = "qs_tooltip_reshow"; protected static final String KEY_SAVED_QS_TOOLTIP_TYPE = "qs_tooltip_type"; @@ -325,6 +324,10 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment switchPreference.setTitle(title); } + protected String getUseServicePreferenceKey() { + return "use_service"; + } + protected CharSequence getShortcutTitle() { return getString(R.string.accessibility_shortcut_title, mPackageName); } @@ -411,7 +414,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment final List lists = new ArrayList<>(); lists.add(KEY_TOP_INTRO_PREFERENCE); lists.add(KEY_ANIMATED_IMAGE); - lists.add(KEY_USE_SERVICE_PREFERENCE); + lists.add(getUseServicePreferenceKey()); lists.add(KEY_GENERAL_CATEGORY); lists.add(KEY_HTML_DESCRIPTION_PREFERENCE); return lists; @@ -476,7 +479,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment private void initToggleServiceSwitchPreference() { mToggleServiceSwitchPreference = new SettingsMainSwitchPreference(getPrefContext()); - mToggleServiceSwitchPreference.setKey(KEY_USE_SERVICE_PREFERENCE); + mToggleServiceSwitchPreference.setKey(getUseServicePreferenceKey()); if (getArguments().containsKey(AccessibilitySettings.EXTRA_CHECKED)) { final boolean enabled = getArguments().getBoolean(AccessibilitySettings.EXTRA_CHECKED); mToggleServiceSwitchPreference.setChecked(enabled); diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragmentTest.java index 1a82a25b2f7..eb2e6fd78c1 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragmentTest.java @@ -18,7 +18,6 @@ package com.android.settings.accessibility; import static com.android.settings.accessibility.AccessibilityUtil.State.OFF; import static com.android.settings.accessibility.AccessibilityUtil.State.ON; -import static com.android.settings.accessibility.ToggleColorInversionPreferenceFragment.KEY_USE_SERVICE_PREFERENCE; import static com.google.common.truth.Truth.assertThat; @@ -93,10 +92,10 @@ public class ToggleColorInversionPreferenceFragmentTest { when(mActivity.getContentResolver()).thenReturn(mContext.getContentResolver()); mScreen = spy(new PreferenceScreen(mContext, /* attrs= */ null)); - when(mScreen.findPreference(KEY_USE_SERVICE_PREFERENCE)) + when(mScreen.findPreference(mFragment.getUseServicePreferenceKey())) .thenReturn(mFragment.mToggleServiceSwitchPreference); doReturn(mScreen).when(mFragment).getPreferenceScreen(); - mSwitchPreference = mScreen.findPreference(KEY_USE_SERVICE_PREFERENCE); + mSwitchPreference = mScreen.findPreference(mFragment.getUseServicePreferenceKey()); } @Test @@ -220,7 +219,7 @@ public class ToggleColorInversionPreferenceFragmentTest { mComponentName = PLACEHOLDER_COMPONENT_NAME; final SettingsMainSwitchPreference switchPreference = new SettingsMainSwitchPreference(context); - switchPreference.setKey(KEY_USE_SERVICE_PREFERENCE); + switchPreference.setKey(getUseServicePreferenceKey()); mToggleServiceSwitchPreference = switchPreference; setArguments(new Bundle()); } diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragmentTest.java index a5bfec2f0db..fd82994123d 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragmentTest.java @@ -18,7 +18,6 @@ package com.android.settings.accessibility; import static com.android.settings.accessibility.AccessibilityUtil.State.OFF; import static com.android.settings.accessibility.AccessibilityUtil.State.ON; -import static com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.KEY_USE_SERVICE_PREFERENCE; import static com.google.common.truth.Truth.assertThat; @@ -189,6 +188,6 @@ public class ToggleDaltonizerPreferenceFragmentTest { private SettingsMainSwitchPreference getMainFeatureToggle( ToggleDaltonizerPreferenceFragment fragment) { - return fragment.findPreference(KEY_USE_SERVICE_PREFERENCE); + return fragment.findPreference(fragment.getUseServicePreferenceKey()); } } diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java index 71855e023d0..844fabe2647 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java @@ -235,8 +235,7 @@ public class ToggleFeaturePreferenceFragmentTest { @Test @Config(shadows = ShadowFragment.class) public void onPreferenceToggledOnDisabledService_notShowTooltipView() { - mFragment.onPreferenceToggled( - ToggleFeaturePreferenceFragment.KEY_USE_SERVICE_PREFERENCE, /* enabled= */ false); + mFragment.onPreferenceToggled(mFragment.getUseServicePreferenceKey(), /* enabled= */ false); assertThat(getLatestPopupWindow()).isNull(); } @@ -245,8 +244,7 @@ public class ToggleFeaturePreferenceFragmentTest { @DisableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT) @Config(shadows = ShadowFragment.class) public void onPreferenceToggledOnEnabledService_showTooltipView() { - mFragment.onPreferenceToggled( - ToggleFeaturePreferenceFragment.KEY_USE_SERVICE_PREFERENCE, /* enabled= */ true); + mFragment.onPreferenceToggled(mFragment.getUseServicePreferenceKey(), /* enabled= */ true); assertThat(getLatestPopupWindow().isShowing()).isTrue(); } @@ -258,8 +256,7 @@ public class ToggleFeaturePreferenceFragmentTest { suwIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true); when(mActivity.getIntent()).thenReturn(suwIntent); - mFragment.onPreferenceToggled( - ToggleFeaturePreferenceFragment.KEY_USE_SERVICE_PREFERENCE, /* enabled= */ true); + mFragment.onPreferenceToggled(mFragment.getUseServicePreferenceKey(), /* enabled= */ true); assertThat(getLatestPopupWindow()).isNull(); } @@ -268,12 +265,10 @@ public class ToggleFeaturePreferenceFragmentTest { @DisableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT) @Config(shadows = ShadowFragment.class) public void onPreferenceToggledOnEnabledService_tooltipViewShown_notShowTooltipView() { - mFragment.onPreferenceToggled( - ToggleFeaturePreferenceFragment.KEY_USE_SERVICE_PREFERENCE, /* enabled= */ true); + mFragment.onPreferenceToggled(mFragment.getUseServicePreferenceKey(), /* enabled= */ true); getLatestPopupWindow().dismiss(); - mFragment.onPreferenceToggled( - ToggleFeaturePreferenceFragment.KEY_USE_SERVICE_PREFERENCE, /* enabled= */ true); + mFragment.onPreferenceToggled(mFragment.getUseServicePreferenceKey(), /* enabled= */ true); assertThat(getLatestPopupWindow().isShowing()).isFalse(); }