From e2f1fb1d6bdc28f9f8b9ce78d521f53390f29ba0 Mon Sep 17 00:00:00 2001 From: Galia Peycheva Date: Wed, 22 Feb 2023 15:00:07 +0000 Subject: [PATCH] Add oldDream to mPreviousDreams always when dreams overlap Bug: 270178573 Test: start dream; press power button; wake up device; start dream; ensure dream starts Change-Id: Ie601d2b4303340f89001265ba685ae97ee7fd6d8 (cherry picked from commit 01c6a7af31831601d6affddeae5ddef44336630e) --- .../java/com/android/server/dreams/DreamController.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/dreams/DreamController.java b/services/core/java/com/android/server/dreams/DreamController.java index 3bc4b543750eb..3e2efdd7db85f 100644 --- a/services/core/java/com/android/server/dreams/DreamController.java +++ b/services/core/java/com/android/server/dreams/DreamController.java @@ -158,15 +158,14 @@ final class DreamController { final DreamRecord oldDream = mCurrentDream; mCurrentDream = new DreamRecord(token, name, isPreviewMode, canDoze, userId, wakeLock); if (oldDream != null) { - if (!oldDream.mWakingGently) { - // We will stop these previous dreams once the new dream is started. - mPreviousDreams.add(oldDream); - } else if (Objects.equals(oldDream.mName, mCurrentDream.mName)) { + if (Objects.equals(oldDream.mName, mCurrentDream.mName)) { // We are attempting to start a dream that is currently waking up gently. // Let's silently stop the old instance here to clear the dream state. // This should happen after the new mCurrentDream is set to avoid announcing // a "dream stopped" state. stopDreamInstance(/* immediately */ true, "restarting same dream", oldDream); + } else { + mPreviousDreams.add(oldDream); } }