Implement IRecentTasksListener.onRunningTaskChanged()
Bug: 332504528 Test: N/A Flag: NA Change-Id: I7c98eb524bb7544a715f5b8226d3c28d05f72913
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user