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

Commit c6540cfb authored by Fan Zhang's avatar Fan Zhang
Browse files

Add search provider for system dashboard fragment.

Bug: 31801428
Test: manual
Test:make RunSettingsRoboTests
Change-Id: I6a80d64ed9755f4ddcfde33a82be04cfcbf0495b
parent 9574fb80
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -14,7 +14,9 @@
     limitations under the License.
-->

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:title="@string/header_category_system">

    <!-- System updates -->
    <com.android.settings.dashboard.DashboardTilePreference
+2 −1
Original line number Diff line number Diff line
@@ -176,7 +176,8 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
        resetCount();
        for (int i = 0; mCategories != null && i < mCategories.size(); i++) {
            DashboardCategory category = mCategories.get(i);
            countItem(category, R.layout.dashboard_category, mIsShowingAll, NS_ITEMS);
            countItem(category, R.layout.dashboard_category, mIsShowingAll
                    && !TextUtils.isEmpty(category.title), NS_ITEMS);
            for (int j = 0; j < category.tiles.size(); j++) {
                Tile tile = category.tiles.get(j);
                countItem(tile, R.layout.dashboard_tile, mIsShowingAll
+3 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import com.android.settings.notification.ZenModeSettings;
import com.android.settings.notification.ZenModeVisualInterruptionSettings;
import com.android.settings.print.PrintSettingsFragment;
import com.android.settings.sim.SimSettings;
import com.android.settings.system.SystemDashboardFragment;
import com.android.settings.users.UserSettings;
import com.android.settings.wifi.AdvancedWifiSettings;
import com.android.settings.wifi.SavedAccessPointsWifiSettings;
@@ -185,6 +186,8 @@ public final class Ranking {
        sRankMap.put(DeviceInfoSettings.class.getName(), RANK_DEVICE_INFO);
        sRankMap.put(LegalSettings.class.getName(), RANK_DEVICE_INFO);

        sRankMap.put(SystemDashboardFragment.class.getName(), RANK_DEVICE_INFO);

        sBaseRankMap.put("com.android.settings", 0);
    }

+8 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import com.android.settings.notification.ZenModeSettings;
import com.android.settings.notification.ZenModeVisualInterruptionSettings;
import com.android.settings.print.PrintSettingsFragment;
import com.android.settings.sim.SimSettings;
import com.android.settings.system.SystemDashboardFragment;
import com.android.settings.users.UserSettings;
import com.android.settings.wifi.AdvancedWifiSettings;
import com.android.settings.wifi.SavedAccessPointsWifiSettings;
@@ -326,6 +327,13 @@ public final class SearchIndexableResources {
                        R.xml.zen_mode_visual_interruptions_settings,
                        ZenModeVisualInterruptionSettings.class.getName(),
                        R.drawable.ic_settings_notifications));

        sResMap.put(SystemDashboardFragment.class.getName(),
                new SearchIndexableResource(
                        Ranking.getRankForClassName(SystemDashboardFragment.class.getName()),
                        NO_DATA_RES_ID,
                        SystemDashboardFragment.class.getName(),
                        R.drawable.ic_settings_about));
    }

    private SearchIndexableResources() {
+35 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.UserManager;
import android.provider.SearchIndexableResource;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
@@ -30,11 +31,14 @@ import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.dashboard.DashboardTilePreference;
import com.android.settings.deviceinfo.SystemUpdatePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.SettingsDrawerActivity;
import com.android.settingslib.drawer.Tile;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class SystemDashboardFragment extends SettingsPreferenceFragment
@@ -135,4 +139,35 @@ public class SystemDashboardFragment extends SettingsPreferenceFragment
            screen.addPreference(pref);
        }
    }

    /**
     * For Search.
     */
    public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {
                @Override
                public List<SearchIndexableResource> getXmlResourcesToIndex(
                        Context context, boolean enabled) {
                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
                            .isEnabled()) {
                        return null;
                    }
                    final SearchIndexableResource sir = new SearchIndexableResource(context);
                    sir.xmlResId = R.xml.system_dashboard_fragment;
                    return Arrays.asList(sir);
                }

                @Override
                public List<String> getNonIndexableKeys(Context context) {
                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
                            .isEnabled()) {
                        return null;
                    }
                    final SystemUpdatePreferenceController systemUpdatePreferenceController =
                            new SystemUpdatePreferenceController(context, UserManager.get(context));
                    final List<String> keys = new ArrayList<>();
                    systemUpdatePreferenceController.updateNonIndexableKeys(keys);
                    return keys;
                }
            };
}