From 3aa6aa1e16a385a3cef393fb58d4a319ca884632 Mon Sep 17 00:00:00 2001 From: althafvly 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