Merge "Check non-indexable keys for raw data" into oc-dr1-dev am: 24ba2fbdb9

am: dc2005eb6a

Change-Id: Ibcefe758e9524ae810234212ac83d385bd03d09e
This commit is contained in:
Matthew Fritze
2017-07-06 17:39:25 +00:00
committed by android-build-merger
2 changed files with 27 additions and 5 deletions

View File

@@ -617,17 +617,24 @@ public class DatabaseIndexingManager {
if (data instanceof SearchIndexableResource) {
indexOneResource(database, localeStr, (SearchIndexableResource) data, nonIndexableKeys);
} else if (data instanceof SearchIndexableRaw) {
indexOneRaw(database, localeStr, (SearchIndexableRaw) data);
indexOneRaw(database, localeStr, (SearchIndexableRaw) data, nonIndexableKeys);
}
}
private void indexOneRaw(SQLiteDatabase database, String localeStr,
SearchIndexableRaw raw) {
SearchIndexableRaw raw, Map<String, Set<String>> nonIndexableKeysFromResource) {
// Should be the same locale as the one we are processing
if (!raw.locale.toString().equalsIgnoreCase(localeStr)) {
return;
}
Set<String> packageKeys = nonIndexableKeysFromResource.get(raw.intentTargetPackage);
boolean enabled = raw.enabled;
if (packageKeys != null && packageKeys.contains(raw.key)) {
enabled = false;
}
DatabaseRow.Builder builder = new DatabaseRow.Builder();
builder.setLocale(localeStr)
.setEntries(raw.entries)
@@ -638,7 +645,7 @@ public class DatabaseIndexingManager {
.setIntentAction(raw.intentAction)
.setIntentTargetPackage(raw.intentTargetPackage)
.setIntentTargetClass(raw.intentTargetClass)
.setEnabled(raw.enabled)
.setEnabled(enabled)
.setKey(raw.key)
.setUserId(raw.userId);