From a1d68534ef0521c5108b7daf58cee6b5ce4385b8 Mon Sep 17 00:00:00 2001 From: chaviw Date: Fri, 16 Mar 2018 15:33:43 -0700 Subject: [PATCH] Ensure pause when turnScreenOn flag is removed Because of Id5a7e04a354032ad10cf285f8d6b26d666734e6e, inResumeTopActivity will always be true. This was preventing the activity from getting paused when it did not have the turnScreenOn flag. Change-Id: I483b1a50dee1dd99d0e0b1bb49d2deb7b2d0d9a6 Fixes: 74775193 Test: testTurnScreenOnAttrRemove --- .../com/android/server/am/ActivityStack.java | 12 +----------- .../android/server/am/ActivityStackTests.java | 18 ------------------ 2 files changed, 1 insertion(+), 29 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index a24f84aa85b9c..b769f20858694 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -1356,17 +1356,7 @@ class ActivityStack extends ConfigurationContai if (DEBUG_USER_LEAVING) Slog.v(TAG_USER_LEAVING, "Sleep => pause with userLeaving=false"); - // If we are in the middle of resuming the top activity in - // {@link #resumeTopActivityUncheckedLocked}, mResumedActivity will be set but not - // resumed yet. We must not proceed pausing the activity here. This method will be - // called again if necessary as part of {@link #checkReadyForSleep} or - // {@link ActivityStackSupervisor#checkReadyForSleepLocked}. - if (mStackSupervisor.inResumeTopActivity) { - if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "In the middle of resuming top activity " - + mResumedActivity); - } else { - startPausingLocked(false, true, null, false); - } + startPausingLocked(false, true, null, false); shouldSleep = false ; } else if (mPausingActivity != null) { // Still waiting for something to pause; can't sleep yet. diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java index f17bfa456c882..5b2331f9f87fd 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java @@ -94,24 +94,6 @@ public class ActivityStackTests extends ActivityTestsBase { assertNotNull(mTask.getWindowContainerController()); } - @Test - public void testNoPauseDuringResumeTopActivity() throws Exception { - final ActivityRecord r = new ActivityBuilder(mService).setTask(mTask).build(); - - // Simulate the a resumed activity set during - // {@link ActivityStack#resumeTopActivityUncheckedLocked}. - mSupervisor.inResumeTopActivity = true; - r.setState(RESUMED, "testNoPauseDuringResumeTopActivity"); - - final boolean waiting = mStack.goToSleepIfPossible(false); - - // Ensure we report not being ready for sleep. - assertFalse(waiting); - - // Make sure the resumed activity is untouched. - assertEquals(mStack.getResumedActivity(), r); - } - @Test public void testResumedActivity() throws Exception { final ActivityRecord r = new ActivityBuilder(mService).setTask(mTask).build();