From 45dddb333d5ebb265e1a7247327c1688eb9381f4 Mon Sep 17 00:00:00 2001 From: wilsonshih Date: Tue, 13 Jul 2021 17:34:15 +0800 Subject: [PATCH] Fix setApplicationNightMode did not persist night mode. The night mode should be persisted even if the night mode of a window process controller match current settings. Test: atest WindowProcessControllerTests SplashscreenTests Bug: 192578055 Change-Id: Iedfc53d43638530a3b3eb20ed7078921ec60c5f4 --- .../com/android/server/wm/ActivityTaskManagerService.java | 7 +------ .../com/android/server/wm/ConfigurationContainer.java | 8 ++------ 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 090a01aa6f1b0..04c01736431da 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -6471,12 +6471,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { Slog.w(TAG, "Override application configuration: cannot find pid " + mPid); return; } - if (wpc.getNightMode() == mNightMode) { - return; - } - if (!wpc.setOverrideNightMode(mNightMode)) { - return; - } + wpc.setOverrideNightMode(mNightMode); wpc.updateNightModeForAllActivities(mNightMode); mPackageConfigPersister.updateFromImpl(wpc.mName, wpc.mUserId, this); } finally { diff --git a/services/core/java/com/android/server/wm/ConfigurationContainer.java b/services/core/java/com/android/server/wm/ConfigurationContainer.java index 8fbe1775fd19f..d52e9b608cdb6 100644 --- a/services/core/java/com/android/server/wm/ConfigurationContainer.java +++ b/services/core/java/com/android/server/wm/ConfigurationContainer.java @@ -545,8 +545,8 @@ public abstract class ConfigurationContainer { * @return true if the nightMode has been changed. */ public boolean setOverrideNightMode(int nightMode) { - final int currentUiMode = mFullConfiguration.uiMode; - final int currentNightMode = getNightMode(); + final int currentUiMode = mRequestedOverrideConfiguration.uiMode; + final int currentNightMode = currentUiMode & Configuration.UI_MODE_NIGHT_MASK; final int validNightMode = nightMode & Configuration.UI_MODE_NIGHT_MASK; if (currentNightMode == validNightMode) { return false; @@ -558,10 +558,6 @@ public abstract class ConfigurationContainer { return true; } - int getNightMode() { - return mFullConfiguration.uiMode & Configuration.UI_MODE_NIGHT_MASK; - } - public boolean isActivityTypeDream() { return getActivityType() == ACTIVITY_TYPE_DREAM; }