For vibration settings page, create controllers from xml

This change leverages a new support in settings framework to
automatically share preference controllers between full setting page,
search, and slice provider.

Bug: 73668763
Test: existing robotest and atest
Change-Id: Ie96a28f1b503377b3fdf86e28d297c8560d8bf71
This commit is contained in:
Fan Zhang
2018-03-07 14:15:28 -08:00
parent 9c18ac0554
commit 36680b0934
3 changed files with 30 additions and 71 deletions

View File

@@ -23,8 +23,6 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.ArrayList;
import java.util.List;
@@ -51,28 +49,6 @@ public class VibrationSettings extends DashboardFragment {
return TAG;
}
@Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
return buildControllers(context, getLifecycle());
}
public static List<AbstractPreferenceController> buildControllers(Context context,
Lifecycle lifecycle) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
final NotificationVibrationIntensityPreferenceController notifVibPrefController =
new NotificationVibrationIntensityPreferenceController(context);
final HapticFeedbackIntensityPreferenceController hapticPreferenceController =
new HapticFeedbackIntensityPreferenceController(context);
controllers.add(hapticPreferenceController);
controllers.add(notifVibPrefController);
if (lifecycle != null) {
lifecycle.addObserver(hapticPreferenceController);
lifecycle.addObserver(notifVibPrefController);
}
return controllers;
}
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
@@ -84,11 +60,5 @@ public class VibrationSettings extends DashboardFragment {
indexables.add(indexable);
return indexables;
}
@Override
public List<AbstractPreferenceController> createPreferenceControllers(
Context context) {
return buildControllers(context, null /* lifecycle */);
}
};
}