From ab5da2d2fe0b02a7cdf5f4d78d24583b2542d213 Mon Sep 17 00:00:00 2001 From: Steve Pfetsch Date: Wed, 13 Jan 2016 17:07:35 -0800 Subject: [PATCH] Enable color temperature developer setting Add a switch in Developer Settings to enable "cool" color temperature mode. Bug: 26110238 Change-Id: Id0ab3283c1ee3208287c8dca11298a4bc367b314 --- res/values/config.xml | 3 ++ res/xml/development_prefs.xml | 6 ++++ .../android/settings/DevelopmentSettings.java | 29 +++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/res/values/config.xml b/res/values/config.xml index 295d5d1a425..89911d8e960 100755 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -38,4 +38,7 @@ 300 + + false + diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml index c74d3350c27..5621c4948de 100644 --- a/res/xml/development_prefs.xml +++ b/res/xml/development_prefs.xml @@ -66,6 +66,12 @@ android:summary="@string/picture_color_mode_desc" android:persistent="false" /> + + diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index 8bb99c53818..4b86f986589 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -116,6 +116,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment 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 TUNER_UI_KEY = "tuner_ui"; + private static final String COLOR_TEMPERATURE_PROPERTY = "persist.sys.debug.color_temp"; private static final String DEBUG_APP_KEY = "debug_app"; private static final String WAIT_FOR_DEBUGGER_KEY = "wait_for_debugger"; @@ -157,6 +158,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment private static final String WIFI_LEGACY_DHCP_CLIENT_KEY = "legacy_dhcp_client"; private static final String MOBILE_DATA_ALWAYS_ON = "mobile_data_always_on"; private static final String KEY_COLOR_MODE = "color_mode"; + private static final String COLOR_TEMPERATURE_KEY = "color_temperature"; private static final String INACTIVE_APPS_KEY = "inactive_apps"; @@ -256,6 +258,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment private ColorModePreference mColorModePreference; + private SwitchPreference mColorTemperaturePreference; + private final ArrayList mAllPrefs = new ArrayList(); private final ArrayList mResetSwitchPrefs @@ -421,6 +425,15 @@ public class DevelopmentSettings extends SettingsPreferenceFragment removePreference(KEY_COLOR_MODE); mColorModePreference = null; } + + mColorTemperaturePreference = (SwitchPreference) findPreference(COLOR_TEMPERATURE_KEY); + if (getResources().getBoolean(R.bool.config_enableColorTemperature)) { + mAllPrefs.add(mColorTemperaturePreference); + mResetSwitchPrefs.add(mColorTemperaturePreference); + } else { + removePreference(COLOR_TEMPERATURE_KEY); + mColorTemperaturePreference = null; + } } private ListPreference addListPreference(String prefKey) { @@ -628,6 +641,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment updateMobileDataAlwaysOnOptions(); updateSimulateColorSpace(); updateUSBAudioOptions(); + if (mColorTemperaturePreference != null) { + updateColorTemperature(); + } } private void resetDangerousOptions() { @@ -1172,6 +1188,17 @@ public class DevelopmentSettings extends SettingsPreferenceFragment } } + private void updateColorTemperature() { + updateSwitchPreference(mColorTemperaturePreference, + SystemProperties.getBoolean(COLOR_TEMPERATURE_PROPERTY, false)); + } + + private void writeColorTemperature() { + SystemProperties.set(COLOR_TEMPERATURE_PROPERTY, + mColorTemperaturePreference.isChecked() ? "1" : "0"); + pokeSystemProperties(); + } + private void updateUSBAudioOptions() { updateSwitchPreference(mUSBAudio, Settings.Secure.getInt(getContentResolver(), Settings.Secure.USB_AUDIO_AUTOMATIC_ROUTING_DISABLED, 0) != 0); @@ -1705,6 +1732,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment writeLegacyDhcpClientOptions(); } else if (preference == mMobileDataAlwaysOn) { writeMobileDataAlwaysOnOptions(); + } else if (preference == mColorTemperaturePreference) { + writeColorTemperature(); } else if (preference == mUSBAudio) { writeUSBAudioOptions(); } else if (INACTIVE_APPS_KEY.equals(preference.getKey())) {