summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Matthew Ng <ngmatthew@google.com> 2017-05-04 23:40:58 +0000
committer android-build-merger <android-build-merger@google.com> 2017-05-04 23:40:58 +0000
commitcda41c6bcdb1d0f3da04158e60110b271f42e50c (patch)
tree75cb1d10b9a12e7397d4948e07329aae0563ee3d
parent06b8324d02a593a56a34d34ef93d576c6f0d1402 (diff)
parentb2edabadeee704566917447249888597216c9306 (diff)
Merge "Stack is visible if behind docked which is behind pinned stack (1/2)" into oc-dev
am: b2edabadee Change-Id: I91abd7cfa4889adf289966024aad4d0d2460dbf0
-rw-r--r--services/core/java/com/android/server/am/ActivityStack.java21
1 files changed, 8 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index 912b22c84946..d348224df377 100644
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -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