Make Settings self-injected toggle switch searchable

- only skip ActivityTile
- skip items that has no static title

Bug: 132812768
Test: robotest
Change-Id: Idb3c111966c1dd96e2886aca2c7ead3b57ba119e
This commit is contained in:
Jason Chiu
2019-11-26 16:53:11 +08:00
parent a6198c25be
commit 05599b89d2

View File

@@ -65,6 +65,7 @@ import com.android.settings.SettingsActivity;
import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.slices.SettingsSliceProvider; import com.android.settings.slices.SettingsSliceProvider;
import com.android.settingslib.drawer.ActivityTile;
import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.Tile;
import com.android.settingslib.search.Indexable; import com.android.settingslib.search.Indexable;
@@ -375,13 +376,19 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider {
final String currentPackageName = context.getPackageName(); final String currentPackageName = context.getPackageName();
for (DashboardCategory category : dashboardFeatureProvider.getAllCategories()) { for (DashboardCategory category : dashboardFeatureProvider.getAllCategories()) {
for (Tile tile : category.getTiles()) { 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; continue;
} }
final SearchIndexableRaw raw = new SearchIndexableRaw(context); 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.key = dashboardFeatureProvider.getDashboardKeyForTile(tile);
raw.title = tile.getTitle(context).toString(); final CharSequence summary = tile.getSummary(context);
CharSequence summary = tile.getSummary(context);
raw.summaryOn = TextUtils.isEmpty(summary) ? null : summary.toString(); raw.summaryOn = TextUtils.isEmpty(summary) ? null : summary.toString();
raw.summaryOff = raw.summaryOn; raw.summaryOff = raw.summaryOn;
raw.className = CATEGORY_KEY_TO_PARENT_MAP.get(tile.getCategory()); raw.className = CATEGORY_KEY_TO_PARENT_MAP.get(tile.getCategory());