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

am: cda41c6bcd

Change-Id: Idcdfd6fc9fc492c2cce2c51782ac3fe1ee8fe909
This commit is contained in:
Matthew Ng
2017-05-05 00:29:54 +00:00
committed by android-build-merger

View File

@@ -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,14 +1684,17 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
mStacks.get(stackBehindTopIndex).topRunningActivityLocked() == null) {
stackBehindTopIndex--;
}
if ((topStackId == DOCKED_STACK_ID || topStackId == PINNED_STACK_ID)
&& stackIndex == stackBehindTopIndex) {
// Stacks directly behind the docked or pinned stack are always visible.
return STACK_VISIBLE;
}
final int stackBehindTopId = (stackBehindTopIndex >= 0)
? mStacks.get(stackBehindTopIndex).mStackId : INVALID_STACK_ID;
if ((topStackId == DOCKED_STACK_ID || topStackId == PINNED_STACK_ID)
&& (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;
}
if (StackId.isBackdropToTranslucentActivity(topStackId)
&& topStack.isStackTranslucent(starting, stackBehindTopId)) {