From 0fa4b503d9850adda63b7993a1914cc797feaf24 Mon Sep 17 00:00:00 2001 From: Mill Chen Date: Sun, 19 Nov 2023 15:09:40 +0800 Subject: [PATCH] Make Color inversion shortcut searchable The color inversion shortcut is not searchable because this preference is dynamically created. In order to make it searchable, we should add index raw data for this preference. Fixes: 223514734 Test: manual test 1) Open Settings search 2) Search for shortcut 3) check that the search results have Color inversion shortcut Change-Id: I354d0c0e63cc12bd5012d7f26a165278a40bcf2d --- ...oggleColorInversionPreferenceFragment.java | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java index 5defe989538..ccba9e7f68a 100644 --- a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java @@ -25,6 +25,7 @@ import static com.android.settings.accessibility.AccessibilityUtil.State.ON; import android.app.settings.SettingsEnums; import android.content.ComponentName; import android.content.ContentResolver; +import android.content.Context; import android.net.Uri; import android.os.Bundle; import android.provider.Settings; @@ -37,17 +38,22 @@ import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltip import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.widget.SettingsMainSwitchPreference; import com.android.settingslib.search.SearchIndexable; +import com.android.settingslib.search.SearchIndexableRaw; import java.util.ArrayList; import java.util.List; -/** Settings page for color inversion. */ +/** + * Settings page for color inversion. + */ @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC) public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePreferenceFragment { private static final String TAG = "ToggleColorInversionPreferenceFragment"; private static final String ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED; + private static final String KEY_SHORTCUT_PREFERENCE = "color_inversion_shortcut_key"; + @Override protected void registerKeysToObserverCallback( AccessibilitySettingsContentObserver contentObserver) { @@ -67,9 +73,9 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere mHtmlDescription = getText(R.string.accessibility_display_inversion_preference_subtitle); mTopIntroTitle = getText(R.string.accessibility_display_inversion_preference_intro_text); mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) - .authority(getPrefContext().getPackageName()) - .appendPath(String.valueOf(R.raw.a11y_color_inversion_banner)) - .build(); + .authority(getPrefContext().getPackageName()) + .appendPath(String.valueOf(R.raw.a11y_color_inversion_banner)) + .build(); final View view = super.onCreateView(inflater, container, savedInstanceState); updateFooterPreference(); return view; @@ -159,7 +165,7 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere @Override int getUserShortcutTypes() { return AccessibilityUtil.getUserShortcutTypesFromSettings(getPrefContext(), - mComponentName); + mComponentName); } @Override @@ -170,8 +176,8 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere @Override CharSequence getTileTooltipContent(@QuickSettingsTooltipType int type) { return getText(type == QuickSettingsTooltipType.GUIDE_TO_EDIT - ? R.string.accessibility_color_inversion_qs_tooltip_content - : R.string.accessibility_color_inversion_auto_added_qs_tooltip_content); + ? R.string.accessibility_color_inversion_qs_tooltip_content + : R.string.accessibility_color_inversion_auto_added_qs_tooltip_content); } @Override @@ -184,5 +190,17 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider(R.xml.accessibility_color_inversion_settings); + new BaseSearchIndexProvider(R.xml.accessibility_color_inversion_settings) { + @Override + public List getRawDataToIndex(Context context, + boolean enabled) { + final List rawData = new ArrayList<>(); + SearchIndexableRaw raw = new SearchIndexableRaw(context); + raw.key = KEY_SHORTCUT_PREFERENCE; + raw.title = context.getString( + R.string.accessibility_display_inversion_shortcut_title); + rawData.add(raw); + return rawData; + } + }; }