Merge "Stack is visible if behind docked which is behind pinned stack (1/2)" into oc-dev
am: b2edabadee
Change-Id: I91abd7cfa4889adf289966024aad4d0d2460dbf0
This commit is contained in:
@@ -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,14 +1684,17 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
|
|||||||
mStacks.get(stackBehindTopIndex).topRunningActivityLocked() == null) {
|
mStacks.get(stackBehindTopIndex).topRunningActivityLocked() == null) {
|
||||||
stackBehindTopIndex--;
|
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)
|
final int stackBehindTopId = (stackBehindTopIndex >= 0)
|
||||||
? mStacks.get(stackBehindTopIndex).mStackId : INVALID_STACK_ID;
|
? 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)
|
if (StackId.isBackdropToTranslucentActivity(topStackId)
|
||||||
&& topStack.isStackTranslucent(starting, stackBehindTopId)) {
|
&& topStack.isStackTranslucent(starting, stackBehindTopId)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user