diff --git a/services/core/java/com/android/server/wm/AppTaskImpl.java b/services/core/java/com/android/server/wm/AppTaskImpl.java index 8fa811915fc25..dd1d55b2d54d3 100644 --- a/services/core/java/com/android/server/wm/AppTaskImpl.java +++ b/services/core/java/com/android/server/wm/AppTaskImpl.java @@ -83,7 +83,8 @@ class AppTaskImpl extends IAppTask.Stub { if (task == null) { throw new IllegalArgumentException("Unable to find task ID " + mTaskId); } - return mService.getRecentTasks().createRecentTaskInfo(task); + return mService.getRecentTasks().createRecentTaskInfo(task, + false /* stripExtras */); } finally { Binder.restoreCallingIdentity(origId); } diff --git a/services/core/java/com/android/server/wm/RecentTasks.java b/services/core/java/com/android/server/wm/RecentTasks.java index 24bb7c8d5560b..1b58fc1d2d3e3 100644 --- a/services/core/java/com/android/server/wm/RecentTasks.java +++ b/services/core/java/com/android/server/wm/RecentTasks.java @@ -961,7 +961,7 @@ class RecentTasks { continue; } - res.add(createRecentTaskInfo(task)); + res.add(createRecentTaskInfo(task, true /* stripExtras */)); } return res; } @@ -1832,9 +1832,9 @@ class RecentTasks { /** * Creates a new RecentTaskInfo from a Task. */ - ActivityManager.RecentTaskInfo createRecentTaskInfo(Task tr) { + ActivityManager.RecentTaskInfo createRecentTaskInfo(Task tr, boolean stripExtras) { ActivityManager.RecentTaskInfo rti = new ActivityManager.RecentTaskInfo(); - tr.fillTaskInfo(rti); + tr.fillTaskInfo(rti, stripExtras); // Fill in some deprecated values rti.id = rti.isRunning ? rti.taskId : INVALID_TASK_ID; rti.persistentId = rti.taskId; diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 97357839f02d6..a7b1209421636 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -3551,11 +3551,19 @@ class Task extends WindowContainer { } } + /** * Fills in a {@link TaskInfo} with information from this task. Note that the base intent in the * task info will not include any extras or clip data. */ void fillTaskInfo(TaskInfo info) { + fillTaskInfo(info, true /* stripExtras */); + } + + /** + * Fills in a {@link TaskInfo} with information from this task. + */ + void fillTaskInfo(TaskInfo info, boolean stripExtras) { getNumRunningActivities(mReuseActivitiesReport); info.userId = mUserId; info.stackId = getRootTaskId(); @@ -3566,7 +3574,9 @@ class Task extends WindowContainer { // Make a copy of base intent because this is like a snapshot info. // Besides, {@link RecentTasks#getRecentTasksImpl} may modify it. final int baseIntentFlags = baseIntent == null ? 0 : baseIntent.getFlags(); - info.baseIntent = baseIntent == null ? new Intent() : baseIntent.cloneFilter(); + info.baseIntent = baseIntent == null + ? new Intent() + : stripExtras ? baseIntent.cloneFilter() : new Intent(baseIntent); info.baseIntent.setFlags(baseIntentFlags); info.baseActivity = mReuseActivitiesReport.base != null ? mReuseActivitiesReport.base.intent.getComponent()