diff options
author | Alan Viverette <alanv@google.com> | 2015-02-25 18:47:37 -0800 |
---|---|---|
committer | Alan Viverette <alanv@google.com> | 2015-02-27 19:09:57 +0000 |
commit | 893b3006a49c92fe21a800479a0fe8389ebbe4b8 (patch) | |
tree | 46ab867be6de27f79eb2d47f423e53256ad73645 /src/com/android/settings/DisplaySettings.java | |
parent | 0702e87ed4d13eac053c31ea1f6504d7f176da6d (diff) | |
download | packages_apps_Settings-893b3006a49c92fe21a800479a0fe8389ebbe4b8.zip packages_apps_Settings-893b3006a49c92fe21a800479a0fe8389ebbe4b8.tar.gz packages_apps_Settings-893b3006a49c92fe21a800479a0fe8389ebbe4b8.tar.bz2 |
Add support for user-selectable dark/light theme
Updates Settings to use the DayNight theme (real name TBD) and fixes
several colors that were pinned to non-theme values. Adds a setting for
switching theme between light/dark/auto.
Bug: 19368658
Bug: 19369392
Change-Id: I7cd23b7ad38bdb25a01b92e67ff1ee1cdd8a3958
Diffstat (limited to 'src/com/android/settings/DisplaySettings.java')
-rw-r--r-- | src/com/android/settings/DisplaySettings.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java index ddd6728..337ec23 100644 --- a/src/com/android/settings/DisplaySettings.java +++ b/src/com/android/settings/DisplaySettings.java @@ -32,6 +32,7 @@ import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; import android.app.Activity; import android.app.ActivityManagerNative; import android.app.Dialog; +import android.app.UiModeManager; import android.app.admin.DevicePolicyManager; import android.content.ContentResolver; import android.content.Context; @@ -70,6 +71,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements private static final String KEY_DOZE = "doze"; private static final String KEY_AUTO_BRIGHTNESS = "auto_brightness"; private static final String KEY_AUTO_ROTATE = "auto_rotate"; + private static final String KEY_NIGHT_MODE = "night_mode"; private static final int DLG_GLOBAL_CHANGE_WARNING = 1; @@ -78,6 +80,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements private final Configuration mCurConfig = new Configuration(); private ListPreference mScreenTimeoutPreference; + private ListPreference mNightModePreference; private Preference mScreenSaverPreference; private SwitchPreference mLiftToWakePreference; private SwitchPreference mDozePreference; @@ -165,6 +168,13 @@ public class DisplaySettings extends SettingsPreferenceFragment implements } else { removePreference(KEY_AUTO_ROTATE); } + + mNightModePreference = (ListPreference) findPreference(KEY_NIGHT_MODE); + final UiModeManager uiManager = (UiModeManager) getSystemService( + Context.UI_MODE_SERVICE); + final int currentNightMode = uiManager.getNightMode(); + mNightModePreference.setValue(String.valueOf(currentNightMode)); + mNightModePreference.setOnPreferenceChangeListener(this); } private static boolean allowAllRotations(Context context) { @@ -381,6 +391,16 @@ public class DisplaySettings extends SettingsPreferenceFragment implements boolean value = (Boolean) objValue; Settings.Secure.putInt(getContentResolver(), DOZE_ENABLED, value ? 1 : 0); } + if (preference == mNightModePreference) { + try { + final int value = Integer.parseInt((String) objValue); + final UiModeManager uiManager = (UiModeManager) getSystemService( + Context.UI_MODE_SERVICE); + uiManager.setNightMode(value); + } catch (NumberFormatException e) { + Log.e(TAG, "could not persist night mode setting", e); + } + } return true; } |