Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d44b3f0 authored by Jason Chiu's avatar Jason Chiu Committed by Android (Google) Code Review
Browse files

Merge "Suppress rawData settings from indexing when page is disabled for search" into main

parents a384bb2c d1b0ad25
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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()) {
+11 −0
Original line number Diff line number Diff line
@@ -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