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

Commit cda41c6b authored by Matthew Ng's avatar Matthew Ng Committed by android-build-merger
Browse files

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

am: b2edabad

Change-Id: I91abd7cfa4889adf289966024aad4d0d2460dbf0
parents 06b8324d b2edabad
Loading
Loading
Loading
Loading
+8 −13
Original line number Original line Diff line number Diff line
@@ -1659,21 +1659,13 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
        }
        }


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

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

            return STACK_VISIBLE;
            // 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;
        }
        }


        // Set home stack to invisible when it is below but not immediately below the docked stack
        // 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) {
                mStacks.get(stackBehindTopIndex).topRunningActivityLocked() == null) {
            stackBehindTopIndex--;
            stackBehindTopIndex--;
        }
        }
        final int stackBehindTopId = (stackBehindTopIndex >= 0)
                ? mStacks.get(stackBehindTopIndex).mStackId : INVALID_STACK_ID;
        if ((topStackId == DOCKED_STACK_ID || topStackId == PINNED_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.
            // 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;
            return STACK_VISIBLE;
        }
        }


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

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