diff options
3 files changed, 36 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 91f45a7f0ae3..a04513f407b8 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -4259,7 +4259,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { void dumpActivityContainersLocked(PrintWriter pw) { pw.println("ACTIVITY MANAGER CONTAINERS (dumpsys activity containers)"); - mRootWindowContainer.dumpChildrenNames(pw, " "); + mRootWindowContainer.dumpChildrenNames(pw, ""); pw.println(" "); } diff --git a/services/core/java/com/android/server/wm/ConfigurationContainer.java b/services/core/java/com/android/server/wm/ConfigurationContainer.java index 794711262a75..be7c18c49373 100644 --- a/services/core/java/com/android/server/wm/ConfigurationContainer.java +++ b/services/core/java/com/android/server/wm/ConfigurationContainer.java @@ -23,7 +23,9 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; +import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; +import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.app.WindowConfiguration.activityTypeToString; import static android.app.WindowConfiguration.windowingModeToString; import static android.app.WindowConfigurationProto.WINDOWING_MODE; @@ -739,17 +741,43 @@ public abstract class ConfigurationContainer<E extends ConfigurationContainer> { * level with the input prefix. */ public void dumpChildrenNames(PrintWriter pw, String prefix) { - final String childPrefix = prefix + " "; + dumpChildrenNames(pw, prefix, true /* isLastChild */); + } + + /** + * Dumps the names of this container children in the input print writer indenting each + * level with the input prefix. + */ + public void dumpChildrenNames(PrintWriter pw, String prefix, boolean isLastChild) { + int curWinMode = getWindowingMode(); + String winMode = windowingModeToString(curWinMode); + if (curWinMode != WINDOWING_MODE_UNDEFINED && + curWinMode != WINDOWING_MODE_FULLSCREEN) { + winMode = winMode.toUpperCase(); + } + int requestedWinMode = getRequestedOverrideWindowingMode(); + String overrideWinMode = windowingModeToString(requestedWinMode); + if (requestedWinMode != WINDOWING_MODE_UNDEFINED && + requestedWinMode != WINDOWING_MODE_FULLSCREEN) { + overrideWinMode = overrideWinMode.toUpperCase(); + } + String actType = activityTypeToString(getActivityType()); + if (getActivityType() != ACTIVITY_TYPE_UNDEFINED + && getActivityType() != ACTIVITY_TYPE_STANDARD) { + actType = actType.toUpperCase(); + } + pw.print(prefix + (isLastChild ? "└─ " : "├─ ")); pw.println(getName() - + " type=" + activityTypeToString(getActivityType()) - + " mode=" + windowingModeToString(getWindowingMode()) - + " override-mode=" + windowingModeToString(getRequestedOverrideWindowingMode()) + + " type=" + actType + + " mode=" + winMode + + " override-mode=" + overrideWinMode + " requested-bounds=" + getRequestedOverrideBounds().toShortString() + " bounds=" + getBounds().toShortString()); + + String childPrefix = prefix + (isLastChild ? " " : "│ "); for (int i = getChildCount() - 1; i >= 0; --i) { final E cc = getChildAt(i); - pw.print(childPrefix + "#" + i + " "); - cc.dumpChildrenNames(pw, childPrefix); + cc.dumpChildrenNames(pw, childPrefix, i == 0 /* isLastChild */); } } diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 0d2c94d103fb..72632dce2507 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -7076,7 +7076,7 @@ public class WindowManagerService extends IWindowManager.Stub return; } else if ("containers".equals(cmd)) { synchronized (mGlobalLock) { - mRoot.dumpChildrenNames(pw, " "); + mRoot.dumpChildrenNames(pw, ""); pw.println(" "); mRoot.forAllWindows(w -> {pw.println(w);}, true /* traverseTopToBottom */); } |