Integrated SearchIndexableResources interface in Settings
- New SearchIndexableResources interface returns SearchIndexableBundle, we don't need reflection to get SearchIndexableProvider Bug: 135053028 Test: robolectric, check database search_index.db items Change-Id: I5ed3416ccf72ef3d38db817fcb4aff7502649ed4
This commit is contained in:
@@ -29,8 +29,8 @@ import androidx.test.runner.AndroidJUnit4;
|
||||
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.search.DatabaseIndexingUtils;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.search.SearchIndexableData;
|
||||
import com.android.settingslib.search.SearchIndexableResources;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -60,10 +60,10 @@ public class PreferenceControllerContractTest {
|
||||
final SearchIndexableResources resources =
|
||||
FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
|
||||
.getSearchIndexableResources();
|
||||
for (Class<?> clazz : resources.getProviderValues()) {
|
||||
for (SearchIndexableData bundle : resources.getProviderValues()) {
|
||||
|
||||
final BaseSearchIndexProvider provider =
|
||||
(BaseSearchIndexProvider) DatabaseIndexingUtils.getSearchIndexProvider(clazz);
|
||||
(BaseSearchIndexProvider) bundle.getSearchIndexProvider();
|
||||
if (provider == null) {
|
||||
continue;
|
||||
}
|
||||
|
@@ -32,8 +32,8 @@ import androidx.test.runner.AndroidJUnit4;
|
||||
|
||||
import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.DatabaseIndexingUtils;
|
||||
import com.android.settingslib.search.Indexable;
|
||||
import com.android.settingslib.search.SearchIndexableData;
|
||||
import com.android.settingslib.search.SearchIndexableRaw;
|
||||
import com.android.settingslib.search.SearchIndexableResources;
|
||||
|
||||
@@ -120,8 +120,8 @@ public class UniquePreferenceTest {
|
||||
final SearchIndexableResources resources =
|
||||
FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
|
||||
.getSearchIndexableResources();
|
||||
for (Class<?> clazz : resources.getProviderValues()) {
|
||||
verifyPreferenceKeys(uniqueKeys, duplicatedKeys, nullKeyClasses, clazz);
|
||||
for (SearchIndexableData SearchIndexableData : resources.getProviderValues()) {
|
||||
verifyPreferenceKeys(uniqueKeys, duplicatedKeys, nullKeyClasses, SearchIndexableData);
|
||||
}
|
||||
|
||||
if (!nullKeyClasses.isEmpty()) {
|
||||
@@ -145,14 +145,12 @@ public class UniquePreferenceTest {
|
||||
}
|
||||
|
||||
private void verifyPreferenceKeys(Set<String> uniqueKeys, Set<String> duplicatedKeys,
|
||||
Set<String> nullKeyClasses, Class<?> clazz)
|
||||
Set<String> nullKeyClasses, SearchIndexableData searchIndexableData)
|
||||
throws IOException, XmlPullParserException, Resources.NotFoundException {
|
||||
if (clazz == null) {
|
||||
return;
|
||||
}
|
||||
final String className = clazz.getName();
|
||||
|
||||
final String className = searchIndexableData.getTargetClass().getName();
|
||||
final Indexable.SearchIndexProvider provider =
|
||||
DatabaseIndexingUtils.getSearchIndexProvider(clazz);
|
||||
searchIndexableData.getSearchIndexProvider();
|
||||
final List<SearchIndexableRaw> rawsToIndex = provider.getRawDataToIndex(mContext, true);
|
||||
final List<SearchIndexableResource> resourcesToIndex =
|
||||
provider.getXmlResourcesToIndex(mContext, true);
|
||||
|
@@ -33,8 +33,8 @@ import androidx.test.filters.MediumTest;
|
||||
import androidx.test.runner.AndroidJUnit4;
|
||||
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.DatabaseIndexingUtils;
|
||||
import com.android.settingslib.search.Indexable;
|
||||
import com.android.settingslib.search.SearchIndexableData;
|
||||
import com.android.settingslib.search.SearchIndexableResources;
|
||||
|
||||
import com.google.android.collect.Sets;
|
||||
@@ -84,22 +84,21 @@ public class UserRestrictionTest {
|
||||
final SearchIndexableResources resources =
|
||||
FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
|
||||
.getSearchIndexableResources();
|
||||
for (Class<?> clazz : resources.getProviderValues()) {
|
||||
verifyUserRestriction(clazz);
|
||||
for (SearchIndexableData bundle : resources.getProviderValues()) {
|
||||
verifyUserRestriction(bundle);
|
||||
}
|
||||
}
|
||||
|
||||
private void verifyUserRestriction(Class<?> clazz)
|
||||
private void verifyUserRestriction(SearchIndexableData searchIndexableData)
|
||||
throws IOException, XmlPullParserException, Resources.NotFoundException {
|
||||
if (clazz == null) {
|
||||
return;
|
||||
}
|
||||
final String className = clazz.getName();
|
||||
|
||||
final Indexable.SearchIndexProvider provider =
|
||||
DatabaseIndexingUtils.getSearchIndexProvider(clazz);
|
||||
searchIndexableData.getSearchIndexProvider();
|
||||
final List<SearchIndexableResource> resourcesToIndex =
|
||||
provider.getXmlResourcesToIndex(mContext, true);
|
||||
|
||||
final String className = searchIndexableData.getTargetClass().getName();
|
||||
|
||||
if (resourcesToIndex == null) {
|
||||
Log.d(TAG, className + "is not providing SearchIndexableResource, skipping");
|
||||
return;
|
||||
|
@@ -31,8 +31,8 @@ import androidx.test.runner.AndroidJUnit4;
|
||||
|
||||
import com.android.settings.core.PreferenceXmlParserUtils;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.DatabaseIndexingUtils;
|
||||
import com.android.settingslib.search.Indexable;
|
||||
import com.android.settingslib.search.SearchIndexableData;
|
||||
import com.android.settingslib.search.SearchIndexableResources;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -67,8 +67,8 @@ public class SliceDataContractTest {
|
||||
FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
|
||||
.getSearchIndexableResources();
|
||||
|
||||
for (Class<?> clazz : resources.getProviderValues()) {
|
||||
verifyPreferenceTitle(nullTitleFragments, clazz);
|
||||
for (SearchIndexableData SearchIndexableData : resources.getProviderValues()) {
|
||||
verifyPreferenceTitle(nullTitleFragments, SearchIndexableData);
|
||||
}
|
||||
|
||||
if (!nullTitleFragments.isEmpty()) {
|
||||
@@ -82,14 +82,13 @@ public class SliceDataContractTest {
|
||||
}
|
||||
}
|
||||
|
||||
private void verifyPreferenceTitle(Set<String> nullTitleFragments, Class<?> clazz)
|
||||
private void verifyPreferenceTitle(Set<String> nullTitleFragments,
|
||||
SearchIndexableData searchIndexableData)
|
||||
throws IOException, XmlPullParserException {
|
||||
if (clazz == null) {
|
||||
return;
|
||||
}
|
||||
final String className = clazz.getName();
|
||||
|
||||
final String className = searchIndexableData.getTargetClass().getName();
|
||||
final Indexable.SearchIndexProvider provider =
|
||||
DatabaseIndexingUtils.getSearchIndexProvider(clazz);
|
||||
searchIndexableData.getSearchIndexProvider();
|
||||
|
||||
final List<SearchIndexableResource> resourcesToIndex =
|
||||
provider.getXmlResourcesToIndex(mContext, true);
|
||||
|
Reference in New Issue
Block a user