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

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

Merge "Exclude the ActivityStack when processing the reset of a task"

parents 6afde924 dc9c1d41
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@ class ResetTargetTaskHelper {

        final PooledConsumer c = PooledLambda.obtainConsumer(
                ResetTargetTaskHelper::processTask, this, PooledLambda.__(Task.class));
        targetTask.mWmService.mRoot.forAllTasks(c);
        targetTask.mWmService.mRoot.forAllTasks(c, true /*traverseTopToBottom*/, mTargetStack);
        c.recycle();

        processPendingReparentActivities();
+4 −10
Original line number Diff line number Diff line
@@ -3070,19 +3070,13 @@ class Task extends WindowContainer<WindowContainer> {
        return matchParentBounds();
    }

    @Override
    void forAllTasks(Consumer<Task> callback, boolean traverseTopToBottom, Task excludedTask) {
        if (traverseTopToBottom) {
            super.forAllTasks(callback, traverseTopToBottom);
            if (excludedTask != this) {
                callback.accept(this);
            }
        } else {
            super.forAllTasks(callback, traverseTopToBottom);
        super.forAllTasks(callback, traverseTopToBottom, excludedTask);
        if (excludedTask != this) {
            callback.accept(this);
        }
    }
    }

    @Override
    void forAllTasks(Consumer<Task> callback, boolean traverseTopToBottom) {
+13 −0
Original line number Diff line number Diff line
@@ -1425,6 +1425,19 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
        }
    }

    void forAllTasks(Consumer<Task> callback, boolean traverseTopToBottom, Task excludedTask) {
        final int count = mChildren.size();
        if (traverseTopToBottom) {
            for (int i = count - 1; i >= 0; --i) {
                mChildren.get(i).forAllTasks(callback, traverseTopToBottom, excludedTask);
            }
        } else {
            for (int i = 0; i < count; i++) {
                mChildren.get(i).forAllTasks(callback, traverseTopToBottom, excludedTask);
            }
        }
    }

    Task getTaskAbove(Task t) {
        return getTask(
                (above) -> true, t, false /*includeBoundary*/, false /*traverseTopToBottom*/);