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

Commit 717dfad6 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Do not reuse non-leaf tasks for the starting activity" into rvc-dev

parents 1c65357c 87ca32eb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -327,7 +327,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
            documentData = isDocument ? intent.getData() : null;

            if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Looking for task of " + target + " in " + parent);
            parent.forAllTasks(this);
            parent.forAllLeafTasks(this);
        }

        void clear() {
+19 −1
Original line number Diff line number Diff line
@@ -942,7 +942,7 @@ class Task extends WindowContainer<WindowContainer> {
            return;
        }

        affinity = info.taskAffinity;
        affinity = isLeafTask() ? info.taskAffinity : null;
        if (intent == null) {
            // If this task already has an intent associated with it, don't set the root
            // affinity -- we don't want it changing after initially set, but the initially
@@ -3398,6 +3398,24 @@ class Task extends WindowContainer<WindowContainer> {
        return callback.apply(this);
    }

    @Override
    boolean forAllLeafTasks(Function<Task, Boolean> callback) {
        boolean isLeafTask = true;
        for (int i = mChildren.size() - 1; i >= 0; --i) {
            final Task child = mChildren.get(i).asTask();
            if (child != null) {
                isLeafTask = false;
                if (child.forAllLeafTasks(callback)) {
                    return true;
                }
            }
        }
        if (isLeafTask) {
            return callback.apply(this);
        }
        return false;
    }

    @Override
    Task getTask(Predicate<Task> callback, boolean traverseTopToBottom) {
        final Task t = super.getTask(callback, traverseTopToBottom);
+9 −0
Original line number Diff line number Diff line
@@ -1552,6 +1552,15 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
        return false;
    }

    boolean forAllLeafTasks(Function<Task, Boolean> callback) {
        for (int i = mChildren.size() - 1; i >= 0; --i) {
            if (mChildren.get(i).forAllLeafTasks(callback)) {
                return true;
            }
        }
        return false;
    }

    /**
     * For all tasks at or below this container call the callback.
     *