Implement IRecentTasksListener.onRunningTaskChanged()

Bug: 332504528
Test: N/A
Flag: NA
Change-Id: I7c98eb524bb7544a715f5b8226d3c28d05f72913
This commit is contained in:
Gustav Sennton
2024-04-10 13:30:23 +00:00
parent 58d913d996
commit 2744acfbf4
@@ -97,6 +97,13 @@ public class RecentTasksList {
RecentTasksList.this.onRunningTaskVanished(taskInfo);
});
}
@Override
public void onRunningTaskChanged(ActivityManager.RunningTaskInfo taskInfo) {
mMainThreadExecutor.execute(() -> {
RecentTasksList.this.onRunningTaskChanged(taskInfo);
});
}
});
// We may receive onRunningTaskAppeared events later for tasks which have already been
// included in the list returned by mSysUiProxy.getRunningTasks(), or may receive
@@ -244,6 +251,20 @@ public class RecentTasksList {
}
}
private void onRunningTaskChanged(ActivityManager.RunningTaskInfo taskInfo) {
// Find the task from the list of running tasks, if it exists
for (ActivityManager.RunningTaskInfo existingTask : mRunningTasks) {
if (existingTask.taskId != taskInfo.taskId) continue;
mRunningTasks.remove(existingTask);
mRunningTasks.add(taskInfo);
if (mRunningTasksListener != null) {
mRunningTasksListener.onRunningTasksChanged();
}
return;
}
}
/**
* Loads and creates a list of all the recent tasks.
*/
@@ -390,4 +411,4 @@ public class RecentTasksList {
return mRequestId == requestId && (!mKeysOnly || loadKeysOnly);
}
}
}
}