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

Commit 40765c77 authored by Viesturs Zarins's avatar Viesturs Zarins
Browse files

Add searchable metadata attribute for injected tiles.

Allowing the injector to directly control search behavior for their tiles.

Bug: b/299430183
Test: robotest, manual
Change-Id: I21915978d6722998a45741410cca72448aacf2e0
parent 8a907427
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -454,7 +454,7 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider {
            // Skip Settings injected items because they should be indexed in the sub-pages.
            return false;
        }
        return true;
        return tile.isSearchable();
    }

    private static Object[] createIndexableRawColumnObjects(SearchIndexableRaw raw) {
+14 −0
Original line number Diff line number Diff line
package com.android.settings.search;

import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_SEARCHABLE;
import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITLE;

import static com.google.common.truth.Truth.assertThat;
@@ -207,6 +208,19 @@ public class SettingsSearchIndexablesProviderTest {
        assertThat(mProvider.isEligibleForIndexing(PACKAGE_NAME, activityTile)).isTrue();
    }

    @Test
    public void isEligibleForIndexing_disabledByMetadata_shouldReturnFalse() {
        final ActivityInfo activityInfo = new ActivityInfo();
        activityInfo.packageName = PACKAGE_NAME;
        activityInfo.name = "class";
        activityInfo.metaData = new Bundle();
        activityInfo.metaData.putBoolean(META_DATA_PREFERENCE_SEARCHABLE, false);
        final ActivityTile activityTile = new ActivityTile(activityInfo,
                CategoryKey.CATEGORY_CONNECT);

        assertThat(mProvider.isEligibleForIndexing(PACKAGE_NAME, activityTile)).isFalse();
    }

    @Implements(CategoryManager.class)
    public static class ShadowCategoryManager {