From: jeffreyhuang Date: Tue, 19 Sep 2017 17:44:30 +0000 (-0700) Subject: Add isAvailable check to devOptionsController X-Git-Tag: android-x86-9.0-r1~194^2~11^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=f5539a196995bcee365b9b7786c98b3e4c9feaf6;p=android-x86%2Fpackages-apps-Settings.git Add isAvailable check to devOptionsController - This avoids the null check for PreferenceControllers where isAvailable() is not always true Bug: 34203528 Test: make RunSettingsRoboTests -j40 Change-Id: Ibed8bc6a2a812355c521620d77fb571c1fd8a649 --- diff --git a/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java b/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java index 7734e938b2..44a2ecd19e 100644 --- a/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java +++ b/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java @@ -69,12 +69,12 @@ public class BluetoothSnoopLogPreferenceController extends } @Override - public void onDeveloperOptionsEnabled() { + protected void onDeveloperOptionsSwitchEnabled() { mPreference.setEnabled(true); } @Override - public void onDeveloperOptionsDisabled() { + protected void onDeveloperOptionsSwitchDisabled() { SystemProperties.set(BLUETOOTH_BTSNOOP_ENABLE_PROPERTY, Boolean.toString(false)); mPreference.setChecked(false); mPreference.setEnabled(false); diff --git a/src/com/android/settings/development/DeveloperOptionsPreferenceController.java b/src/com/android/settings/development/DeveloperOptionsPreferenceController.java index 7715c254fc..2f1f2540ed 100644 --- a/src/com/android/settings/development/DeveloperOptionsPreferenceController.java +++ b/src/com/android/settings/development/DeveloperOptionsPreferenceController.java @@ -54,10 +54,29 @@ public abstract class DeveloperOptionsPreferenceController extends /** * Called when developer options is enabled */ - public abstract void onDeveloperOptionsEnabled(); + public void onDeveloperOptionsEnabled() { + if (isAvailable()) { + onDeveloperOptionsSwitchEnabled(); + } + } /** * Called when developer options is disabled */ - public abstract void onDeveloperOptionsDisabled(); + public void onDeveloperOptionsDisabled() { + if (isAvailable()) { + onDeveloperOptionsSwitchDisabled(); + } + } + + /** + * Called when developer options is enabled and the preference is available + */ + protected abstract void onDeveloperOptionsSwitchEnabled(); + + /** + * Called when developer options is disabled and the preference is available + */ + protected abstract void onDeveloperOptionsSwitchDisabled(); + } diff --git a/src/com/android/settings/development/OemUnlockPreferenceController.java b/src/com/android/settings/development/OemUnlockPreferenceController.java index 7d85d2e20f..cb391a8e89 100644 --- a/src/com/android/settings/development/OemUnlockPreferenceController.java +++ b/src/com/android/settings/development/OemUnlockPreferenceController.java @@ -122,12 +122,12 @@ public class OemUnlockPreferenceController extends DeveloperOptionsPreferenceCon } @Override - public void onDeveloperOptionsEnabled() { + protected void onDeveloperOptionsSwitchEnabled() { handleDeveloperOptionsToggled(); } @Override - public void onDeveloperOptionsDisabled() { + protected void onDeveloperOptionsSwitchDisabled() { handleDeveloperOptionsToggled(); } @@ -143,10 +143,6 @@ public class OemUnlockPreferenceController extends DeveloperOptionsPreferenceCon } private void handleDeveloperOptionsToggled() { - if (mPreference == null) { - return; - } - mPreference.setEnabled(enableOemUnlockPreference()); if (mPreference.isEnabled()) { // Check restriction, disable mEnableOemUnlock and apply policy transparency. diff --git a/src/com/android/settings/development/StayAwakePreferenceController.java b/src/com/android/settings/development/StayAwakePreferenceController.java index a590d7d66a..ecbb9d0b57 100644 --- a/src/com/android/settings/development/StayAwakePreferenceController.java +++ b/src/com/android/settings/development/StayAwakePreferenceController.java @@ -101,19 +101,6 @@ public class StayAwakePreferenceController extends DeveloperOptionsPreferenceCon } @Override - public void onDeveloperOptionsEnabled() { - mPreference.setEnabled(true); - } - - @Override - public void onDeveloperOptionsDisabled() { - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.STAY_ON_WHILE_PLUGGED_IN, SETTING_VALUE_OFF); - mPreference.setChecked(false); - mPreference.setEnabled(false); - } - - @Override public void onResume() { if (mPreference != null) { mSettingsObserver.register(true /* register */); @@ -127,6 +114,19 @@ public class StayAwakePreferenceController extends DeveloperOptionsPreferenceCon } } + @Override + protected void onDeveloperOptionsSwitchEnabled() { + mPreference.setEnabled(true); + } + + @Override + protected void onDeveloperOptionsSwitchDisabled() { + Settings.Global.putInt(mContext.getContentResolver(), + Settings.Global.STAY_ON_WHILE_PLUGGED_IN, SETTING_VALUE_OFF); + mPreference.setChecked(false); + mPreference.setEnabled(false); + } + @VisibleForTesting RestrictedLockUtils.EnforcedAdmin checkIfMaximumTimeToLockSetByAdmin() { // A DeviceAdmin has specified a maximum time until the device