Loading services/core/java/com/android/server/wm/TaskFragment.java +1 −2 Original line number Diff line number Diff line Loading @@ -996,8 +996,7 @@ class TaskFragment extends WindowContainer<WindowContainer> { } else { // Still have something resumed; can't sleep until it is paused. ProtoLog.v(WM_DEBUG_STATES, "Sleep needs to pause %s", mResumedActivity); startPausing(false /* userLeaving */, true /* uiSleeping */, null /* resuming */, "sleep"); startPausing(true /* uiSleeping */, null /* resuming */, "sleep"); } shouldSleep = false; } else if (mPausingActivity != null) { Loading services/tests/wmtests/src/com/android/server/wm/TaskTests.java +17 −0 Original line number Diff line number Diff line Loading @@ -314,6 +314,23 @@ public class TaskTests extends WindowTestsBase { }); } @Test public void testUserLeaving() { final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build(); final Task task = activity.getTask(); mSupervisor.mUserLeaving = true; activity.setState(ActivityRecord.State.RESUMED, "test"); task.sleepIfPossible(false /* shuttingDown */); verify(task).startPausing(eq(true) /* userLeaving */, anyBoolean(), any(), any()); clearInvocations(task); activity.setState(ActivityRecord.State.RESUMED, "test"); task.setPausingActivity(null); doReturn(false).when(task).canBeResumed(any()); task.pauseActivityIfNeeded(null /* resuming */, "test"); verify(task).startPausing(eq(true) /* userLeaving */, anyBoolean(), any(), any()); } @Test public void testSwitchUser() { final Task rootTask = createTask(mDisplayContent); Loading Loading
services/core/java/com/android/server/wm/TaskFragment.java +1 −2 Original line number Diff line number Diff line Loading @@ -996,8 +996,7 @@ class TaskFragment extends WindowContainer<WindowContainer> { } else { // Still have something resumed; can't sleep until it is paused. ProtoLog.v(WM_DEBUG_STATES, "Sleep needs to pause %s", mResumedActivity); startPausing(false /* userLeaving */, true /* uiSleeping */, null /* resuming */, "sleep"); startPausing(true /* uiSleeping */, null /* resuming */, "sleep"); } shouldSleep = false; } else if (mPausingActivity != null) { Loading
services/tests/wmtests/src/com/android/server/wm/TaskTests.java +17 −0 Original line number Diff line number Diff line Loading @@ -314,6 +314,23 @@ public class TaskTests extends WindowTestsBase { }); } @Test public void testUserLeaving() { final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build(); final Task task = activity.getTask(); mSupervisor.mUserLeaving = true; activity.setState(ActivityRecord.State.RESUMED, "test"); task.sleepIfPossible(false /* shuttingDown */); verify(task).startPausing(eq(true) /* userLeaving */, anyBoolean(), any(), any()); clearInvocations(task); activity.setState(ActivityRecord.State.RESUMED, "test"); task.setPausingActivity(null); doReturn(false).when(task).canBeResumed(any()); task.pauseActivityIfNeeded(null /* resuming */, "test"); verify(task).startPausing(eq(true) /* userLeaving */, anyBoolean(), any(), any()); } @Test public void testSwitchUser() { final Task rootTask = createTask(mDisplayContent); Loading