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

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

Merge "Stack is visible if behind docked which is behind pinned stack (1/2)" into oc-dev

parents 4d1fb218 6875d472
Loading
Loading
Loading
Loading
+8 −13
Original line number Diff line number Diff line
@@ -1659,21 +1659,13 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
        }

        if (mStackId == DOCKED_STACK_ID) {
            final ActivityRecord r = topStack.topRunningActivityLocked();

            // If the assistant stack is focused and translucent, then the docked stack is always
            // visible
            if (topStack.isAssistantStack()) {
                return (topStack.isStackTranslucent(starting, DOCKED_STACK_ID)) ? STACK_VISIBLE
                        : STACK_INVISIBLE;
            }

            // Otherwise, the docked stack is always visible, except in the case where the top
            // running activity task in the focus stack doesn't support any form of resizing but we
            // show it for the home task even though it's not resizable.
            final TaskRecord task = r != null ? r.getTask() : null;
            return task == null || task.supportsSplitScreen() || task.isHomeTask() ? STACK_VISIBLE
                    : STACK_INVISIBLE;
            return STACK_VISIBLE;
        }

        // Set home stack to invisible when it is below but not immediately below the docked stack
@@ -1692,15 +1684,18 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
                mStacks.get(stackBehindTopIndex).topRunningActivityLocked() == null) {
            stackBehindTopIndex--;
        }
        final int stackBehindTopId = (stackBehindTopIndex >= 0)
                ? mStacks.get(stackBehindTopIndex).mStackId : INVALID_STACK_ID;
        if ((topStackId == DOCKED_STACK_ID || topStackId == PINNED_STACK_ID)
                && stackIndex == stackBehindTopIndex) {
                && (stackIndex == stackBehindTopIndex
                || (stackBehindTopId == DOCKED_STACK_ID
                && stackIndex == stackBehindTopIndex - 1))) {
            // Stacks directly behind the docked or pinned stack are always visible.
            // Also this stack is visible if behind docked stack and the docked stack is behind the
            // top-most pinned stack
            return STACK_VISIBLE;
        }

        final int stackBehindTopId = (stackBehindTopIndex >= 0)
                ? mStacks.get(stackBehindTopIndex).mStackId : INVALID_STACK_ID;

        if (StackId.isBackdropToTranslucentActivity(topStackId)
                && topStack.isStackTranslucent(starting, stackBehindTopId)) {
            // Stacks behind the fullscreen or assistant stack with a translucent activity are