From 6a149f699eb35b4609d4c8b632ca3c014a6bd06b Mon Sep 17 00:00:00 2001 From: Bryce Lee Date: Tue, 12 Sep 2017 09:50:35 -0700 Subject: [PATCH] Update reference to top activity. A condition dealing with a paused top activity references the last paused activity rather than the top activity. Bug: 65620111 Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test CtsServicesHostTestCases android.server.cts.ActivityManagerDisplayTests#testExternalDisplayActivityTurnPrimaryOff Change-Id: Ie67cb8b103e7dec59b1c0b40a5bb35ef0c3cb2b7 --- services/core/java/com/android/server/am/ActivityStack.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 09541f66633d3..8a44d0032f6a6 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -1190,6 +1190,7 @@ class ActivityStack extends ConfigurationContai * process of going to sleep (checkReadyForSleep will be called when that process finishes). */ boolean goToSleepIfPossible(boolean shuttingDown) { + final ActivityRecord topActivity = topActivity(); boolean shouldSleep = true; if (mResumedActivity != null) { @@ -1214,10 +1215,10 @@ class ActivityStack extends ConfigurationContai // Still waiting for something to pause; can't sleep yet. if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "Sleep still waiting to pause " + mPausingActivity); shouldSleep = false; - } else if (topActivity() != null && topActivity().state == ActivityState.PAUSED) { + } else if (topActivity != null && topActivity.state == ActivityState.PAUSED) { // Our top activity is currently paused, we need to ensure we move it to the stopped // state. - stopActivityLocked(mLastPausedActivity); + stopActivityLocked(topActivity); shouldSleep = false; }