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

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

Merge "Simplify getting top display focused stack"

parents 7b07e4aa 86cb7ded
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -138,6 +138,10 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack>
        return new DisplayWindowController(mDisplay, this);
    }

    DisplayWindowController getWindowContainerController() {
        return mWindowContainerController;
    }

    void updateBounds() {
        mDisplay.getSize(mTmpDisplaySize);
        setBounds(0, 0, mTmpDisplaySize.x, mTmpDisplaySize.y);
@@ -837,7 +841,7 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack>
        if (mStacks.isEmpty() && mRemoved) {
            mWindowContainerController.removeContainer();
            mWindowContainerController = null;
            mSupervisor.releaseActivityDisplayLocked(mDisplayId);
            mSupervisor.removeChild(this);
        }
    }

+10 −10
Original line number Diff line number Diff line
@@ -775,6 +775,11 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
                true /* includingParents */);
    }

    void positionChildWindowContainerAtBottom(TaskRecord child) {
        mWindowContainerController.positionChildAtBottom(child.getWindowContainerController(),
                true /* includingParents */);
    }

    /**
     * Returns whether to defer the scheduling of the multi-window mode.
     */
@@ -2859,8 +2864,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
        final int position = getAdjustedPositionForTask(task, mTaskHistory.size(), starting);
        mTaskHistory.add(position, task);
        updateTaskMovement(task, true);
        mWindowContainerController.positionChildAtTop(task.getWindowContainerController(),
                true /* includingParents */);
        positionChildWindowContainerAtTop(task);
    }

    private void insertTaskAtBottom(TaskRecord task) {
@@ -2869,8 +2873,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
        final int position = getAdjustedPositionForTask(task, 0, null);
        mTaskHistory.add(position, task);
        updateTaskMovement(task, true);
        mWindowContainerController.positionChildAtBottom(task.getWindowContainerController(),
                true /* includingParents */);
        positionChildWindowContainerAtBottom(task);
    }

    void startActivityLocked(ActivityRecord r, ActivityRecord focusedTopActivity,
@@ -3141,8 +3144,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
                    p.reparent(targetTask, 0 /* position - bottom */, "resetTargetTaskIfNeeded");
                }

                mWindowContainerController.positionChildAtBottom(
                        targetTask.getWindowContainerController(), false /* includingParents */);
                positionChildWindowContainerAtBottom(targetTask);
                replyChainEnd = -1;
            } else if (forceReset || finishOnTaskLaunch || clearWhenTaskReset) {
                // If the activity should just be removed -- either
@@ -3277,8 +3279,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
                        if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Pulling activity " + p
                                + " from " + srcPos + " in to resetting task " + task);
                    }
                    mWindowContainerController.positionChildAtTop(
                            task.getWindowContainerController(), true /* includingParents */);
                    positionChildWindowContainerAtTop(task);

                    // Now we've moved it in to place...  but what if this is
                    // a singleTop activity and we have put it on top of another
@@ -5239,8 +5240,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
        addTask(task, toTop ? MAX_VALUE : 0, true /* schedulePictureInPictureModeChange */, reason);
        if (toTop) {
            // TODO: figure-out a way to remove this call.
            mWindowContainerController.positionChildAtTop(task.getWindowContainerController(),
                    true /* includingParents */);
            positionChildWindowContainerAtTop(task);
        }
    }

+146 −137

File changed.

Preview size limit exceeded, changes collapsed.

+2 −6
Original line number Diff line number Diff line
@@ -16,13 +16,9 @@

package com.android.server.am;

import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM;
import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME;

import android.app.ActivityManager.RunningTaskInfo;
import android.app.WindowConfiguration.ActivityType;
import android.app.WindowConfiguration.WindowingMode;
import android.util.SparseArray;

import java.util.ArrayList;
import java.util.Comparator;
@@ -45,7 +41,7 @@ class RunningTasks {
    private final ArrayList<TaskRecord> mTmpStackTasks = new ArrayList<>();

    void getTasks(int maxNum, List<RunningTaskInfo> list, @ActivityType int ignoreActivityType,
            @WindowingMode int ignoreWindowingMode, SparseArray<ActivityDisplay> activityDisplays,
            @WindowingMode int ignoreWindowingMode, ArrayList<ActivityDisplay> activityDisplays,
            int callingUid, boolean allowed) {
        // Return early if there are no tasks to fetch
        if (maxNum <= 0) {
@@ -56,7 +52,7 @@ class RunningTasks {
        mTmpSortedSet.clear();
        final int numDisplays = activityDisplays.size();
        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
            final ActivityDisplay display = activityDisplays.valueAt(displayNdx);
            final ActivityDisplay display = activityDisplays.get(displayNdx);
            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
                final ActivityStack stack = display.getChildAt(stackNdx);
                mTmpStackTasks.clear();
+5 −0
Original line number Diff line number Diff line
@@ -920,6 +920,11 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
        appToken.onRemovedFromDisplay();
    }

    @Override
    DisplayWindowController getController() {
        return (DisplayWindowController) super.getController();
    }

    @Override
    public Display getDisplay() {
        return mDisplay;
Loading