Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
No related merge requests found
......@@ -2311,8 +2311,12 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
mService.setLastResumedActivityUncheckLocked(mTopResumedActivity, reason);
}
scheduleTopResumedActivityStateIfNeeded();
mService.updateTopApp(mTopResumedActivity);
// 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;
}
......
......@@ -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.
......
......@@ -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");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment