lineage_patches_unified/patches_platform/frameworks_base/0032-SystemUI-Re-evaluate-system-theme-on-UI-mode-change.patch
2024-07-21 17:16:11 +08:00

75 lines
3.8 KiB
Diff

From 3aa6aa1e16a385a3cef393fb58d4a319ca884632 Mon Sep 17 00:00:00 2001
From: althafvly <althafvly@gmail.com>
Date: Tue, 26 May 2020 21:17:59 +0800
Subject: [PATCH 32/43] 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 321429e43573..84e32a1dbaae 100644
--- a/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java
+++ b/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java
@@ -80,6 +80,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.kotlin.JavaAdapter;
@@ -143,6 +145,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.
@@ -184,6 +187,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
@@ -425,10 +437,12 @@ public class ThemeOverlayController implements CoreStartable, Dumpable {
JavaAdapter javaAdapter,
KeyguardTransitionInteractor keyguardTransitionInteractor,
UiModeManager uiModeManager,
- ActivityManager activityManager) {
+ ActivityManager activityManager,
+ ConfigurationController configurationController) {
mContext = context;
mIsMonetEnabled = featureFlags.isEnabled(Flags.MONET);
mIsFidelityEnabled = featureFlags.isEnabled(Flags.COLOR_FIDELITY);
+ mConfigurationController = configurationController;
mDeviceProvisionedController = deviceProvisionedController;
mBroadcastDispatcher = broadcastDispatcher;
mUserManager = userManager;
@@ -543,6 +557,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