From f38638b25fb4dbabf96d5f30ebe3c2e893a39439 Mon Sep 17 00:00:00 2001 From: althafvly Date: Tue, 26 May 2020 21:17:59 +0800 Subject: [PATCH 25/34] 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 8d4e70c2b961..744f1eb67f41 100644 --- a/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java +++ b/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java @@ -78,6 +78,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; @@ -141,6 +143,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. @@ -181,6 +184,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 @@ -421,10 +433,12 @@ public class ThemeOverlayController implements CoreStartable, Dumpable { WakefulnessLifecycle wakefulnessLifecycle, JavaAdapter javaAdapter, KeyguardTransitionInteractor keyguardTransitionInteractor, - UiModeManager uiModeManager) { + UiModeManager uiModeManager, + ConfigurationController configurationController) { mContext = context; mIsMonetEnabled = featureFlags.isEnabled(Flags.MONET); mIsFidelityEnabled = featureFlags.isEnabled(Flags.COLOR_FIDELITY); + mConfigurationController = configurationController; mDeviceProvisionedController = deviceProvisionedController; mBroadcastDispatcher = broadcastDispatcher; mUserManager = userManager; @@ -538,6 +552,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