Merge "Suppress rawData settings from indexing when page is disabled for search" into main
This commit is contained in:
@@ -45,6 +45,7 @@ import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* A basic SearchIndexProvider that returns no data to index.
|
||||
@@ -117,11 +118,18 @@ public class BaseSearchIndexProvider implements Indexable.SearchIndexProvider {
|
||||
@Override
|
||||
@CallSuper
|
||||
public List<String> getNonIndexableKeys(Context context) {
|
||||
final List<String> nonIndexableKeys = new ArrayList<>();
|
||||
if (!isPageSearchEnabled(context)) {
|
||||
// Entire page should be suppressed, mark all keys from this page as non-indexable.
|
||||
return getNonIndexableKeysFromXml(context, true /* suppressAllPage */);
|
||||
nonIndexableKeys.addAll(
|
||||
getNonIndexableKeysFromXml(context, true /* suppressAllPage */));
|
||||
nonIndexableKeys.addAll(
|
||||
getRawDataToIndex(context, true /* enabled */)
|
||||
.stream()
|
||||
.map(data -> data.key)
|
||||
.collect(Collectors.toList()));
|
||||
return nonIndexableKeys;
|
||||
}
|
||||
final List<String> nonIndexableKeys = new ArrayList<>();
|
||||
nonIndexableKeys.addAll(getNonIndexableKeysFromXml(context, false /* suppressAllPage */));
|
||||
final List<AbstractPreferenceController> controllers = getPreferenceControllers(context);
|
||||
if (controllers != null && !controllers.isEmpty()) {
|
||||
|
@@ -166,6 +166,16 @@ public class BaseSearchIndexProviderTest {
|
||||
return Collections.singletonList(sir);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) {
|
||||
List<SearchIndexableRaw> rawData = super.getRawDataToIndex(context, enabled);
|
||||
SearchIndexableRaw raw = new SearchIndexableRaw(context);
|
||||
raw.key = TEST_PREF_KEY;
|
||||
raw.title = "title";
|
||||
rawData.add(raw);
|
||||
return rawData;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isPageSearchEnabled(Context context) {
|
||||
return false;
|
||||
@@ -176,6 +186,7 @@ public class BaseSearchIndexProviderTest {
|
||||
provider.getNonIndexableKeys(RuntimeEnvironment.application);
|
||||
|
||||
assertThat(nonIndexableKeys).contains("status_header");
|
||||
assertThat(nonIndexableKeys).contains(TEST_PREF_KEY);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user