Notify of new top task changes when a top task is moved to the back

- Launcher currently relies on the current top task to cache the task
  for the next swipe gesture (skipping a synchronous binder call to
  fetch the top task, which can cause ANRs)

Bug: 232423798
Test: Open task B from task A, go back, and ensure Launcher gets
      notified that A is moved to top
Change-Id: Ia1ff90c776437c7443a472cea587b6bf78e332f0
This commit is contained in:
Winson Chung
2022-06-06 17:08:26 +00:00
parent 7297f19c60
commit 974769ca52

View File

@@ -451,6 +451,14 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> {
if (!toTop) {
if (t.mTaskId == mLastLeafTaskToFrontId) {
mLastLeafTaskToFrontId = INVALID_TASK_ID;
// If the previous front-most task is moved to the back, then notify of the new
// front-most task.
final ActivityRecord topMost = getTopMostActivity();
if (topMost != null) {
mAtmService.getTaskChangeNotificationController().notifyTaskMovedToFront(
topMost.getTask().getTaskInfo());
}
}
return;
}