summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoey <joey@lineageos.org>2017-12-28 20:28:01 +0100
committerJoey <joey@lineageos.org>2018-02-11 20:21:15 +0100
commitdb36b4284a36032c98ece6741e576ebf5e6d6455 (patch)
tree4298aa780be17deefbe80b277410905731db7ce9
parentc88c0180f0ec60a213509bd491e8fbc5ce4d5930 (diff)
downloadandroid_frameworks_base-staging/lineage-15.1.tar.gz
android_frameworks_base-staging/lineage-15.1.tar.bz2
android_frameworks_base-staging/lineage-15.1.zip
systemui: introduce berry stylesstaging/lineage-15.1
Change-Id: I61d0861112ae9b25db20b8d5e57d2a5f8a26b833 Signed-off-by: Harry Youd <harry@harryyoud.co.uk> Signed-off-by: Joey <joey@lineageos.org>
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java58
1 files changed, 51 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 38838b1dc53..642f5f5bbaa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -271,6 +271,7 @@ import java.util.Map;
import java.util.Set;
import java.util.Stack;
+import lineageos.hardware.LiveDisplayManager;
import lineageos.providers.LineageSettings;
public class StatusBar extends SystemUI implements DemoMode,
@@ -943,6 +944,12 @@ public class StatusBar extends SystemUI implements DemoMode,
mLockscreenSettingsObserver,
UserHandle.USER_ALL);
+ mContext.getContentResolver().registerContentObserver(
+ LineageSettings.System.getUriFor(LineageSettings.System.BERRY_GLOBAL_STYLE),
+ true,
+ mThemeSettingsObserver,
+ UserHandle.USER_ALL);
+
mBarService = IStatusBarService.Stub.asInterface(
ServiceManager.getService(Context.STATUS_BAR_SERVICE));
@@ -3008,14 +3015,26 @@ public class StatusBar extends SystemUI implements DemoMode,
}
public boolean isUsingDarkTheme() {
- OverlayInfo themeInfo = null;
+ OverlayInfo systemuiThemeInfo = null;
try {
- themeInfo = mOverlayManager.getOverlayInfo("com.android.systemui.theme.dark",
+ systemuiThemeInfo = mOverlayManager.getOverlayInfo("org.lineageos.overlay.dark",
mCurrentUserId);
} catch (RemoteException e) {
e.printStackTrace();
}
- return themeInfo != null && themeInfo.isEnabled();
+ return systemuiThemeInfo != null && systemuiThemeInfo.isEnabled();
+ }
+
+ private boolean isLiveDisplayNightModeOn() {
+ // SystemUI is initialized before LiveDisplay, so the service may not
+ // be ready when this is called the first time
+ LiveDisplayManager manager = LiveDisplayManager.getInstance(mContext);
+ try {
+ return manager.isNightModeEnabled();
+ } catch (NullPointerException e) {
+ Log.w(TAG, e.getMessage());
+ }
+ return false;
}
@Nullable
@@ -4919,14 +4938,32 @@ public class StatusBar extends SystemUI implements DemoMode,
protected void updateTheme() {
final boolean inflated = mStackScroller != null;
- // The system wallpaper defines if QS should be light or dark.
+ // 0 = auto, 1 = time-based, 2 = light, 3 = dark
+ final int globalStyleSetting = LineageSettings.System.getInt(mContext.getContentResolver(),
+ LineageSettings.System.BERRY_GLOBAL_STYLE, 0);
WallpaperColors systemColors = mColorExtractor
.getWallpaperColors(WallpaperManager.FLAG_SYSTEM);
- final boolean useDarkTheme = systemColors != null
- && (systemColors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_THEME) != 0;
+ final boolean useDarkTheme;
+
+ switch (globalStyleSetting) {
+ case 1:
+ useDarkTheme = isLiveDisplayNightModeOn();
+ break;
+ case 2:
+ useDarkTheme = false;
+ break;
+ case 3:
+ useDarkTheme = true;
+ break;
+ default:
+ useDarkTheme = systemColors != null && (systemColors.getColorHints() &
+ WallpaperColors.HINT_SUPPORTS_DARK_THEME) != 0;
+ break;
+ }
+
if (isUsingDarkTheme() != useDarkTheme) {
try {
- mOverlayManager.setEnabled("com.android.systemui.theme.dark",
+ mOverlayManager.setEnabled("org.lineageos.overlay.dark",
useDarkTheme, mCurrentUserId);
} catch (RemoteException e) {
Log.w(TAG, "Can't change theme", e);
@@ -6083,6 +6120,13 @@ public class StatusBar extends SystemUI implements DemoMode,
}
};
+ protected final ContentObserver mThemeSettingsObserver = new ContentObserver(mHandler) {
+ @Override
+ public void onChange(boolean selfChange) {
+ updateTheme();
+ }
+ };
+
private final ContentObserver mLockscreenSettingsObserver = new ContentObserver(mHandler) {
@Override
public void onChange(boolean selfChange) {