Make PreferenceController a mixin
Bug: 62912136 Test: Existing tests in BaseSearchIndexProviderTest Change-Id: Ieda359806c09a019840b2005446c7ec8b61fdb00
This commit is contained in:
@@ -32,9 +32,9 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.core.PreferenceController;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.Indexable;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.drawer.DashboardCategory;
|
||||
import com.android.settingslib.drawer.SettingsDrawerActivity;
|
||||
import com.android.settingslib.drawer.Tile;
|
||||
@@ -53,7 +53,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
||||
SummaryLoader.SummaryConsumer {
|
||||
private static final String TAG = "DashboardFragment";
|
||||
|
||||
private final Map<Class, PreferenceController> mPreferenceControllers =
|
||||
private final Map<Class, AbstractPreferenceController> mPreferenceControllers =
|
||||
new ArrayMap<>();
|
||||
private final Set<String> mDashboardTilePrefKeys = new ArraySet<>();
|
||||
|
||||
@@ -72,14 +72,14 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
||||
.getProgressiveDisclosureMixin(context, this, getArguments());
|
||||
getLifecycle().addObserver(mProgressiveDisclosureMixin);
|
||||
|
||||
List<PreferenceController> controllers = getPreferenceControllers(context);
|
||||
List<AbstractPreferenceController> controllers = getPreferenceControllers(context);
|
||||
if (controllers == null) {
|
||||
controllers = new ArrayList<>();
|
||||
}
|
||||
mPlaceholderPreferenceController =
|
||||
new DashboardTilePlaceholderPreferenceController(context);
|
||||
controllers.add(mPlaceholderPreferenceController);
|
||||
for (PreferenceController controller : controllers) {
|
||||
for (AbstractPreferenceController controller : controllers) {
|
||||
addPreferenceController(controller);
|
||||
}
|
||||
}
|
||||
@@ -159,12 +159,12 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(Preference preference) {
|
||||
Collection<PreferenceController> controllers = mPreferenceControllers.values();
|
||||
Collection<AbstractPreferenceController> controllers = mPreferenceControllers.values();
|
||||
// If preference contains intent, log it before handling.
|
||||
mMetricsFeatureProvider.logDashboardStartIntent(
|
||||
getContext(), preference.getIntent(), getMetricsCategory());
|
||||
// Give all controllers a chance to handle click.
|
||||
for (PreferenceController controller : controllers) {
|
||||
for (AbstractPreferenceController controller : controllers) {
|
||||
if (controller.handlePreferenceTreeClick(preference)) {
|
||||
return true;
|
||||
}
|
||||
@@ -188,12 +188,12 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
||||
}
|
||||
}
|
||||
|
||||
protected <T extends PreferenceController> T getPreferenceController(Class<T> clazz) {
|
||||
PreferenceController controller = mPreferenceControllers.get(clazz);
|
||||
protected <T extends AbstractPreferenceController> T getPreferenceController(Class<T> clazz) {
|
||||
AbstractPreferenceController controller = mPreferenceControllers.get(clazz);
|
||||
return (T) controller;
|
||||
}
|
||||
|
||||
protected void addPreferenceController(PreferenceController controller) {
|
||||
protected void addPreferenceController(AbstractPreferenceController controller) {
|
||||
mPreferenceControllers.put(controller.getClass(), controller);
|
||||
}
|
||||
|
||||
@@ -216,9 +216,9 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
||||
protected abstract int getPreferenceScreenResId();
|
||||
|
||||
/**
|
||||
* Get a list of {@link PreferenceController} for this fragment.
|
||||
* Get a list of {@link AbstractPreferenceController} for this fragment.
|
||||
*/
|
||||
protected abstract List<PreferenceController> getPreferenceControllers(Context context);
|
||||
protected abstract List<AbstractPreferenceController> getPreferenceControllers(Context context);
|
||||
|
||||
/**
|
||||
* Returns true if this tile should be displayed
|
||||
@@ -237,8 +237,8 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
||||
}
|
||||
addPreferencesFromResource(resId);
|
||||
final PreferenceScreen screen = getPreferenceScreen();
|
||||
Collection<PreferenceController> controllers = mPreferenceControllers.values();
|
||||
for (PreferenceController controller : controllers) {
|
||||
Collection<AbstractPreferenceController> controllers = mPreferenceControllers.values();
|
||||
for (AbstractPreferenceController controller : controllers) {
|
||||
controller.displayPreference(screen);
|
||||
}
|
||||
}
|
||||
@@ -247,9 +247,9 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
||||
* Update state of each preference managed by PreferenceController.
|
||||
*/
|
||||
protected void updatePreferenceStates() {
|
||||
Collection<PreferenceController> controllers = mPreferenceControllers.values();
|
||||
Collection<AbstractPreferenceController> controllers = mPreferenceControllers.values();
|
||||
final PreferenceScreen screen = getPreferenceScreen();
|
||||
for (PreferenceController controller : controllers) {
|
||||
for (AbstractPreferenceController controller : controllers) {
|
||||
if (!controller.isAvailable()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -20,7 +20,8 @@ import android.content.Context;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.core.PreferenceController;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
|
||||
/**
|
||||
* PreferenceController for a dashboard_tile_placeholder, a special preference marking where
|
||||
@@ -28,7 +29,8 @@ import com.android.settings.core.PreferenceController;
|
||||
* preference screen in xml. If not present, all dynamic dashboard tiles will be added to the
|
||||
* bottom of page.
|
||||
*/
|
||||
class DashboardTilePlaceholderPreferenceController extends PreferenceController {
|
||||
class DashboardTilePlaceholderPreferenceController extends AbstractPreferenceController
|
||||
implements PreferenceControllerMixin {
|
||||
|
||||
private static final String KEY_PLACEHOLDER = "dashboard_tile_placeholder";
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ import com.android.settingslib.RestrictedLockUtils;
|
||||
*
|
||||
* This fragment is a replacement of {@link RestrictedSettingsFragment} but extends
|
||||
* from {@link DashboardFragment}, so we could also use
|
||||
* {@link com.android.settings.core.PreferenceController} in this fragment.
|
||||
* {@link com.android.settingslib.core.AbstractPreferenceController} in this fragment.
|
||||
*/
|
||||
public abstract class RestrictedDashboardFragment extends DashboardFragment {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user