If pinned stack is focused, look for the one below for logging.
Bug: 26230638
Change-Id: Ibe0b993286c4669e0f565bd2d4af6077553a29e2
diff --git a/services/core/java/com/android/server/am/ActivityMetricsLogger.java b/services/core/java/com/android/server/am/ActivityMetricsLogger.java
index 64f423c..9680382 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.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 @@
}
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;
}
- 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);
- }
+ mWindowState = WINDOW_STATE_INVALID;
+ stack = mSupervisor.getFocusedStack();
+ if (stack.mStackId == PINNED_STACK_ID) {
+ stack = mSupervisor.findStackBehind(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);
}
}
}