summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Filip Gruszczynski <gruszczy@google.com> 2015-12-16 14:40:04 -0800
committer Filip Gruszczynski <gruszczy@google.com> 2015-12-16 14:40:04 -0800
commitcaae14e478e115d01f9b32890cb31231575e65dd (patch)
treec7971a02d09309d3c3c136b80b54f5966ebf6a11
parentb1a523b458b260059cbf8d765ed73c56f4277986 (diff)
If pinned stack is focused, look for the one below for logging.
Bug: 26230638 Change-Id: Ibe0b993286c4669e0f565bd2d4af6077553a29e2
-rw-r--r--services/core/java/com/android/server/am/ActivityMetricsLogger.java31
-rw-r--r--services/core/java/com/android/server/am/ActivityStackSupervisor.java15
2 files changed, 32 insertions, 14 deletions
diff --git a/services/core/java/com/android/server/am/ActivityMetricsLogger.java b/services/core/java/com/android/server/am/ActivityMetricsLogger.java
index 64f423c32f05..9680382e922d 100644
--- a/services/core/java/com/android/server/am/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/am/ActivityMetricsLogger.java
@@ -4,6 +4,7 @@ import static android.app.ActivityManager.StackId.DOCKED_STACK_ID;
import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID;
import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID;
import static android.app.ActivityManager.StackId.HOME_STACK_ID;
+import static android.app.ActivityManager.StackId.PINNED_STACK_ID;
import android.app.ActivityManager.StackId;
import android.content.Context;
@@ -49,24 +50,26 @@ class ActivityMetricsLogger {
}
mLastLogTimeSecs = now;
- mWindowState = WINDOW_STATE_INVALID;
ActivityStack stack = mSupervisor.getStack(DOCKED_STACK_ID);
if (stack != null && stack.isStackVisibleLocked()) {
mWindowState = WINDOW_STATE_SIDE_BY_SIDE;
+ return;
+ }
+ mWindowState = WINDOW_STATE_INVALID;
+ stack = mSupervisor.getFocusedStack();
+ if (stack.mStackId == PINNED_STACK_ID) {
+ stack = mSupervisor.findStackBehind(stack);
}
- if (mWindowState == WINDOW_STATE_INVALID) {
- stack = mSupervisor.getFocusedStack();
- if (stack.mStackId == HOME_STACK_ID
- || stack.mStackId == FULLSCREEN_WORKSPACE_STACK_ID) {
- mWindowState = WINDOW_STATE_STANDARD;
- } else if (stack.mStackId == DOCKED_STACK_ID) {
- throw new IllegalStateException("Docked stack shouldn't be the focused stack, "
- + "because it reported not being visible.");
- } else if (stack.mStackId == FREEFORM_WORKSPACE_STACK_ID) {
- mWindowState = WINDOW_STATE_FREEFORM;
- } else if (StackId.isStaticStack(stack.mStackId)) {
- throw new IllegalStateException("Unknown stack=" + stack);
- }
+ if (stack.mStackId == HOME_STACK_ID
+ || stack.mStackId == FULLSCREEN_WORKSPACE_STACK_ID) {
+ mWindowState = WINDOW_STATE_STANDARD;
+ } else if (stack.mStackId == DOCKED_STACK_ID) {
+ throw new IllegalStateException("Docked stack shouldn't be the focused stack, "
+ + "because it reported not being visible.");
+ } else if (stack.mStackId == FREEFORM_WORKSPACE_STACK_ID) {
+ mWindowState = WINDOW_STATE_FREEFORM;
+ } else if (StackId.isStaticStack(stack.mStackId)) {
+ throw new IllegalStateException("Unknown stack=" + stack);
}
}
}
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 9117806257f0..b8f2391d4edf 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -5293,4 +5293,19 @@ public final class ActivityStackSupervisor implements DisplayListener {
}
}
+ ActivityStack findStackBehind(ActivityStack stack) {
+ // TODO(multi-display): We are only looking for stacks on the default display.
+ final ActivityDisplay display = mActivityDisplays.get(Display.DEFAULT_DISPLAY);
+ if (display == null) {
+ return null;
+ }
+ final ArrayList<ActivityStack> stacks = display.mStacks;
+ for (int i = stacks.size() - 1; i >= 0; i--) {
+ if (stacks.get(i) == stack && i > 0) {
+ return stacks.get(i - 1);
+ }
+ }
+ throw new IllegalStateException("Failed to find a stack behind stack=" + stack
+ + " in=" + stacks);
+ }
}