diff --git a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java index f0ae8046fe0..a5a70c6c1f5 100644 --- a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java +++ b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java @@ -68,6 +68,7 @@ import com.android.settings.slices.SettingsSliceProvider; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; import com.android.settingslib.search.Indexable; +import com.android.settingslib.search.SearchIndexableData; import com.android.settingslib.search.SearchIndexableRaw; import java.util.ArrayList; @@ -260,14 +261,14 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List getNonIndexableKeysFromProvider(Context context) { - final Collection values = getIndexableProviderValues(context); + final Collection bundles = FeatureFactory.getFactory(context) + .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); + final List nonIndexableKeys = new ArrayList<>(); - for (Class clazz : values) { + for (SearchIndexableData bundle : bundles) { final long startTime = System.currentTimeMillis(); - final Indexable.SearchIndexProvider provider = - DatabaseIndexingUtils.getSearchIndexProvider(clazz); - + Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); List providerNonIndexableKeys; try { providerNonIndexableKeys = provider.getNonIndexableKeys(context); @@ -281,7 +282,8 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { if (System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) { throw new RuntimeException(e); } - Log.e(TAG, "Error trying to get non-indexable keys from: " + clazz.getName(), e); + Log.e(TAG, "Error trying to get non-indexable keys from: " + + bundle.getTargetClass().getName(), e); continue; } @@ -310,12 +312,12 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List getSearchIndexableResourcesFromProvider(Context context) { - final Collection values = getIndexableProviderValues(context); - final List resourceList = new ArrayList<>(); + final Collection bundles = FeatureFactory.getFactory(context) + .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); + List resourceList = new ArrayList<>(); - for (Class clazz : values) { - final Indexable.SearchIndexProvider provider = - DatabaseIndexingUtils.getSearchIndexProvider(clazz); + for (SearchIndexableData bundle : bundles) { + Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); final List resList = provider.getXmlResourcesToIndex(context, true); @@ -325,7 +327,7 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { for (SearchIndexableResource item : resList) { item.className = TextUtils.isEmpty(item.className) - ? clazz.getName() + ? bundle.getTargetClass().getName() : item.className; } @@ -336,14 +338,14 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List getSearchIndexableRawFromProvider(Context context) { - final Collection values = getIndexableProviderValues(context); + final Collection bundles = FeatureFactory.getFactory(context) + .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); final List rawList = new ArrayList<>(); - for (Class clazz : values) { - final Indexable.SearchIndexProvider provider = - DatabaseIndexingUtils.getSearchIndexProvider(clazz); - final List providerRaws = - provider.getRawDataToIndex(context, true /* enabled */); + for (SearchIndexableData bundle : bundles) { + Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); + final List providerRaws = provider.getRawDataToIndex(context, + true /* enabled */); if (providerRaws == null) { continue; @@ -352,7 +354,7 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { for (SearchIndexableRaw raw : providerRaws) { // The classname and intent information comes from the PreIndexData // This will be more clear when provider conversion is done at PreIndex time. - raw.className = clazz.getName(); + raw.className = bundle.getTargetClass().getName(); } rawList.addAll(providerRaws); @@ -362,12 +364,12 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List getDynamicSearchIndexableRawFromProvider(Context context) { - final Collection values = getIndexableProviderValues(context); + final Collection bundles = FeatureFactory.getFactory(context) + .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); final List rawList = new ArrayList<>(); - for (Class clazz : values) { - final Indexable.SearchIndexProvider provider = - DatabaseIndexingUtils.getSearchIndexProvider(clazz); + for (SearchIndexableData bundle : bundles) { + final Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); final List providerRaws = provider.getDynamicRawDataToIndex(context, true /* enabled */); @@ -378,7 +380,7 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { for (SearchIndexableRaw raw : providerRaws) { // The classname and intent information comes from the PreIndexData // This will be more clear when provider conversion is done at PreIndex time. - raw.className = clazz.getName(); + raw.className = bundle.getTargetClass().getName(); } rawList.addAll(providerRaws); @@ -410,9 +412,4 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { return rawList; } - - private Collection getIndexableProviderValues(Context context) { - return FeatureFactory.getFactory(context) - .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); - } } diff --git a/src/com/android/settings/slices/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java index 06b5d786739..551a18672c8 100644 --- a/src/com/android/settings/slices/SliceDataConverter.java +++ b/src/com/android/settings/slices/SliceDataConverter.java @@ -53,9 +53,9 @@ import com.android.settings.core.PreferenceXmlParserUtils; import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.FeatureFactory; -import com.android.settings.search.DatabaseIndexingUtils; -import com.android.settingslib.search.Indexable.SearchIndexProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import com.android.settingslib.search.Indexable.SearchIndexProvider; +import com.android.settingslib.search.SearchIndexableData; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; @@ -101,14 +101,13 @@ class SliceDataConverter { public List getSliceData() { List sliceData = new ArrayList<>(); - final Collection indexableClasses = FeatureFactory.getFactory(mContext) + final Collection bundles = FeatureFactory.getFactory(mContext) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); - for (Class clazz : indexableClasses) { - final String fragmentName = clazz.getName(); + for (SearchIndexableData bundle : bundles) { + final String fragmentName = bundle.getTargetClass().getName(); - final SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider( - clazz); + final SearchIndexProvider provider = bundle.getSearchIndexProvider(); // CodeInspection test guards against the null check. Keep check in case of bad actors. if (provider == null) { diff --git a/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java b/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java index 78d1f7415bf..da234a1978a 100644 --- a/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java +++ b/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java @@ -10,12 +10,11 @@ import android.util.AttributeSet; import android.util.Xml; import com.android.settings.R; -import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.SearchFeatureProvider; import com.android.settings.search.SearchFeatureProviderImpl; -import com.android.settings.security.SecuritySettings; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.search.Indexable; +import com.android.settingslib.search.SearchIndexableData; import org.junit.Before; import org.junit.Test; @@ -35,9 +34,6 @@ import java.util.Set; @RunWith(RobolectricTestRunner.class) public class XmlControllerAttributeTest { - // List of classes that are too hard to mock in order to retrieve xml information. - private final List illegalClasses = Arrays.asList(SecuritySettings.class); - // List of XML that could be retrieved from the illegalClasses list. private final List whitelistXml = Arrays.asList(R.xml.security_dashboard_settings); @@ -112,14 +108,12 @@ public class XmlControllerAttributeTest { private Set getIndexableXml() { Set xmlResSet = new HashSet<>(); - Collection indexableClasses = + Collection SearchIndexableDatas = mSearchProvider.getSearchIndexableResources().getProviderValues(); - indexableClasses.removeAll(illegalClasses); - for (Class clazz : indexableClasses) { + for (SearchIndexableData bundle : SearchIndexableDatas) { - Indexable.SearchIndexProvider provider = - DatabaseIndexingUtils.getSearchIndexProvider(clazz); + Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); if (provider == null) { continue; diff --git a/src/com/android/settings/search/DatabaseIndexingUtils.java b/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtils.java similarity index 90% rename from src/com/android/settings/search/DatabaseIndexingUtils.java rename to tests/robotests/src/com/android/settings/search/DatabaseIndexingUtils.java index 21936a0bd6d..0aa70aeb006 100644 --- a/src/com/android/settings/search/DatabaseIndexingUtils.java +++ b/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtils.java @@ -12,7 +12,6 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * */ package com.android.settings.search; @@ -41,14 +40,14 @@ public class DatabaseIndexingUtils { } catch (NoSuchFieldException e) { Log.d(TAG, "Cannot find field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } catch (SecurityException se) { - Log.d(TAG, "Security exception for field '" + - FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); + Log.d(TAG, + "Security exception for field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } catch (IllegalAccessException e) { Log.d(TAG, "Illegal access to field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } catch (IllegalArgumentException e) { - Log.d(TAG, "Illegal argument when accessing field '" + - FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); + Log.d(TAG, "Illegal argument when accessing field '" + + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } return null; } -} \ No newline at end of file +} diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java index c75e3b18d2c..9daac809356 100644 --- a/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java +++ b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java @@ -26,6 +26,7 @@ import com.android.settings.SettingsPreferenceFragment; import com.android.settings.core.codeinspection.CodeInspector; import com.android.settings.dashboard.DashboardFragmentSearchIndexProviderInspector; import com.android.settingslib.search.Indexable; +import com.android.settingslib.search.SearchIndexableData; import com.android.settingslib.search.SearchIndexableResources; import org.robolectric.RuntimeEnvironment; @@ -54,7 +55,7 @@ public class SearchIndexProviderCodeInspector extends CodeInspector { + " but these are not: \n"; private static final String NOT_PROVIDING_VALID_RESOURCE_ERROR = "SearchIndexableProvider must either provide no resource to index, or valid ones. " - + "But the followings contain resource with xml id = 0\n"; + + "But the followings contain resource with xml id = 0\n"; private final List notImplementingIndexProviderGrandfatherList; private final List notInSearchIndexableRegistryGrandfatherList; @@ -79,6 +80,13 @@ public class SearchIndexProviderCodeInspector extends CodeInspector { final Set notInSearchProviderRegistry = new ArraySet<>(); final Set notSharingPreferenceControllers = new ArraySet<>(); final Set notProvidingValidResource = new ArraySet<>(); + final Set providerClasses = new ArraySet<>(); + + final SearchFeatureProvider provider = new SearchFeatureProviderImpl(); + for (SearchIndexableData bundle : + provider.getSearchIndexableResources().getProviderValues()) { + providerClasses.add(bundle.getTargetClass()); + } for (Class clazz : mClasses) { if (!isConcreteSettingsClass(clazz)) { @@ -108,8 +116,7 @@ public class SearchIndexProviderCodeInspector extends CodeInspector { continue; } // Must be in SearchProviderRegistry - SearchFeatureProvider provider = new SearchFeatureProviderImpl(); - if (!provider.getSearchIndexableResources().getProviderValues().contains(clazz)) { + if (!providerClasses.contains(clazz)) { if (!notInSearchIndexableRegistryGrandfatherList.remove(className)) { notInSearchProviderRegistry.add(className); } diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java index ff2acdc307b..5bcce579795 100644 --- a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java +++ b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java @@ -21,7 +21,6 @@ import static android.provider.SearchIndexablesContract.COLUMN_INDEX_NON_INDEXAB import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; - import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; @@ -32,6 +31,7 @@ import android.text.TextUtils; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeIndexProvider; import com.android.settings.wifi.WifiSettings; +import com.android.settingslib.search.SearchIndexableData; import org.junit.After; import org.junit.Before; @@ -65,11 +65,11 @@ public class SearchIndexableResourcesTest { .doesNotContain(String.class); final int beforeCount = mSearchProvider.getSearchIndexableResources().getProviderValues().size(); - - mSearchProvider.getSearchIndexableResources().addIndex(String.class); + final SearchIndexableData testBundle = new SearchIndexableData(null, null); + mSearchProvider.getSearchIndexableResources().addIndex(testBundle); assertThat(mSearchProvider.getSearchIndexableResources().getProviderValues()) - .contains(String.class); + .contains(testBundle); final int afterCount = mSearchProvider.getSearchIndexableResources().getProviderValues().size(); assertThat(afterCount).isEqualTo(beforeCount + 1); @@ -77,14 +77,22 @@ public class SearchIndexableResourcesTest { @Test public void testIndexHasWifiSettings() { - assertThat(mSearchProvider.getSearchIndexableResources().getProviderValues()) - .contains(WifiSettings.class); + boolean hasWifi = false; + for (SearchIndexableData bundle : + mSearchProvider.getSearchIndexableResources().getProviderValues()) { + if (bundle.getTargetClass().getName().equals(WifiSettings.class.getName())) { + hasWifi = true; + break; + } + } + assertThat(hasWifi).isTrue(); } @Test public void testNonIndexableKeys_GetsKeyFromProvider() { mSearchProvider.getSearchIndexableResources().getProviderValues().clear(); - mSearchProvider.getSearchIndexableResources().addIndex(FakeIndexProvider.class); + mSearchProvider.getSearchIndexableResources().addIndex( + new SearchIndexableData(null, FakeIndexProvider.SEARCH_INDEX_DATA_PROVIDER)); SettingsSearchIndexablesProvider provider = spy(new SettingsSearchIndexablesProvider()); @@ -105,9 +113,10 @@ public class SearchIndexableResourcesTest { @Test public void testAllClassNamesHaveProviders() { - for (Class clazz : mSearchProvider.getSearchIndexableResources().getProviderValues()) { - if (DatabaseIndexingUtils.getSearchIndexProvider(clazz) == null) { - fail(clazz.getName() + "is not an index provider"); + for (SearchIndexableData data : + mSearchProvider.getSearchIndexableResources().getProviderValues()) { + if (DatabaseIndexingUtils.getSearchIndexProvider(data.getTargetClass()) == null) { + fail(data.getTargetClass().getName() + "is not an index provider"); } } } diff --git a/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java b/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java index 2a8407bd16a..0db684e2eb7 100644 --- a/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java +++ b/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java @@ -13,6 +13,7 @@ import android.provider.SearchIndexablesContract; import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settingslib.search.SearchIndexableData; import org.junit.After; import org.junit.Before; @@ -46,7 +47,8 @@ public class SettingsSearchIndexablesProviderTest { final SearchFeatureProvider featureProvider = new SearchFeatureProviderImpl(); featureProvider.getSearchIndexableResources().getProviderValues().clear(); featureProvider.getSearchIndexableResources().getProviderValues() - .add(FakeSettingsFragment.class); + .add(new SearchIndexableData(FakeSettingsFragment.class, + FakeSettingsFragment.SEARCH_INDEX_DATA_PROVIDER)); mFakeFeatureFactory = FakeFeatureFactory.setupForTest(); mFakeFeatureFactory.searchFeatureProvider = featureProvider; } diff --git a/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java b/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java index 21944fcad47..72eae7db5eb 100644 --- a/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java +++ b/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java @@ -31,11 +31,11 @@ import com.android.settings.core.SliderPreferenceController; import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.codeinspection.CodeInspector; import com.android.settings.overlay.FeatureFactory; -import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.SearchFeatureProvider; import com.android.settings.search.SearchFeatureProviderImpl; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.search.Indexable; +import com.android.settingslib.search.SearchIndexableData; import org.robolectric.RuntimeEnvironment; import org.xmlpull.v1.XmlPullParserException; @@ -146,13 +146,12 @@ public class SliceControllerInXmlCodeInspector extends CodeInspector { private List getIndexableXml() { final List xmlResSet = new ArrayList<>(); - final Collection indexableClasses = FeatureFactory.getFactory( + final Collection bundles = FeatureFactory.getFactory( mContext).getSearchFeatureProvider().getSearchIndexableResources() .getProviderValues(); - for (Class clazz : indexableClasses) { - Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider( - clazz); + for (SearchIndexableData bundle : bundles) { + Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); if (provider == null) { continue; diff --git a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java index 63da4d03a2e..3ce964ce556 100644 --- a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java +++ b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java @@ -37,6 +37,7 @@ import com.android.settings.search.SearchFeatureProvider; import com.android.settings.search.SearchFeatureProviderImpl; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeIndexProvider; +import com.android.settingslib.search.SearchIndexableData; import org.junit.After; import org.junit.Before; @@ -92,7 +93,8 @@ public class SliceDataConverterTest { public void testFakeProvider_convertsFakeData() { mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear(); mSearchFeatureProvider.getSearchIndexableResources().getProviderValues() - .add(FakeIndexProvider.class); + .add(new SearchIndexableData(FakeIndexProvider.class, + FakeIndexProvider.SEARCH_INDEX_DATA_PROVIDER)); doReturn(getFakeService()).when(mSliceDataConverter).getAccessibilityServiceInfoList(); diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java index bed5a27b1c1..a28dba83d12 100644 --- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java +++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java @@ -24,9 +24,7 @@ import static org.mockito.Mockito.spy; import android.app.ApplicationPackageManager; import android.content.ComponentName; import android.content.ContentResolver; -import android.content.ContentValues; import android.content.Context; -import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.provider.SettingsSlicesContract; import android.view.accessibility.AccessibilityManager; @@ -40,6 +38,7 @@ import com.android.settings.testutils.shadow.ShadowBluetoothAdapter; import com.android.settings.testutils.shadow.ShadowLockPatternUtils; import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settings.testutils.shadow.ShadowUtils; +import com.android.settingslib.search.SearchIndexableData; import org.junit.After; import org.junit.Before; @@ -217,7 +216,8 @@ public class SlicesDatabaseAccessorTest { // Fake the indexable list. provider.getSearchIndexableResources().getProviderValues().clear(); provider.getSearchIndexableResources().getProviderValues().add( - FakeIndexProvider.class); + new SearchIndexableData(FakeIndexProvider.class, + FakeIndexProvider.SEARCH_INDEX_DATA_PROVIDER)); final SlicesDatabaseAccessor accessor = new SlicesDatabaseAccessor(mContext); final List keys = accessor.getSliceUris(SettingsSliceProvider.SLICE_AUTHORITY); diff --git a/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java b/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java index 3fcccf66370..2d083f0d03d 100644 --- a/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java +++ b/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java @@ -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; } diff --git a/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java b/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java index 251c51297fd..9ed1c914989 100644 --- a/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java +++ b/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java @@ -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 uniqueKeys, Set duplicatedKeys, - Set nullKeyClasses, Class clazz) + Set 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 rawsToIndex = provider.getRawDataToIndex(mContext, true); final List resourcesToIndex = provider.getXmlResourcesToIndex(mContext, true); diff --git a/tests/unit/src/com/android/settings/core/UserRestrictionTest.java b/tests/unit/src/com/android/settings/core/UserRestrictionTest.java index 0f5260ae271..e8e4927d490 100644 --- a/tests/unit/src/com/android/settings/core/UserRestrictionTest.java +++ b/tests/unit/src/com/android/settings/core/UserRestrictionTest.java @@ -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 resourcesToIndex = provider.getXmlResourcesToIndex(mContext, true); + final String className = searchIndexableData.getTargetClass().getName(); + if (resourcesToIndex == null) { Log.d(TAG, className + "is not providing SearchIndexableResource, skipping"); return; diff --git a/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java b/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java index 7e5a8b03dab..61629e9b3de 100644 --- a/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java +++ b/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java @@ -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 nullTitleFragments, Class clazz) + private void verifyPreferenceTitle(Set 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 resourcesToIndex = provider.getXmlResourcesToIndex(mContext, true);