From 4e9ce69d066d29bf9af582f3760cfc668fee502d Mon Sep 17 00:00:00 2001 From: Keun young Park Date: Tue, 18 Aug 2020 17:25:19 -0700 Subject: Do not update nightmode from settings for car - Storing is disabled, so restoration should be disabled as well. - The old behavior is problematic in device like car as car should stay in night mode even if there is a user switching. - Add check for both mCarModeEnabled and mCar as mCarModeEnabled actually means car dock which is not enabled in car env (mCar=true) Bug: 155167849 Test: run user switching and confirm no night mode change in car Change-Id: I03a4649ef0848d14b2af3da43178c0dfe3f26a32 Merged-In: I03a4649ef0848d14b2af3da43178c0dfe3f26a32 (cherry picked from commit 1a6875361138391e09759af1b0641aa3114ad47d) --- services/core/java/com/android/server/UiModeManagerService.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java index be080e5cce62..b5aea75d78a5 100644 --- a/services/core/java/com/android/server/UiModeManagerService.java +++ b/services/core/java/com/android/server/UiModeManagerService.java @@ -485,6 +485,9 @@ final class UiModeManagerService extends SystemService { * @return True if the new value is different from the old value. False otherwise. */ private boolean updateNightModeFromSettingsLocked(Context context, Resources res, int userId) { + if (mCarModeEnabled || mCar) { + return false; + } int oldNightMode = mNightMode; if (mSetupWizardComplete) { mNightMode = Secure.getIntForUser(context.getContentResolver(), @@ -1015,7 +1018,7 @@ final class UiModeManagerService extends SystemService { private void persistNightMode(int user) { // Only persist setting if not in car mode - if (mCarModeEnabled) return; + if (mCarModeEnabled || mCar) return; Secure.putIntForUser(getContext().getContentResolver(), Secure.UI_NIGHT_MODE, mNightMode, user); Secure.putLongForUser(getContext().getContentResolver(), @@ -1028,7 +1031,7 @@ final class UiModeManagerService extends SystemService { private void persistNightModeOverrides(int user) { // Only persist setting if not in car mode - if (mCarModeEnabled) return; + if (mCarModeEnabled || mCar) return; Secure.putIntForUser(getContext().getContentResolver(), Secure.UI_NIGHT_MODE_OVERRIDE_ON, mOverrideNightModeOn ? 1 : 0, user); Secure.putIntForUser(getContext().getContentResolver(), @@ -1079,7 +1082,7 @@ final class UiModeManagerService extends SystemService { } // Override night mode in power save mode if not in car mode - if (mPowerSave && !mCarModeEnabled) { + if (mPowerSave && !mCarModeEnabled && !mCar) { uiMode &= ~Configuration.UI_MODE_NIGHT_NO; uiMode |= Configuration.UI_MODE_NIGHT_YES; } else { -- cgit v1.2.3-59-g8ed1b