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

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

Merge "Skip setting intermediate top when moving task to front" into main

parents 18ba6a77 638aa4bf
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -2311,8 +2311,12 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
            mService.setLastResumedActivityUncheckLocked(mTopResumedActivity, reason);
        }
        scheduleTopResumedActivityStateIfNeeded();

        // If the device is not sleeping and there is no top resumed, do not update top app because
        // it may be an intermediate state while moving a task to front. The actual top will be set
        // when TaskFragment#setResumedActivity is called.
        if (mTopResumedActivity != null || mService.isSleepingLocked()) {
            mService.updateTopApp(mTopResumedActivity);
        }

        return mTopResumedActivity;
    }
+14 −0
Original line number Diff line number Diff line
@@ -343,6 +343,20 @@ public class ActivityTaskSupervisorTests extends WindowTestsBase {
        verify(mAtm).setLastResumedActivityUncheckLocked(any(), eq("test"));
    }

    @Test
    public void testUpdateTopResumed_moveToFront() {
        final ActivityRecord activity1 = new ActivityBuilder(mAtm).setCreateTask(true).build();
        final ActivityRecord activity2 = new ActivityBuilder(mAtm).setCreateTask(true).build();
        activity2.setState(ActivityRecord.State.RESUMED, "test");
        assertEquals(activity2.app, mAtm.mTopApp);
        activity1.getTask().moveToFront("test");
        // If the device is not sleeping, the app should be only set with resumed state.
        assertEquals(activity2.app, mAtm.mTopApp);
        activity2.setState(ActivityRecord.State.PAUSED, "test");
        activity1.setState(ActivityRecord.State.RESUMED, "test");
        assertEquals(activity1.app, mAtm.mTopApp);
    }

    /**
     * We need to launch home again after user unlocked for those displays that do not have
     * encryption aware home app.
+1 −0
Original line number Diff line number Diff line
@@ -406,6 +406,7 @@ public class WindowProcessControllerTests extends WindowTestsBase {
        verify(tracker).onActivityResumedWhileVisible(mWpc);
        assertTrue(tracker.hasResumedActivity(mWpc.mUid));

        mAtm.mTopApp = null;
        activity.makeFinishingLocked();
        activity.setState(PAUSING, "test");