Migrate to DashboardFragment in ToggleFeaturePreferenceFragment
Root Cause: ToggleFeaturePrefreferenceFragment becomes heavy when more and more features come in. Solution: Mirgrate to DashboardFragment, a plugin-style preference controllers, can help us separate the preference and its logic into its own controller. * This is the first step for the whole migration. Change to extend DashboardFragment and fill up the missing override functions. * Reorder fields and functions to the recommended general approach. Bug: 171272809 Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accessibility Change-Id: I852091700a4b3b3c7bbdbc82f0b5dc47c087d61c
This commit is contained in:
@@ -51,6 +51,7 @@ import java.util.List;
|
||||
public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceFragment
|
||||
implements DaltonizerRadioButtonPreferenceController.OnChangeListener {
|
||||
|
||||
private static final String TAG = "ToggleDaltonizerPreferenceFragment";
|
||||
private static final String ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED;
|
||||
private static final String KEY_PREVIEW = "daltonizer_preview";
|
||||
@VisibleForTesting
|
||||
@@ -70,29 +71,24 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
|
||||
final String[] daltonizerKeys = resources.getStringArray(
|
||||
R.array.daltonizer_mode_keys);
|
||||
|
||||
for (int i = 0; i < daltonizerKeys.length; i++) {
|
||||
for (String daltonizerKey : daltonizerKeys) {
|
||||
sControllers.add(new DaltonizerRadioButtonPreferenceController(
|
||||
context, lifecycle, daltonizerKeys[i]));
|
||||
context, lifecycle, daltonizerKey));
|
||||
}
|
||||
}
|
||||
return sControllers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
final View rootView = getActivity().getWindow().peekDecorView();
|
||||
if (rootView != null) {
|
||||
rootView.setAccessibilityPaneTitle(getString(
|
||||
R.string.accessibility_display_daltonizer_preference_title));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCheckedChanged(Preference preference) {
|
||||
for (AbstractPreferenceController controller : sControllers) {
|
||||
controller.updateState(preference);
|
||||
}
|
||||
protected void registerKeysToObserverCallback(
|
||||
AccessibilitySettingsContentObserver contentObserver) {
|
||||
super.registerKeysToObserverCallback(contentObserver);
|
||||
|
||||
final List<String> enableServiceFeatureKeys = new ArrayList<>(/* initialCapacity= */ 1);
|
||||
enableServiceFeatureKeys.add(ENABLED);
|
||||
contentObserver.registerKeysToObserverCallback(enableServiceFeatureKeys,
|
||||
key -> updateSwitchBarToggleSwitch());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -108,14 +104,20 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerKeysToObserverCallback(
|
||||
AccessibilitySettingsContentObserver contentObserver) {
|
||||
super.registerKeysToObserverCallback(contentObserver);
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
final View rootView = getActivity().getWindow().peekDecorView();
|
||||
if (rootView != null) {
|
||||
rootView.setAccessibilityPaneTitle(getString(
|
||||
R.string.accessibility_display_daltonizer_preference_title));
|
||||
}
|
||||
}
|
||||
|
||||
final List<String> enableServiceFeatureKeys = new ArrayList<>(/* initialCapacity= */ 1);
|
||||
enableServiceFeatureKeys.add(ENABLED);
|
||||
contentObserver.registerKeysToObserverCallback(enableServiceFeatureKeys,
|
||||
key -> updateSwitchBarToggleSwitch());
|
||||
@Override
|
||||
public void onCheckedChanged(Preference preference) {
|
||||
for (AbstractPreferenceController controller : sControllers) {
|
||||
controller.updateState(preference);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateFooterPreference() {
|
||||
@@ -179,6 +181,11 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
|
||||
return R.xml.accessibility_daltonizer_settings;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getLogTag() {
|
||||
return TAG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
|
||||
final boolean isEnabled = Settings.Secure.getInt(getContentResolver(), ENABLED, OFF) == ON;
|
||||
|
Reference in New Issue
Block a user