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

Commit 03f1fafa authored by Matthew Fritze's avatar Matthew Fritze Committed by android-build-merger
Browse files

Merge "Index database before getting Uri Descendants" into pi-dev

am: a7fd137e

Change-Id: I88d50fd6157b9a62209e0afa1e6a791974a3c38b
parents 1635941c a7fd137e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ public class SlicesDatabaseAccessor {
     * @return a list of keys in the Slices database matching on {@param isPlatformSlice}.
     */
    public List<String> getSliceKeys(boolean isPlatformSlice) {
        verifyIndexing();
        final String whereClause;

        if (isPlatformSlice) {
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.database.Cursor;
import android.text.TextUtils;

import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.FakeIndexProvider;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.wifi.WifiSettings;

+1 −3
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.ContentObserver;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.provider.Settings;
@@ -40,14 +39,13 @@ import android.util.Pair;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.search.FakeIndexProvider;
import com.android.settings.testutils.FakeIndexProvider;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProviderImpl;
import com.android.settings.testutils.DatabaseTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.FakeSliderController;
import com.android.settings.testutils.FakeToggleController;
import com.android.settings.testutils.FakeUnavailablePreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;

import org.junit.After;
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ import android.text.TextUtils;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilitySettings;
import com.android.settings.accessibility.AccessibilitySlicePreferenceController;
import com.android.settings.search.FakeIndexProvider;
import com.android.settings.testutils.FakeIndexProvider;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProviderImpl;
import com.android.settings.testutils.FakeFeatureFactory;
+37 −1
Original line number Diff line number Diff line
@@ -25,9 +25,13 @@ import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.view.accessibility.AccessibilityManager;

import com.android.settings.search.FakeIndexProvider;
import com.android.settings.testutils.FakeIndexProvider;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProviderImpl;
import com.android.settings.testutils.DatabaseTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;

import org.junit.After;
@@ -35,8 +39,15 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowAccessibilityManager;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

import org.robolectric.shadow.api.Shadow;


@RunWith(SettingsRobolectricTestRunner.class)
public class SlicesDatabaseAccessorTest {
@@ -157,6 +168,31 @@ public class SlicesDatabaseAccessorTest {
        assertThat(keys).containsExactly(key);
    }

    @Test
    @Config(qualifiers = "mcc999")
    public void getSliceKeys_indexesDatabase() {
        // Force new indexing
        Locale.setDefault(new Locale("ca"));
        // Register the fake a11y Service
        ShadowAccessibilityManager shadowAccessibilityManager = Shadow.extract(
                RuntimeEnvironment.application.getSystemService(AccessibilityManager.class));
        shadowAccessibilityManager.setInstalledAccessibilityServiceList(new ArrayList<>());
        final SearchFeatureProvider provider = new SearchFeatureProviderImpl();
        final SlicesFeatureProvider sliceProvider = spy(new SlicesFeatureProviderImpl());
        final FakeFeatureFactory factory = FakeFeatureFactory.setupForTest();
        factory.searchFeatureProvider = provider;
        factory.slicesFeatureProvider = sliceProvider;
        // Fake the indexable list.
        provider.getSearchIndexableResources().getProviderValues().clear();
        provider.getSearchIndexableResources().getProviderValues().add(
                FakeIndexProvider.class);

        final SlicesDatabaseAccessor accessor = new SlicesDatabaseAccessor(mContext);
        final List<String> keys = accessor.getSliceKeys(true);

        assertThat(keys).isNotEmpty();
    }

    private void insertSpecialCase(String key) {
        insertSpecialCase(key, true);
    }
Loading