Introduce DeveloperOptionsPreferenceController

- New abstract class for all preference controllers in developer
 options
 - Used to handle changes in the master switch
 - DeveloperSettingsDashboardFragment has a reference to all preference
 controllers to call "handleMasterSwitchToggled()"

Bug: 34203528
Test: make RunSettingsRoboTests -j40
Change-Id: I64c18f54e22551f025029336880e92ac3a0d4a8c
This commit is contained in:
jeffreyhuang
2017-09-13 17:09:13 -07:00
parent 4169ac2fed
commit 4bfa56a7fd
4 changed files with 129 additions and 10 deletions

View File

@@ -47,6 +47,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
private boolean mIsAvailable = true;
private SwitchBar mSwitchBar;
private DevelopmentSwitchBarController mSwitchBarController;
private List<AbstractPreferenceController> mPreferenceControllers = new ArrayList<>();
public DevelopmentSettingsDashboardFragment() {
super(UserManager.DISALLOW_DEBUGGING_FEATURES);
@@ -91,11 +92,13 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
if (isChecked) {
EnableDevelopmentSettingWarningDialog.show(this /* host */);
} else {
// TODO: Reset dangerous options (move logic from DevelopmentSettings).
// resetDangerousOptions();
DevelopmentSettingsEnabler.setDevelopmentSettingsEnabled(getContext(), false);
// TODO: Refresh all prefs' enabled state (move logic from DevelopmentSettings).
// setPrefsEnabledState(false);
for (AbstractPreferenceController controller : mPreferenceControllers) {
if (controller instanceof DeveloperOptionsPreferenceController) {
((DeveloperOptionsPreferenceController) controller)
.onDeveloperOptionsDisabled();
}
}
}
}
}
@@ -118,12 +121,17 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
@Override
protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context, getLifecycle());
mPreferenceControllers = buildPreferenceControllers(context, getLifecycle());
return mPreferenceControllers;
}
void onEnableDevelopmentOptionsConfirmed() {
DevelopmentSettingsEnabler.setDevelopmentSettingsEnabled(getContext(), true);
// TODO: Refresh all prefs' enabled state (move logic from DevelopmentSettings).
for (AbstractPreferenceController controller : mPreferenceControllers) {
if (controller instanceof DeveloperOptionsPreferenceController) {
((DeveloperOptionsPreferenceController) controller).onDeveloperOptionsEnabled();
}
}
}
void onEnableDevelopmentOptionsRejected() {