lineage_patches_unified/patches_platform/frameworks_base/0022-SystemUI-Re-evaluate-system-theme-on-UI-mode-change.patch

76 lines
3.8 KiB
Diff

From 5bfb64b6e1fe6e78a1b15869332a33c40afde56c Mon Sep 17 00:00:00 2001
From: althafvly <althafvly@gmail.com>
Date: Tue, 26 May 2020 21:17:59 +0800
Subject: [PATCH 22/31] SystemUI: Re-evaluate system theme on UI mode change
- Need for power menu to set accurate colors
Change-Id: I05d41eaf8ea19ce3b6ce659d01da33cf55de3b7e
---
.../systemui/theme/ThemeOverlayController.java | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java b/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java
index 395bb6c6f1af..e27ec424a444 100644
--- a/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java
+++ b/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java
@@ -75,6 +75,8 @@ import com.android.systemui.monet.ColorScheme;
import com.android.systemui.monet.Style;
import com.android.systemui.monet.TonalPalette;
import com.android.systemui.settings.UserTracker;
+import com.android.systemui.statusbar.policy.ConfigurationController;
+import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener;
import com.android.systemui.util.settings.SecureSettings;
@@ -138,6 +140,7 @@ public class ThemeOverlayController implements CoreStartable, Dumpable {
private final boolean mIsMonetEnabled;
private final boolean mIsFidelityEnabled;
private final UserTracker mUserTracker;
+ private final ConfigurationController mConfigurationController;
private final DeviceProvisionedController mDeviceProvisionedController;
private final Resources mResources;
// Current wallpaper colors associated to a user.
@@ -176,6 +179,15 @@ public class ThemeOverlayController implements CoreStartable, Dumpable {
// Determines if we should ignore THEME_CUSTOMIZATION_OVERLAY_PACKAGES setting changes.
private boolean mSkipSettingChange;
+ private final ConfigurationListener mConfigurationListener =
+ new ConfigurationListener() {
+ @Override
+ public void onUiModeChanged() {
+ Log.i(TAG, "Re-applying theme on UI change");
+ reevaluateSystemTheme(true /* forceReload */);
+ }
+ };
+
private final DeviceProvisionedListener mDeviceProvisionedListener =
new DeviceProvisionedListener() {
@Override
@@ -402,11 +414,13 @@ public class ThemeOverlayController implements CoreStartable, Dumpable {
FeatureFlags featureFlags,
@Main Resources resources,
WakefulnessLifecycle wakefulnessLifecycle,
- UiModeManager uiModeManager) {
+ UiModeManager uiModeManager,
+ ConfigurationController configurationController) {
mContext = context;
mIsMonochromaticEnabled = featureFlags.isEnabled(Flags.MONOCHROMATIC_THEME);
mIsMonetEnabled = featureFlags.isEnabled(Flags.MONET);
mIsFidelityEnabled = featureFlags.isEnabled(Flags.COLOR_FIDELITY);
+ mConfigurationController = configurationController;
mDeviceProvisionedController = deviceProvisionedController;
mBroadcastDispatcher = broadcastDispatcher;
mUserManager = userManager;
@@ -518,6 +532,7 @@ public class ThemeOverlayController implements CoreStartable, Dumpable {
mUserTracker.addCallback(mUserTrackerCallback, mMainExecutor);
+ mConfigurationController.addCallback(mConfigurationListener);
mDeviceProvisionedController.addCallback(mDeviceProvisionedListener);
// All wallpaper color and keyguard logic only applies when Monet is enabled.
--
2.34.1