Merge "Refactor SettingsSearchIndexablesProvider."
diff --git a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
index a5a70c6..e681a22 100644
--- a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
+++ b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
@@ -107,7 +107,7 @@
final List<SearchIndexableResource> resources =
getSearchIndexableResourcesFromProvider(getContext());
for (SearchIndexableResource val : resources) {
- Object[] ref = new Object[INDEXABLES_XML_RES_COLUMNS.length];
+ final Object[] ref = new Object[INDEXABLES_XML_RES_COLUMNS.length];
ref[COLUMN_INDEX_XML_RES_RANK] = val.rank;
ref[COLUMN_INDEX_XML_RES_RESID] = val.xmlResId;
ref[COLUMN_INDEX_XML_RES_CLASS_NAME] = val.className;
@@ -129,21 +129,7 @@
final MatrixCursor cursor = new MatrixCursor(INDEXABLES_RAW_COLUMNS);
final List<SearchIndexableRaw> raws = getSearchIndexableRawFromProvider(getContext());
for (SearchIndexableRaw val : raws) {
- Object[] ref = new Object[INDEXABLES_RAW_COLUMNS.length];
- ref[COLUMN_INDEX_RAW_TITLE] = val.title;
- ref[COLUMN_INDEX_RAW_SUMMARY_ON] = val.summaryOn;
- ref[COLUMN_INDEX_RAW_SUMMARY_OFF] = val.summaryOff;
- ref[COLUMN_INDEX_RAW_ENTRIES] = val.entries;
- ref[COLUMN_INDEX_RAW_KEYWORDS] = val.keywords;
- ref[COLUMN_INDEX_RAW_SCREEN_TITLE] = val.screenTitle;
- ref[COLUMN_INDEX_RAW_CLASS_NAME] = val.className;
- ref[COLUMN_INDEX_RAW_ICON_RESID] = val.iconResId;
- ref[COLUMN_INDEX_RAW_INTENT_ACTION] = val.intentAction;
- ref[COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE] = val.intentTargetPackage;
- ref[COLUMN_INDEX_RAW_INTENT_TARGET_CLASS] = val.intentTargetClass;
- ref[COLUMN_INDEX_RAW_KEY] = val.key;
- ref[COLUMN_INDEX_RAW_USER_ID] = val.userId;
- cursor.addRow(ref);
+ cursor.addRow(createIndexableRawColumnObjects(val));
}
return cursor;
@@ -181,21 +167,7 @@
final MatrixCursor cursor = new MatrixCursor(INDEXABLES_RAW_COLUMNS);
for (SearchIndexableRaw raw : rawList) {
- Object[] ref = new Object[INDEXABLES_RAW_COLUMNS.length];
- ref[COLUMN_INDEX_RAW_TITLE] = raw.title;
- ref[COLUMN_INDEX_RAW_SUMMARY_ON] = raw.summaryOn;
- ref[COLUMN_INDEX_RAW_SUMMARY_OFF] = raw.summaryOff;
- ref[COLUMN_INDEX_RAW_ENTRIES] = raw.entries;
- ref[COLUMN_INDEX_RAW_KEYWORDS] = raw.keywords;
- ref[COLUMN_INDEX_RAW_SCREEN_TITLE] = raw.screenTitle;
- ref[COLUMN_INDEX_RAW_CLASS_NAME] = raw.className;
- ref[COLUMN_INDEX_RAW_ICON_RESID] = raw.iconResId;
- ref[COLUMN_INDEX_RAW_INTENT_ACTION] = raw.intentAction;
- ref[COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE] = raw.intentTargetPackage;
- ref[COLUMN_INDEX_RAW_INTENT_TARGET_CLASS] = raw.intentTargetClass;
- ref[COLUMN_INDEX_RAW_KEY] = raw.key;
- ref[COLUMN_INDEX_RAW_USER_ID] = raw.userId;
- cursor.addRow(ref);
+ cursor.addRow(createIndexableRawColumnObjects(raw));
}
return cursor;
@@ -394,22 +366,40 @@
FeatureFactory.getFactory(context).getDashboardFeatureProvider(context);
final List<SearchIndexableRaw> rawList = new ArrayList<>();
+ final String currentPackageName = context.getPackageName();
for (DashboardCategory category : dashboardFeatureProvider.getAllCategories()) {
for (Tile tile : category.getTiles()) {
- final String packageName = tile.getPackageName();
- if (context.getPackageName().equals(packageName)) {
+ if (currentPackageName.equals(tile.getPackageName())) {
continue;
}
final SearchIndexableRaw raw = new SearchIndexableRaw(context);
+ raw.key = dashboardFeatureProvider.getDashboardKeyForTile(tile);
raw.title = tile.getTitle(context).toString();
- raw.summaryOn = tile.getSummary(context).toString();
- raw.summaryOff = tile.getSummary(context).toString();
- raw.keywords = dashboardFeatureProvider.getDashboardKeyForTile(tile);
+ 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());
rawList.add(raw);
}
}
- return rawList;
+ return rawList; }
+
+ private static Object[] createIndexableRawColumnObjects(SearchIndexableRaw raw) {
+ final Object[] ref = new Object[INDEXABLES_RAW_COLUMNS.length];
+ ref[COLUMN_INDEX_RAW_TITLE] = raw.title;
+ ref[COLUMN_INDEX_RAW_SUMMARY_ON] = raw.summaryOn;
+ ref[COLUMN_INDEX_RAW_SUMMARY_OFF] = raw.summaryOff;
+ ref[COLUMN_INDEX_RAW_ENTRIES] = raw.entries;
+ ref[COLUMN_INDEX_RAW_KEYWORDS] = raw.keywords;
+ ref[COLUMN_INDEX_RAW_SCREEN_TITLE] = raw.screenTitle;
+ ref[COLUMN_INDEX_RAW_CLASS_NAME] = raw.className;
+ ref[COLUMN_INDEX_RAW_ICON_RESID] = raw.iconResId;
+ ref[COLUMN_INDEX_RAW_INTENT_ACTION] = raw.intentAction;
+ ref[COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE] = raw.intentTargetPackage;
+ ref[COLUMN_INDEX_RAW_INTENT_TARGET_CLASS] = raw.intentTargetClass;
+ ref[COLUMN_INDEX_RAW_KEY] = raw.key;
+ ref[COLUMN_INDEX_RAW_USER_ID] = raw.userId;
+ return ref;
}
}