diff options
3 files changed, 29 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/am/ActivityDisplay.java b/services/core/java/com/android/server/am/ActivityDisplay.java index e38148c7bd42..db21ef1f9b5c 100644 --- a/services/core/java/com/android/server/am/ActivityDisplay.java +++ b/services/core/java/com/android/server/am/ActivityDisplay.java @@ -676,6 +676,15 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack> { } } + public void dumpStacks(PrintWriter pw) { + for (int i = mStacks.size() - 1; i >= 0; --i) { + pw.print(mStacks.get(i).mStackId); + if (i > 0) { + pw.print(","); + } + } + } + public void writeToProto(ProtoOutputStream proto, long fieldId) { final long token = proto.start(fieldId); super.writeToProto(proto, CONFIGURATION_CONTAINER, false /* trim */); diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 48c678ebd0e8..ba3da46f7583 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -21468,6 +21468,17 @@ public class ActivityManagerService extends IActivityManager.Stub private void resizeStackWithBoundsFromWindowManager(int stackId, boolean deferResume) { final Rect newStackBounds = new Rect(); final ActivityStack stack = mStackSupervisor.getStack(stackId); + + // TODO(b/71548119): Revert CL introducing below once cause of mismatch is found. + if (stack == null) { + final StringWriter writer = new StringWriter(); + final PrintWriter printWriter = new PrintWriter(writer); + mStackSupervisor.dumpDisplays(printWriter); + printWriter.flush(); + + Log.wtf(TAG, "stack not found:" + stackId + " displays:" + writer); + } + stack.getBoundsForNewConfiguration(newStackBounds); mStackSupervisor.resizeStackLocked( stack, !newStackBounds.isEmpty() ? newStackBounds : null /* bounds */, diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 8168cba213f5..3d8863ee8c01 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -3752,6 +3752,15 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D } } + public void dumpDisplays(PrintWriter pw) { + for (int i = mActivityDisplays.size() - 1; i >= 0; --i) { + final ActivityDisplay display = mActivityDisplays.valueAt(i); + pw.print("[id:" + display.mDisplayId + " stacks:"); + display.dumpStacks(pw); + pw.print("]"); + } + } + public void dump(PrintWriter pw, String prefix) { pw.print(prefix); pw.print("mFocusedStack=" + mFocusedStack); pw.print(" mLastFocusedStack="); pw.println(mLastFocusedStack); |