From 05599b89d20839ec04e71de172d63c58f5478952 Mon Sep 17 00:00:00 2001 From: Jason Chiu Date: Tue, 26 Nov 2019 16:53:11 +0800 Subject: [PATCH] Make Settings self-injected toggle switch searchable - only skip ActivityTile - skip items that has no static title Bug: 132812768 Test: robotest Change-Id: Idb3c111966c1dd96e2886aca2c7ead3b57ba119e --- .../search/SettingsSearchIndexablesProvider.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java index d504d9b8add..c619deccaa8 100644 --- a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java +++ b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java @@ -65,6 +65,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.overlay.FeatureFactory; import com.android.settings.slices.SettingsSliceProvider; +import com.android.settingslib.drawer.ActivityTile; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; import com.android.settingslib.search.Indexable; @@ -375,13 +376,19 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { final String currentPackageName = context.getPackageName(); for (DashboardCategory category : dashboardFeatureProvider.getAllCategories()) { for (Tile tile : category.getTiles()) { - if (currentPackageName.equals(tile.getPackageName())) { + if (currentPackageName.equals(tile.getPackageName()) + && tile instanceof ActivityTile) { + // Skip Settings injected items because they should be indexed in the sub-pages. continue; } final SearchIndexableRaw raw = new SearchIndexableRaw(context); + final CharSequence title = tile.getTitle(context); + raw.title = TextUtils.isEmpty(title) ? null : title.toString(); + if (TextUtils.isEmpty(raw.title)) { + continue; + } raw.key = dashboardFeatureProvider.getDashboardKeyForTile(tile); - raw.title = tile.getTitle(context).toString(); - CharSequence summary = tile.getSummary(context); + final CharSequence summary = tile.getSummary(context); raw.summaryOn = TextUtils.isEmpty(summary) ? null : summary.toString(); raw.summaryOff = raw.summaryOn; raw.className = CATEGORY_KEY_TO_PARENT_MAP.get(tile.getCategory());