From 9c486ed4fcd2bc28bb009be8b4d80fed6c6532cd Mon Sep 17 00:00:00 2001 From: Will Leshner Date: Tue, 6 Jun 2023 10:33:48 -0700 Subject: Fix screen not turning off on power button press. If Bedtime is active and the "Keep the screen dark" option is enabled, then the device shouldn't dream and tapping power button should turn the screen off but didn't. This change fixes that issue. Bug: 284857728 Test: Manually by enabling bedtime and the "keep screen dark" option and then tapping power button to verify the screen turns off. Also, if bedtime is disabled (or "keep screen dark" is disabled), then power button should continue to start dreaming. Change-Id: I5db541c5c2e52c58d773822bb7404704516cbb28 --- .../java/com/android/server/dreams/DreamManagerService.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/services/core/java/com/android/server/dreams/DreamManagerService.java b/services/core/java/com/android/server/dreams/DreamManagerService.java index d2dcc508d01f..41651fd5553c 100644 --- a/services/core/java/com/android/server/dreams/DreamManagerService.java +++ b/services/core/java/com/android/server/dreams/DreamManagerService.java @@ -126,6 +126,7 @@ public final class DreamManagerService extends SystemService { private final boolean mDreamsActivatedOnChargeByDefault; private final boolean mDreamsActivatedOnDockByDefault; private final boolean mKeepDreamingWhenUnpluggingDefault; + private final boolean mDreamsDisabledByAmbientModeSuppressionConfig; private final CopyOnWriteArrayList mDreamManagerStateListeners = new CopyOnWriteArrayList<>(); @@ -239,6 +240,9 @@ public final class DreamManagerService extends SystemService { mSettingsObserver = new SettingsObserver(mHandler); mKeepDreamingWhenUnpluggingDefault = mContext.getResources().getBoolean( com.android.internal.R.bool.config_keepDreamingWhenUnplugging); + mDreamsDisabledByAmbientModeSuppressionConfig = mContext.getResources().getBoolean( + com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig); + } @Override @@ -406,6 +410,13 @@ public final class DreamManagerService extends SystemService { return false; } + if (mDreamsDisabledByAmbientModeSuppressionConfig + && mPowerManagerInternal.isAmbientDisplaySuppressed()) { + // Don't dream if Bedtime (or something else) is suppressing ambient. + Slog.i(TAG, "Can't start dreaming because ambient is suppressed."); + return false; + } + if ((mWhenToDream & DREAM_ON_CHARGE) == DREAM_ON_CHARGE) { return mIsCharging; } -- cgit v1.2.3-59-g8ed1b