diff --git a/res/values/strings.xml b/res/values/strings.xml
index dc36fbfdc38..afe8777e80d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6591,4 +6591,7 @@
App notification preferences
+
+ Show SystemUI Tuner
+
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index ecab7009b0a..7ab44ca9b62 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -60,6 +60,11 @@
android:summary="@string/runningservices_settings_summary"
android:fragment="com.android.settings.applications.RunningServices" />
+
+
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 3c964c9da5d..4d89bf5536d 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -97,6 +97,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
*/
public static final String PREF_SHOW = "show";
+ private static final ComponentName SYSUI_TWEAK = new ComponentName("com.android.systemui",
+ "com.android.systemui.tuner.TunerActivity");
+
private static final String ENABLE_ADB = "enable_adb";
private static final String CLEAR_ADB_KEYS = "clear_adb_keys";
private static final String ENABLE_TERMINAL = "enable_terminal";
@@ -112,6 +115,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
private static final String BUGREPORT = "bugreport";
private static final String BUGREPORT_IN_POWER_KEY = "bugreport_in_power";
private static final String OPENGL_TRACES_PROPERTY = "debug.egl.trace";
+ private static final String TWEAK_UI_KEY = "tweak_ui";
private static final String DEBUG_APP_KEY = "debug_app";
private static final String WAIT_FOR_DEBUGGER_KEY = "wait_for_debugger";
@@ -260,6 +264,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
private Dialog mAdbKeysDialog;
private boolean mUnavailable;
+ private SwitchPreference mTweakUiPref;
+
@Override
protected int getMetricsCategory() {
return MetricsLogger.DEVELOPMENT;
@@ -392,6 +398,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
mAllPrefs.add(mShowAllANRs);
mResetSwitchPrefs.add(mShowAllANRs);
+ mTweakUiPref = findAndInitSwitchPref(TWEAK_UI_KEY);
+
Preference hdcpChecking = findPreference(HDCP_CHECKING_KEY);
if (hdcpChecking != null) {
mAllPrefs.add(hdcpChecking);
@@ -593,6 +601,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
updateSimulateColorSpace();
updateUseNuplayerOptions();
updateUSBAudioOptions();
+ updateTweakUi();
}
private void resetDangerousOptions() {
@@ -1069,6 +1078,21 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
}
}
+ private void updateTweakUi() {
+ updateSwitchPreference(mTweakUiPref, getActivity().getPackageManager()
+ .getComponentEnabledSetting(SYSUI_TWEAK)
+ == PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+ mTweakUiPref.setOnPreferenceChangeListener(this);
+ }
+
+ private void writeTweakUi(Object newValue) {
+ Boolean enabled = (Boolean) newValue;
+ getActivity().getPackageManager().setComponentEnabledSetting(SYSUI_TWEAK,
+ enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+ : PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
+ PackageManager.DONT_KILL_APP);
+ }
+
private void updateUseNuplayerOptions() {
updateSwitchPreference(
mUseAwesomePlayer, SystemProperties.getBoolean(USE_AWESOMEPLAYER_PROPERTY, false));
@@ -1669,6 +1693,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
} else if (preference == mSimulateColorSpace) {
writeSimulateColorSpace(newValue);
return true;
+ } else if (preference == mTweakUiPref) {
+ writeTweakUi(newValue);
+ return true;
}
return false;
}