Add storage dashborad page.
Refactor shared dashboard page display logic between storage and system page. Bug: 31800690 Test: RunSettingsRoboTests Change-Id: I7eb86f590b79ab871bdb383fb2f5326790beb193
This commit is contained in:
@@ -15,40 +15,30 @@
|
||||
*/
|
||||
package com.android.settings.system;
|
||||
|
||||
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;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.dashboard.DashboardFeatureProvider;
|
||||
import com.android.settings.dashboard.DashboardTilePreference;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
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
|
||||
|
||||
public class SystemDashboardFragment extends DashboardFragment
|
||||
implements SettingsDrawerActivity.CategoryListener, Indexable {
|
||||
|
||||
private static final String TAG = "SystemDashboardFrag";
|
||||
|
||||
private DashboardFeatureProvider mDashboardFeatureProvider;
|
||||
private SystemUpdatePreferenceController mSystemUpdatePreferenceController;
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
return SYSTEM_CATEGORY_FRAGMENT;
|
||||
@@ -57,19 +47,8 @@ public class SystemDashboardFragment extends SettingsPreferenceFragment
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
mDashboardFeatureProvider =
|
||||
FeatureFactory.getFactory(context).getDashboardFeatureProvider(context);
|
||||
mSystemUpdatePreferenceController =
|
||||
new SystemUpdatePreferenceController(context, UserManager.get(context));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
final Activity activity = getActivity();
|
||||
if (activity instanceof SettingsDrawerActivity) {
|
||||
((SettingsDrawerActivity) activity).addCategoryListener(this);
|
||||
}
|
||||
addPreferenceController(
|
||||
new SystemUpdatePreferenceController(context, UserManager.get(context)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -78,22 +57,6 @@ public class SystemDashboardFragment extends SettingsPreferenceFragment
|
||||
refreshAllPreferences();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(Preference preference) {
|
||||
final boolean handled =
|
||||
mSystemUpdatePreferenceController.handlePreferenceTreeClick(preference);
|
||||
return handled || super.onPreferenceTreeClick(preference);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
super.onStop();
|
||||
final Activity activity = getActivity();
|
||||
if (activity instanceof SettingsDrawerActivity) {
|
||||
((SettingsDrawerActivity) activity).remCategoryListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCategoriesChanged() {
|
||||
refreshAllPreferences();
|
||||
@@ -108,36 +71,13 @@ public class SystemDashboardFragment extends SettingsPreferenceFragment
|
||||
screen.removeAll();
|
||||
}
|
||||
|
||||
final Context context = getContext();
|
||||
final DashboardCategory category = mDashboardFeatureProvider.getTilesForSystemCategory();
|
||||
final List<Tile> tiles = category.tiles;
|
||||
|
||||
addPreferencesFromResource(R.xml.system_dashboard_fragment);
|
||||
screen = getPreferenceScreen();
|
||||
mSystemUpdatePreferenceController.displayPreference(getPreferenceScreen());
|
||||
|
||||
for (Tile tile : tiles) {
|
||||
final String key = mDashboardFeatureProvider.getDashboardKeyForTile(tile);
|
||||
if (TextUtils.isEmpty(key)) {
|
||||
Log.d(TAG, "tile does not contain a key, skipping " + tile);
|
||||
continue;
|
||||
}
|
||||
final Preference pref = new DashboardTilePreference(context);
|
||||
pref.setTitle(tile.title);
|
||||
pref.setKey(key);
|
||||
pref.setSummary(tile.summary);
|
||||
if (tile.icon != null) {
|
||||
pref.setIcon(tile.icon.loadDrawable(context));
|
||||
}
|
||||
if (tile.intent != null) {
|
||||
pref.setIntent(tile.intent);
|
||||
}
|
||||
// Use negated priority for order, because tile priority is based on intent-filter
|
||||
// (larger value has higher priority). However pref order defines smaller value has
|
||||
// higher priority.
|
||||
pref.setOrder(-tile.priority);
|
||||
screen.addPreference(pref);
|
||||
}
|
||||
getPreferenceController(SystemUpdatePreferenceController.class)
|
||||
.displayPreference(getPreferenceScreen());
|
||||
|
||||
displayTilesAsPreference(TAG, getPreferenceScreen(),
|
||||
mDashboardFeatureProvider.getTilesForSystemCategory());
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user