Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1d1446d5 authored by Louis Chang's avatar Louis Chang Committed by Android (Google) Code Review
Browse files

Merge "Revert "[RESTRICT AUTOMERGE] Trim the activity info of another uid if...

Merge "Revert "[RESTRICT AUTOMERGE] Trim the activity info of another uid if no privilege"" into qt-dev
parents 9a64b4bb 53a76608
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -84,8 +84,7 @@ class AppTaskImpl extends IAppTask.Stub {
                if (tr == null) {
                    throw new IllegalArgumentException("Unable to find task ID " + mTaskId);
                }
                return mService.getRecentTasks().createRecentTaskInfo(tr,
                        true /* getTasksAllowed */);
                return mService.getRecentTasks().createRecentTaskInfo(tr);
            } finally {
                Binder.restoreCallingIdentity(origId);
            }
+2 −5
Original line number Diff line number Diff line
@@ -944,7 +944,7 @@ class RecentTasks {
                continue;
            }

            final ActivityManager.RecentTaskInfo rti = createRecentTaskInfo(tr, getTasksAllowed);
            final ActivityManager.RecentTaskInfo rti = createRecentTaskInfo(tr);
            if (!getDetailedTasks) {
                rti.baseIntent.replaceExtras((Bundle) null);
            }
@@ -1715,15 +1715,12 @@ class RecentTasks {
    /**
     * Creates a new RecentTaskInfo from a TaskRecord.
     */
    ActivityManager.RecentTaskInfo createRecentTaskInfo(TaskRecord tr, boolean getTasksAllowed) {
    ActivityManager.RecentTaskInfo createRecentTaskInfo(TaskRecord tr) {
        ActivityManager.RecentTaskInfo rti = new ActivityManager.RecentTaskInfo();
        tr.fillTaskInfo(rti);
        // Fill in some deprecated values
        rti.id = rti.isRunning ? rti.taskId : INVALID_TASK_ID;
        rti.persistentId = rti.taskId;
        if (!getTasksAllowed) {
            TaskRecord.trimIneffectiveInfo(tr, rti);
        }
        return rti;
    }

+2 −6
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ class RunningTasks {
            }

            final TaskRecord task = iter.next();
            list.add(createRunningTaskInfo(task, allowed));
            list.add(createRunningTaskInfo(task));
            maxNum--;
        }
    }
@@ -76,15 +76,11 @@ class RunningTasks {
    /**
     * Constructs a {@link RunningTaskInfo} from a given {@param task}.
     */
    private RunningTaskInfo createRunningTaskInfo(TaskRecord task, boolean allowed) {
    private RunningTaskInfo createRunningTaskInfo(TaskRecord task) {
        final RunningTaskInfo rti = new RunningTaskInfo();
        task.fillTaskInfo(rti);
        // Fill in some deprecated values
        rti.id = rti.taskId;

        if (!allowed) {
            TaskRecord.trimIneffectiveInfo(task, rti);
        }
        return rti;
    }
}
+0 −34
Original line number Diff line number Diff line
@@ -2436,40 +2436,6 @@ class TaskRecord extends ConfigurationContainer {
        info.configuration.setTo(getConfiguration());
    }

    /**
     * Removes the activity info if the activity belongs to a different uid, which is
     * different from the app that hosts the task.
     */
    static void trimIneffectiveInfo(TaskRecord task, TaskInfo info) {
        int topActivityUid = task.effectiveUid;
        for (int i = task.mActivities.size() - 1; i >= 0; --i) {
            final ActivityRecord r = task.mActivities.get(i);
            if (r.finishing || r.isState(ActivityState.INITIALIZING)) {
                continue;
            }
            topActivityUid = r.info.applicationInfo.uid;
            break;
        }

        if (task.effectiveUid != topActivityUid) {
            info.topActivity = null;
        }

        int baseActivityUid = task.effectiveUid;
        for (int i = 0; i < task.mActivities.size(); ++i) {
            final ActivityRecord r = task.mActivities.get(i);
            if (r.finishing) {
                continue;
            }
            baseActivityUid = r.info.applicationInfo.uid;
            break;
        }

        if (task.effectiveUid != baseActivityUid) {
            info.baseActivity = null;
        }
    }

    /**
     * Returns a  {@link TaskInfo} with information from this task.
     */