OSDN Git Service

Add isAvailable check to devOptionsController
authorjeffreyhuang <jeffreyhuang@google.com>
Tue, 19 Sep 2017 17:44:30 +0000 (10:44 -0700)
committerjeffreyhuang <jeffreyhuang@google.com>
Wed, 20 Sep 2017 20:44:16 +0000 (13:44 -0700)
 - This avoids the null check for PreferenceControllers where isAvailable()
 is not always true

Bug: 34203528
Test: make RunSettingsRoboTests -j40
Change-Id: Ibed8bc6a2a812355c521620d77fb571c1fd8a649

src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java
src/com/android/settings/development/DeveloperOptionsPreferenceController.java
src/com/android/settings/development/OemUnlockPreferenceController.java
src/com/android/settings/development/StayAwakePreferenceController.java

index 7734e93..44a2ecd 100644 (file)
@@ -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);
index 7715c25..2f1f254 100644 (file)
@@ -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();
+
 }
index 7d85d2e..cb391a8 100644 (file)
@@ -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.
index a590d7d..ecbb9d0 100644 (file)
@@ -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