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

Commit bbdc72c9 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "Get rid of SearchIndexableResources entirely.""

parents 63a97d9c 6c0c7894
Loading
Loading
Loading
Loading
+175 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * 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;

import android.support.annotation.VisibleForTesting;

import com.android.settings.DateTimeSettings;
import com.android.settings.DeviceInfoSettings;
import com.android.settings.DisplaySettings;
import com.android.settings.LegalSettings;
import com.android.settings.ScreenPinningSettings;
import com.android.settings.accessibility.AccessibilitySettings;
import com.android.settings.accessibility.AccessibilityShortcutPreferenceFragment;
import com.android.settings.accessibility.MagnificationPreferenceFragment;
import com.android.settings.accounts.UserAndAccountDashboardFragment;
import com.android.settings.applications.AppAndNotificationDashboardFragment;
import com.android.settings.applications.DefaultAppSettings;
import com.android.settings.applications.SpecialAccessSettings;
import com.android.settings.applications.assist.ManageAssist;
import com.android.settings.backup.BackupSettingsActivity;
import com.android.settings.backup.BackupSettingsFragment;
import com.android.settings.bluetooth.BluetoothSettings;
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
import com.android.settings.datausage.DataUsageMeteredSettings;
import com.android.settings.datausage.DataUsageSummary;
import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
import com.android.settings.development.DevelopmentSettingsDashboardFragment;
import com.android.settings.deviceinfo.Status;
import com.android.settings.deviceinfo.StorageDashboardFragment;
import com.android.settings.deviceinfo.StorageSettings;
import com.android.settings.display.AmbientDisplaySettings;
import com.android.settings.display.ScreenZoomSettings;
import com.android.settings.dream.DreamSettings;
import com.android.settings.enterprise.EnterprisePrivacySettings;
import com.android.settings.fuelgauge.BatterySaverSettings;
import com.android.settings.fuelgauge.PowerUsageAdvanced;
import com.android.settings.fuelgauge.PowerUsageSummary;
import com.android.settings.gestures.AssistGestureSettings;
import com.android.settings.gestures.DoubleTapPowerSettings;
import com.android.settings.gestures.DoubleTapScreenSettings;
import com.android.settings.gestures.DoubleTwistGestureSettings;
import com.android.settings.gestures.GestureSettings;
import com.android.settings.gestures.PickupGestureSettings;
import com.android.settings.gestures.SwipeToNotificationSettings;
import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
import com.android.settings.inputmethod.VirtualKeyboardFragment;
import com.android.settings.language.LanguageAndInputSettings;
import com.android.settings.location.LocationSettings;
import com.android.settings.location.ScanningSettings;
import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.nfc.PaymentSettings;
import com.android.settings.notification.ConfigureNotificationSettings;
import com.android.settings.notification.SoundSettings;
import com.android.settings.notification.ZenModeAutomationSettings;
import com.android.settings.notification.ZenModeBehaviorSettings;
import com.android.settings.notification.ZenModeSettings;
import com.android.settings.print.PrintSettingsFragment;
import com.android.settings.security.EncryptionAndCredential;
import com.android.settings.security.LockscreenDashboardFragment;
import com.android.settings.security.SecuritySettings;
import com.android.settings.security.screenlock.ScreenLockSettings;
import com.android.settings.sim.SimSettings;
import com.android.settings.support.SupportDashboardActivity;
import com.android.settings.system.ResetDashboardFragment;
import com.android.settings.system.SystemDashboardFragment;
import com.android.settings.tts.TextToSpeechSettings;
import com.android.settings.tts.TtsEnginePreferenceFragment;
import com.android.settings.users.UserSettings;
import com.android.settings.wallpaper.WallpaperTypeSettings;
import com.android.settings.wifi.ConfigureWifiSettings;
import com.android.settings.wifi.WifiSettings;

import java.util.Collection;
import java.util.HashSet;
import java.util.Set;

public final class SearchIndexableResources {

    @VisibleForTesting
    static final Set<Class> sProviders = new HashSet<>();

    @VisibleForTesting
    static void addIndex(Class indexClass) {
        sProviders.add(indexClass);
    }

    static {
        addIndex(WifiSettings.class);
        addIndex(NetworkDashboardFragment.class);
        addIndex(ConfigureWifiSettings.class);
        addIndex(BluetoothSettings.class);
        addIndex(SimSettings.class);
        addIndex(DataUsageSummary.class);
        addIndex(DataUsageMeteredSettings.class);
        addIndex(ScreenZoomSettings.class);
        addIndex(DisplaySettings.class);
        addIndex(AmbientDisplaySettings.class);
        addIndex(WallpaperTypeSettings.class);
        addIndex(AppAndNotificationDashboardFragment.class);
        addIndex(SoundSettings.class);
        addIndex(ZenModeSettings.class);
        addIndex(StorageSettings.class);
        addIndex(PowerUsageAdvanced.class);
        addIndex(DefaultAppSettings.class);
        addIndex(ManageAssist.class);
        addIndex(SpecialAccessSettings.class);
        addIndex(UserSettings.class);
        addIndex(AssistGestureSettings.class);
        addIndex(PickupGestureSettings.class);
        addIndex(DoubleTapScreenSettings.class);
        addIndex(DoubleTapPowerSettings.class);
        addIndex(DoubleTwistGestureSettings.class);
        addIndex(SwipeToNotificationSettings.class);
        addIndex(GestureSettings.class);
        addIndex(LanguageAndInputSettings.class);
        addIndex(LocationSettings.class);
        addIndex(ScanningSettings.class);
        addIndex(SecuritySettings.class);
        addIndex(ScreenLockSettings.class);
        addIndex(EncryptionAndCredential.class);
        addIndex(ScreenPinningSettings.class);
        addIndex(UserAndAccountDashboardFragment.class);
        addIndex(VirtualKeyboardFragment.class);
        addIndex(AvailableVirtualKeyboardFragment.class);
        addIndex(PhysicalKeyboardFragment.class);
        addIndex(BackupSettingsActivity.class);
        addIndex(BackupSettingsFragment.class);
        addIndex(DateTimeSettings.class);
        addIndex(AccessibilitySettings.class);
        addIndex(PrintSettingsFragment.class);
        addIndex(DevelopmentSettingsDashboardFragment.class);
        addIndex(DeviceInfoSettings.class);
        addIndex(Status.class);
        addIndex(LegalSettings.class);
        addIndex(SystemDashboardFragment.class);
        addIndex(ResetDashboardFragment.class);
        addIndex(StorageDashboardFragment.class);
        addIndex(ConnectedDeviceDashboardFragment.class);
        addIndex(EnterprisePrivacySettings.class);
        addIndex(PaymentSettings.class);
        addIndex(TextToSpeechSettings.class);
        addIndex(TtsEnginePreferenceFragment.class);
        addIndex(MagnificationPreferenceFragment.class);
        addIndex(AccessibilityShortcutPreferenceFragment.class);
        addIndex(DreamSettings.class);
        addIndex(SupportDashboardActivity.class);
        addIndex(AutomaticStorageManagerSettings.class);
        addIndex(ConfigureNotificationSettings.class);
        addIndex(PowerUsageSummary.class);
        addIndex(BatterySaverSettings.class);
        addIndex(LockscreenDashboardFragment.class);
        addIndex(ZenModeBehaviorSettings.class);
        addIndex(ZenModeAutomationSettings.class);
    }

    private SearchIndexableResources() {
    }

    public static Collection<Class> providerValues() { return sProviders;}
}
 No newline at end of file
+6 −146
Original line number Diff line number Diff line
@@ -46,164 +46,21 @@ import android.database.Cursor;
import android.database.MatrixCursor;
import android.provider.SearchIndexableResource;
import android.provider.SearchIndexablesProvider;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.Log;

import com.android.settings.DateTimeSettings;
import com.android.settings.DeviceInfoSettings;
import com.android.settings.DisplaySettings;
import com.android.settings.LegalSettings;
import com.android.settings.ScreenPinningSettings;
import com.android.settings.accessibility.AccessibilitySettings;
import com.android.settings.accessibility.AccessibilityShortcutPreferenceFragment;
import com.android.settings.accessibility.MagnificationPreferenceFragment;
import com.android.settings.accounts.UserAndAccountDashboardFragment;
import com.android.settings.applications.AppAndNotificationDashboardFragment;
import com.android.settings.applications.DefaultAppSettings;
import com.android.settings.applications.SpecialAccessSettings;
import com.android.settings.applications.assist.ManageAssist;
import com.android.settings.backup.BackupSettingsActivity;
import com.android.settings.backup.BackupSettingsFragment;
import com.android.settings.bluetooth.BluetoothSettings;
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
import com.android.settings.datausage.DataUsageMeteredSettings;
import com.android.settings.datausage.DataUsageSummary;
import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
import com.android.settings.development.DevelopmentSettingsDashboardFragment;
import com.android.settings.deviceinfo.Status;
import com.android.settings.deviceinfo.StorageDashboardFragment;
import com.android.settings.deviceinfo.StorageSettings;
import com.android.settings.display.AmbientDisplaySettings;
import com.android.settings.display.ScreenZoomSettings;
import com.android.settings.dream.DreamSettings;
import com.android.settings.enterprise.EnterprisePrivacySettings;
import com.android.settings.fuelgauge.BatterySaverSettings;
import com.android.settings.fuelgauge.PowerUsageAdvanced;
import com.android.settings.fuelgauge.PowerUsageSummary;
import com.android.settings.gestures.AssistGestureSettings;
import com.android.settings.gestures.DoubleTapPowerSettings;
import com.android.settings.gestures.DoubleTapScreenSettings;
import com.android.settings.gestures.DoubleTwistGestureSettings;
import com.android.settings.gestures.GestureSettings;
import com.android.settings.gestures.PickupGestureSettings;
import com.android.settings.gestures.SwipeToNotificationSettings;
import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
import com.android.settings.inputmethod.VirtualKeyboardFragment;
import com.android.settings.language.LanguageAndInputSettings;
import com.android.settings.location.LocationSettings;
import com.android.settings.location.ScanningSettings;
import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.nfc.PaymentSettings;
import com.android.settings.notification.ConfigureNotificationSettings;
import com.android.settings.notification.SoundSettings;
import com.android.settings.notification.ZenModeAutomationSettings;
import com.android.settings.notification.ZenModeBehaviorSettings;
import com.android.settings.notification.ZenModeSettings;
import com.android.settings.print.PrintSettingsFragment;
import com.android.settings.security.EncryptionAndCredential;
import com.android.settings.security.LockscreenDashboardFragment;
import com.android.settings.security.SecuritySettings;
import com.android.settings.security.screenlock.ScreenLockSettings;
import com.android.settings.sim.SimSettings;
import com.android.settings.support.SupportDashboardActivity;
import com.android.settings.system.ResetDashboardFragment;
import com.android.settings.system.SystemDashboardFragment;
import com.android.settings.tts.TextToSpeechSettings;
import com.android.settings.tts.TtsEnginePreferenceFragment;
import com.android.settings.users.UserSettings;
import com.android.settings.wallpaper.WallpaperTypeSettings;
import com.android.settings.wifi.ConfigureWifiSettings;
import com.android.settings.wifi.WifiSettings;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider {
    public static final boolean DEBUG = false;
    private static final String TAG = "SettingsSearchProvider";

    public static final Set<Class> INDEXABLES = new HashSet<>();
    private static final Collection<String> INVALID_KEYS;

    @VisibleForTesting
    static void addIndex(Class indexClass) {
        INDEXABLES.add(indexClass);
    }

    static {
        addIndex(WifiSettings.class);
        addIndex(NetworkDashboardFragment.class);
        addIndex(ConfigureWifiSettings.class);
        addIndex(BluetoothSettings.class);
        addIndex(SimSettings.class);
        addIndex(DataUsageSummary.class);
        addIndex(DataUsageMeteredSettings.class);
        addIndex(ScreenZoomSettings.class);
        addIndex(DisplaySettings.class);
        addIndex(AmbientDisplaySettings.class);
        addIndex(WallpaperTypeSettings.class);
        addIndex(AppAndNotificationDashboardFragment.class);
        addIndex(SoundSettings.class);
        addIndex(ZenModeSettings.class);
        addIndex(StorageSettings.class);
        addIndex(PowerUsageAdvanced.class);
        addIndex(DefaultAppSettings.class);
        addIndex(ManageAssist.class);
        addIndex(SpecialAccessSettings.class);
        addIndex(UserSettings.class);
        addIndex(AssistGestureSettings.class);
        addIndex(PickupGestureSettings.class);
        addIndex(DoubleTapScreenSettings.class);
        addIndex(DoubleTapPowerSettings.class);
        addIndex(DoubleTwistGestureSettings.class);
        addIndex(SwipeToNotificationSettings.class);
        addIndex(GestureSettings.class);
        addIndex(LanguageAndInputSettings.class);
        addIndex(LocationSettings.class);
        addIndex(ScanningSettings.class);
        addIndex(SecuritySettings.class);
        addIndex(ScreenLockSettings.class);
        addIndex(EncryptionAndCredential.class);
        addIndex(ScreenPinningSettings.class);
        addIndex(UserAndAccountDashboardFragment.class);
        addIndex(VirtualKeyboardFragment.class);
        addIndex(AvailableVirtualKeyboardFragment.class);
        addIndex(PhysicalKeyboardFragment.class);
        addIndex(BackupSettingsActivity.class);
        addIndex(BackupSettingsFragment.class);
        addIndex(DateTimeSettings.class);
        addIndex(AccessibilitySettings.class);
        addIndex(PrintSettingsFragment.class);
        addIndex(DevelopmentSettingsDashboardFragment.class);
        addIndex(DeviceInfoSettings.class);
        addIndex(Status.class);
        addIndex(LegalSettings.class);
        addIndex(SystemDashboardFragment.class);
        addIndex(ResetDashboardFragment.class);
        addIndex(StorageDashboardFragment.class);
        addIndex(ConnectedDeviceDashboardFragment.class);
        addIndex(EnterprisePrivacySettings.class);
        addIndex(PaymentSettings.class);
        addIndex(TextToSpeechSettings.class);
        addIndex(TtsEnginePreferenceFragment.class);
        addIndex(MagnificationPreferenceFragment.class);
        addIndex(AccessibilityShortcutPreferenceFragment.class);
        addIndex(DreamSettings.class);
        addIndex(SupportDashboardActivity.class);
        addIndex(AutomaticStorageManagerSettings.class);
        addIndex(ConfigureNotificationSettings.class);
        addIndex(PowerUsageSummary.class);
        addIndex(BatterySaverSettings.class);
        addIndex(LockscreenDashboardFragment.class);
        addIndex(ZenModeBehaviorSettings.class);
        addIndex(ZenModeAutomationSettings.class);

        INVALID_KEYS = new ArraySet<>();
        INVALID_KEYS.add(null);
        INVALID_KEYS.add("");
@@ -278,9 +135,10 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider {
    }

    private List<String> getNonIndexableKeysFromProvider(Context context) {
        final Collection<Class> values = SearchIndexableResources.providerValues();
        final List<String> nonIndexableKeys = new ArrayList<>();

        for (Class clazz : INDEXABLES) {
        for (Class<?> clazz : values) {
            final long startTime = System.currentTimeMillis();
            Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(
                    clazz);
@@ -311,9 +169,10 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider {
    }

    private List<SearchIndexableResource> getSearchIndexableResourcesFromProvider(Context context) {
        Collection<Class> values = SearchIndexableResources.providerValues();
        List<SearchIndexableResource> resourceList = new ArrayList<>();

        for (Class clazz : INDEXABLES) {
        for (Class<?> clazz : values) {
            Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(
                    clazz);

@@ -337,9 +196,10 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider {
    }

    private List<SearchIndexableRaw> getSearchIndexableRawFromProvider(Context context) {
        final Collection<Class> values = SearchIndexableResources.providerValues();
        final List<SearchIndexableRaw> rawList = new ArrayList<>();

        for (Class clazz : INDEXABLES) {
        for (Class<?> clazz : values) {
            Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(
                    clazz);
            final List<SearchIndexableRaw> providerRaws = provider.getRawDataToIndex(context,
+4 −4
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.settings.search;

import static com.google.common.truth.Truth.assertWithMessage;

import android.util.ArraySet;
import android.util.Log;

@@ -30,6 +28,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import static com.google.common.truth.Truth.assertWithMessage;

/**
 * {@link CodeInspector} to ensure fragments implement search components correctly.
 */
@@ -47,7 +47,7 @@ public class SearchIndexProviderCodeInspector extends CodeInspector {
                    + " these are not: \n";
    private static final String NOT_IN_INDEXABLE_PROVIDER_REGISTRY =
            "Class containing " + DatabaseIndexingManager.FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER
                    + " must be added to " + SettingsSearchIndexablesProvider.class.getName()
                    + " must be added to " + SearchIndexableResources.class.getName()
                    + " but these are not: \n";

    private final List<String> notImplementingIndexableGrandfatherList;
@@ -114,7 +114,7 @@ public class SearchIndexProviderCodeInspector extends CodeInspector {
                continue;
            }
            // Must be in SearchProviderRegistry
            if (!SettingsSearchIndexablesProvider.INDEXABLES.contains(clazz)) {
            if (!SearchIndexableResources.providerValues().contains(clazz)) {
                if (!notInSearchIndexableRegistryGrandfatherList.remove(className)) {
                    notInSearchProviderRegistry.add(className);
                }
+17 −15
Original line number Diff line number Diff line
@@ -18,7 +18,9 @@ package com.android.settings.search;

import static android.provider.SearchIndexablesContract.COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE;
import static com.google.common.truth.Truth.assertThat;

import static junit.framework.Assert.fail;

import static org.mockito.Mockito.spy;

import android.database.Cursor;
@@ -38,45 +40,45 @@ import java.util.HashSet;
import java.util.Set;

@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SearchIndexableResourcesTest {

    private Set<Class> mProviderClassCopy;
    Set<Class> sProviderClassCopy;

    @Before
    public void setUp() {
        mProviderClassCopy = new HashSet<>(SettingsSearchIndexablesProvider.INDEXABLES);
        sProviderClassCopy = new HashSet<>(SearchIndexableResources.sProviders);
    }

    @After
    public void cleanUp() {
        SettingsSearchIndexablesProvider.INDEXABLES.clear();
        SettingsSearchIndexablesProvider.INDEXABLES.addAll(mProviderClassCopy);
        SearchIndexableResources.sProviders.clear();
        SearchIndexableResources.sProviders.addAll(sProviderClassCopy);
    }

    @Test
    public void testAddIndex() {
        final Class stringClass = java.lang.String.class;
        // Confirms that String.class isn't contained in SearchIndexableResources.
        assertThat(SettingsSearchIndexablesProvider.INDEXABLES).doesNotContain(stringClass);
        final int beforeCount = SettingsSearchIndexablesProvider.INDEXABLES.size();
        assertThat(SearchIndexableResources.sProviders).doesNotContain(stringClass);
        final int beforeCount = SearchIndexableResources.providerValues().size();

        SettingsSearchIndexablesProvider.addIndex(java.lang.String.class);
        SearchIndexableResources.addIndex(java.lang.String.class);

        assertThat(SettingsSearchIndexablesProvider.INDEXABLES).contains(stringClass);
        final int afterCount = SettingsSearchIndexablesProvider.INDEXABLES.size();
        assertThat(SearchIndexableResources.sProviders).contains(stringClass);
        final int afterCount = SearchIndexableResources.providerValues().size();
        assertThat(afterCount).isEqualTo(beforeCount + 1);
    }

    @Test
    public void testIndexHasWifiSettings() {
        assertThat(mProviderClassCopy).contains(WifiSettings.class);
        assertThat(sProviderClassCopy).contains(WifiSettings.class);
    }

    @Test
    public void testNonIndexableKeys_GetsKeyFromProvider() {
        SettingsSearchIndexablesProvider.INDEXABLES.clear();
        SettingsSearchIndexablesProvider.addIndex(FakeIndexProvider.class);
        SearchIndexableResources.sProviders.clear();
        SearchIndexableResources.addIndex(FakeIndexProvider.class);

        SettingsSearchIndexablesProvider provider = spy(new SettingsSearchIndexablesProvider());

@@ -95,7 +97,7 @@ public class SearchIndexableResourcesTest {

    @Test
    public void testAllClassNamesHaveProviders() {
        for (Class clazz : mProviderClassCopy) {
        for (Class clazz: sProviderClassCopy) {
            if(DatabaseIndexingUtils.getSearchIndexProvider(clazz) == null) {
                fail(clazz.getName() + "is not an index provider");
            }
+11 −9
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@ package com.android.settings.search;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.spy;

import android.Manifest;
import android.content.Context;
import android.content.pm.ProviderInfo;
@@ -25,21 +27,21 @@ import java.util.HashSet;
import java.util.Set;

@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SettingsSearchIndexablesProviderTest {

    private final String BASE_AUTHORITY = "com.android.settings";

    private SettingsSearchIndexablesProvider mProvider;

    private Set<Class> mProviderClasses;
    private Context mContext;
    Set<Class> sProviderClasses;
    Context mContext;

    @Before
    public void setUp() {
        mContext = RuntimeEnvironment.application;

        mProvider = new SettingsSearchIndexablesProvider();
        mProvider = spy(new SettingsSearchIndexablesProvider());
        ProviderInfo info = new ProviderInfo();
        info.exported = true;
        info.grantUriPermissions = true;
@@ -47,15 +49,15 @@ public class SettingsSearchIndexablesProviderTest {
        info.readPermission = Manifest.permission.READ_SEARCH_INDEXABLES;
        mProvider.attachInfo(mContext, info);

        mProviderClasses = new HashSet<>(SettingsSearchIndexablesProvider.INDEXABLES);
        SettingsSearchIndexablesProvider.INDEXABLES.clear();
        SettingsSearchIndexablesProvider.INDEXABLES.add(FakeSettingsFragment.class);
        sProviderClasses = new HashSet<>(SearchIndexableResources.sProviders);
        SearchIndexableResources.sProviders.clear();
        SearchIndexableResources.sProviders.add(FakeSettingsFragment.class);
    }

    @After
    public void cleanUp() {
        SettingsSearchIndexablesProvider.INDEXABLES.clear();
        SettingsSearchIndexablesProvider.INDEXABLES.addAll(mProviderClasses);
        SearchIndexableResources.sProviders.clear();
        SearchIndexableResources.sProviders.addAll(sProviderClasses);
    }

    @Test
Loading