OSDN Git Service

Add a default preference controller for developer options.
authorDoris Ling <dling@google.com>
Thu, 1 Mar 2018 23:33:05 +0000 (15:33 -0800)
committerDoris Ling <dling@google.com>
Fri, 2 Mar 2018 01:41:04 +0000 (17:41 -0800)
- some of the preferences in the developer options page do not have a
preference controller associated with them, because they are simple
preference that do not require any update on the preference state at
all. However, they still need to be enabled/disabled when the master
developer options switch is turned on/off. Adding a default controller
to be used for these preferences.

Bug: 73955632
Test: manual
Change-Id: Ifb757dee2e5957d266ebb6ad5421d8ff9adbb142

src/com/android/settings/development/DefaultLaunchPreferenceController.java [new file with mode: 0644]
src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java

diff --git a/src/com/android/settings/development/DefaultLaunchPreferenceController.java b/src/com/android/settings/development/DefaultLaunchPreferenceController.java
new file mode 100644 (file)
index 0000000..e76dbeb
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+/**
+ * This controller is used for preference that has fragment or launch intent defined in the
+ * preference xml, and do not need any handling to update the preference state, except when the
+ * master developer options switch is turned on/off, the preference needs to be enabled/disabled.
+ *
+ */
+public class DefaultLaunchPreferenceController extends DeveloperOptionsPreferenceController
+        implements PreferenceControllerMixin {
+
+    private final String mPreferenceKey;
+
+    public DefaultLaunchPreferenceController(Context context, String preferenceKey) {
+        super(context);
+
+        mPreferenceKey = preferenceKey;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return mPreferenceKey;
+    }
+}
index e2495f0..9666a6c 100644 (file)
@@ -449,6 +449,17 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
         controllers.add(new FreeformWindowsPreferenceController(context));
         controllers.add(new ShortcutManagerThrottlingPreferenceController(context));
         controllers.add(new EnableGnssRawMeasFullTrackingPreferenceController(context));
+        controllers.add(new DefaultLaunchPreferenceController(context, "running_apps"));
+        controllers.add(
+            new DefaultLaunchPreferenceController(context, "android_o_battery_settings"));
+        controllers.add(new DefaultLaunchPreferenceController(context, "demo_mode"));
+        controllers.add(new DefaultLaunchPreferenceController(context, "quick_settings_tiles"));
+        controllers.add(new DefaultLaunchPreferenceController(context, "feature_flags_dashboard"));
+        controllers.add(
+            new DefaultLaunchPreferenceController(context, "default_usb_configuration"));
+        controllers.add(new DefaultLaunchPreferenceController(context, "density"));
+        controllers.add(new DefaultLaunchPreferenceController(context, "background_check"));
+        controllers.add(new DefaultLaunchPreferenceController(context, "inactive_apps"));
         return controllers;
     }