Move ad-hoc dynamic tile injection into FeatureProvider.
Ideally a page should use DashboardFragment and it doesn't need to handle adding dynamic tiles manually. This method is only designed for page that are not fully migrated to DashboardFragment yet. Bug: 32623105 Test: RunSettingsRoboTests Change-Id: I0cafcddf9a43b164daea500bade869fada5b3f4e
This commit is contained in:
@@ -66,8 +66,6 @@ import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.RestrictedPreference;
|
||||
import com.android.settingslib.RestrictedSwitchPreference;
|
||||
import com.android.settingslib.drawer.CategoryKey;
|
||||
import com.android.settingslib.drawer.DashboardCategory;
|
||||
import com.android.settingslib.drawer.Tile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -410,7 +408,8 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
||||
Index.getInstance(getActivity())
|
||||
.updateFromClassNameResource(SecuritySettings.class.getName(), true, true);
|
||||
|
||||
final List<Preference> tilePrefs = getDynamicTilesForSecurity();
|
||||
final List<Preference> tilePrefs = mDashboardFeatureProvider.getPreferencesForCategory(
|
||||
getActivity(), getPrefContext(), CategoryKey.CATEGORY_SECURITY);
|
||||
if (tilePrefs != null && !tilePrefs.isEmpty()) {
|
||||
for (Preference preference : tilePrefs) {
|
||||
root.addPreference(preference);
|
||||
@@ -763,31 +762,6 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
||||
SET_OR_CHANGE_LOCK_METHOD_REQUEST_PROFILE, extras);
|
||||
}
|
||||
|
||||
private List<Preference> getDynamicTilesForSecurity() {
|
||||
if (!mDashboardFeatureProvider.isEnabled()) {
|
||||
return null;
|
||||
}
|
||||
final DashboardCategory category =
|
||||
mDashboardFeatureProvider.getTilesForCategory(CategoryKey.CATEGORY_SECURITY);
|
||||
if (category == null) {
|
||||
Log.d(TAG, "NO dashboard tiles for " + TAG);
|
||||
return null;
|
||||
}
|
||||
final List<Tile> tiles = category.tiles;
|
||||
if (tiles == null) {
|
||||
Log.d(TAG, "tile list is empty, skipping category " + category.title);
|
||||
return null;
|
||||
}
|
||||
final List<Preference> preferences = new ArrayList<>();
|
||||
for (Tile tile : tiles) {
|
||||
final Preference pref = new Preference(getPrefContext());
|
||||
mDashboardFeatureProvider.bindPreferenceToTile(getActivity(), pref, tile,
|
||||
null /* key */, Preference.DEFAULT_ORDER/* baseOrder */);
|
||||
preferences.add(pref);
|
||||
}
|
||||
return preferences;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object value) {
|
||||
boolean result = true;
|
||||
|
Reference in New Issue
Block a user