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

Commit 27991718 authored by Fan Zhang's avatar Fan Zhang Committed by Android (Google) Code Review
Browse files

Merge "Add search provider for system dashboard fragment."

parents ac5b6b0f c6540cfb
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;
                }
            };
}