Merge "Index database before getting Uri Descendants" into pi-dev
am: a7fd137e2d
Change-Id: I88d50fd6157b9a62209e0afa1e6a791974a3c38b
This commit is contained in:
@@ -89,6 +89,7 @@ public class SlicesDatabaseAccessor {
|
|||||||
* @return a list of keys in the Slices database matching on {@param isPlatformSlice}.
|
* @return a list of keys in the Slices database matching on {@param isPlatformSlice}.
|
||||||
*/
|
*/
|
||||||
public List<String> getSliceKeys(boolean isPlatformSlice) {
|
public List<String> getSliceKeys(boolean isPlatformSlice) {
|
||||||
|
verifyIndexing();
|
||||||
final String whereClause;
|
final String whereClause;
|
||||||
|
|
||||||
if (isPlatformSlice) {
|
if (isPlatformSlice) {
|
||||||
|
@@ -27,6 +27,7 @@ import android.database.Cursor;
|
|||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
|
import com.android.settings.testutils.FakeIndexProvider;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.wifi.WifiSettings;
|
import com.android.settings.wifi.WifiSettings;
|
||||||
|
|
||||||
|
@@ -31,7 +31,6 @@ import android.content.ContentResolver;
|
|||||||
import android.content.ContentValues;
|
import android.content.ContentValues;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.database.ContentObserver;
|
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
@@ -40,14 +39,13 @@ import android.util.Pair;
|
|||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
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.SearchFeatureProvider;
|
||||||
import com.android.settings.search.SearchFeatureProviderImpl;
|
import com.android.settings.search.SearchFeatureProviderImpl;
|
||||||
import com.android.settings.testutils.DatabaseTestUtils;
|
import com.android.settings.testutils.DatabaseTestUtils;
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settings.testutils.FakeSliderController;
|
import com.android.settings.testutils.FakeSliderController;
|
||||||
import com.android.settings.testutils.FakeToggleController;
|
import com.android.settings.testutils.FakeToggleController;
|
||||||
import com.android.settings.testutils.FakeUnavailablePreferenceController;
|
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
|
@@ -33,7 +33,7 @@ import android.text.TextUtils;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.accessibility.AccessibilitySettings;
|
import com.android.settings.accessibility.AccessibilitySettings;
|
||||||
import com.android.settings.accessibility.AccessibilitySlicePreferenceController;
|
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.SearchFeatureProvider;
|
||||||
import com.android.settings.search.SearchFeatureProviderImpl;
|
import com.android.settings.search.SearchFeatureProviderImpl;
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
|
@@ -25,9 +25,13 @@ import android.content.ContentValues;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.net.Uri;
|
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.DatabaseTestUtils;
|
||||||
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
@@ -35,8 +39,15 @@ import org.junit.Before;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
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.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import org.robolectric.shadow.api.Shadow;
|
||||||
|
|
||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
public class SlicesDatabaseAccessorTest {
|
public class SlicesDatabaseAccessorTest {
|
||||||
@@ -157,6 +168,31 @@ public class SlicesDatabaseAccessorTest {
|
|||||||
assertThat(keys).containsExactly(key);
|
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) {
|
private void insertSpecialCase(String key) {
|
||||||
insertSpecialCase(key, true);
|
insertSpecialCase(key, true);
|
||||||
}
|
}
|
||||||
|
@@ -63,11 +63,12 @@ public class FakeFeatureFactory extends FeatureFactory {
|
|||||||
public final UserFeatureProvider userFeatureProvider;
|
public final UserFeatureProvider userFeatureProvider;
|
||||||
public final AssistGestureFeatureProvider assistGestureFeatureProvider;
|
public final AssistGestureFeatureProvider assistGestureFeatureProvider;
|
||||||
public final BluetoothFeatureProvider bluetoothFeatureProvider;
|
public final BluetoothFeatureProvider bluetoothFeatureProvider;
|
||||||
public final SlicesFeatureProvider slicesFeatureProvider;
|
|
||||||
public SearchFeatureProvider searchFeatureProvider;
|
|
||||||
public final AccountFeatureProvider mAccountFeatureProvider;
|
public final AccountFeatureProvider mAccountFeatureProvider;
|
||||||
public final DeviceIndexFeatureProvider deviceIndexFeatureProvider;
|
public final DeviceIndexFeatureProvider deviceIndexFeatureProvider;
|
||||||
|
|
||||||
|
public SlicesFeatureProvider slicesFeatureProvider;
|
||||||
|
public SearchFeatureProvider searchFeatureProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call this in {@code @Before} method of the test class to use fake factory.
|
* Call this in {@code @Before} method of the test class to use fake factory.
|
||||||
*/
|
*/
|
||||||
|
@@ -15,12 +15,14 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.search;
|
package com.android.settings.testutils;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.provider.SearchIndexableResource;
|
import android.provider.SearchIndexableResource;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
|
import com.android.settings.search.Indexable;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
Reference in New Issue
Block a user