Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit afd8c2fd authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Dump display area hierarchy

To provide the debug information about if the display area has
override configuration, e.g. set by display area organizer.

Bug: 170361032
Test: adb shell dumpsys window displays
Change-Id: I50e29a80276b08872eb3fe82c9353a5541d1c1fd
parent 5cef13b7
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -157,6 +157,11 @@ public abstract class ConfigurationContainer<E extends ConfigurationContainer> {
        mResolvedOverrideConfiguration.setTo(mRequestedOverrideConfiguration);
    }

    /** Returns {@code true} if requested override override configuration is not empty. */
    boolean hasRequestedOverrideConfiguration() {
        return mHasOverrideConfiguration;
    }

    /** Returns requested override configuration applied to this configuration container. */
    public Configuration getRequestedOverrideConfiguration() {
        return mRequestedOverrideConfiguration;
+20 −0
Original line number Diff line number Diff line
@@ -263,6 +263,26 @@ public class DisplayArea<T extends WindowContainer> extends WindowContainer<T> {
        if (mIgnoreOrientationRequest) {
            pw.println(prefix + "mIgnoreOrientationRequest=true");
        }
        if (hasRequestedOverrideConfiguration()) {
            pw.println(prefix + "overrideConfig=" + getRequestedOverrideConfiguration());
        }
    }

    void dumpChildDisplayArea(PrintWriter pw, String prefix, boolean dumpAll) {
        final String doublePrefix = prefix + "  ";
        for (int i = getChildCount() - 1; i >= 0; i--) {
            final DisplayArea<?> childArea = getChildAt(i).asDisplayArea();
            if (childArea == null) {
                continue;
            }
            pw.println(prefix + "* " + childArea.getName());
            if (childArea.isTaskDisplayArea()) {
                // TaskDisplayArea can only contain task. And it is already printed by display.
                continue;
            }
            childArea.dump(pw, doublePrefix, dumpAll);
            childArea.dumpChildDisplayArea(pw, doublePrefix, dumpAll);
        }
    }

    @Override
+4 −0
Original line number Diff line number Diff line
@@ -2984,6 +2984,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
            pw.println(mSystemGestureExclusion);
        }

        pw.println();
        pw.println(prefix + "Display areas in top down Z order:");
        dumpChildDisplayArea(pw, subPrefix, dumpAll);

        pw.println();
        pw.println(prefix + "Task display areas in top down Z order:");
        forAllTaskDisplayAreas(taskDisplayArea -> {