summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DisplaySettings.java
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2015-02-25 18:47:37 -0800
committerAlan Viverette <alanv@google.com>2015-02-27 19:09:57 +0000
commit893b3006a49c92fe21a800479a0fe8389ebbe4b8 (patch)
tree46ab867be6de27f79eb2d47f423e53256ad73645 /src/com/android/settings/DisplaySettings.java
parent0702e87ed4d13eac053c31ea1f6504d7f176da6d (diff)
downloadpackages_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.java20
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;
}