Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4adffd88 authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Respect user leaving when pausing activity by sleeping" into main

parents 4b7b508f a5cb8fed
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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) {
+17 −0
Original line number Diff line number Diff line
@@ -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);