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

Commit 3a9911d3 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Dump KeepClearAreas from existing data structure" into main

parents 8741aa9c 115b979f
Loading
Loading
Loading
Loading
+16 −16
Original line number Diff line number Diff line
@@ -506,8 +506,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
    private final Rect mSystemGestureFrameLeft = new Rect();
    private final Rect mSystemGestureFrameRight = new Rect();

    private Set<Rect> mRestrictedKeepClearAreas = new ArraySet<>();
    private Set<Rect> mUnrestrictedKeepClearAreas = new ArraySet<>();
    @VisibleForTesting
    Set<Rect> mRestrictedKeepClearAreas = new ArraySet<>();
    @VisibleForTesting
    Set<Rect> mUnrestrictedKeepClearAreas = new ArraySet<>();

    /**
     * For default display it contains real metrics, empty for others.
@@ -3702,7 +3704,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
            mInsetsStateController.dumpDebug(proto, logLevel);
        }
        proto.write(IME_POLICY, getImePolicy());
        for (Rect r : getKeepClearAreas()) {
        for (Rect r : mRestrictedKeepClearAreas) {
            r.dumpDebug(proto, KEEP_CLEAR_AREAS);
        }
        for (Rect r : mUnrestrictedKeepClearAreas) {
            r.dumpDebug(proto, KEEP_CLEAR_AREAS);
        }
        proto.end(token);
@@ -3784,11 +3789,15 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
            pw.println(mSystemGestureExclusion);
        }

        final Set<Rect> keepClearAreas = getKeepClearAreas();
        if (!keepClearAreas.isEmpty()) {
        if (!mRestrictedKeepClearAreas.isEmpty()) {
            pw.println();
            pw.print("  restrictedKeepClearAreas=");
            pw.println(mRestrictedKeepClearAreas);
        }
        if (!mUnrestrictedKeepClearAreas.isEmpty()) {
            pw.println();
            pw.print("  keepClearAreas=");
            pw.println(keepClearAreas);
            pw.print("  unrestrictedKeepClearAreas=");
            pw.println(mUnrestrictedKeepClearAreas);
        }

        pw.println();
@@ -6130,15 +6139,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        }, true);
    }

    /**
     * Returns all keep-clear areas from visible, relevant windows on this display.
     */
    Set<Rect> getKeepClearAreas() {
        final Set<Rect> keepClearAreas = new ArraySet<>();
        getKeepClearAreas(keepClearAreas, keepClearAreas);
        return keepClearAreas;
    }

    protected MetricsLogger getMetricsLogger() {
        if (mMetricsLogger == null) {
            mMetricsLogger = new MetricsLogger();
+6 −3
Original line number Diff line number Diff line
@@ -2743,19 +2743,22 @@ public class DisplayContentTests extends WindowTestsBase {
        final var keyguardWin = newWindowBuilder("keyguardWin", TYPE_NOTIFICATION_SHADE).build();
        final Rect rect2 = new Rect(10, 10, 20, 20);
        keyguardWin.setKeepClearAreas(List.of(rect2), Collections.emptyList());
        mDisplayContent.updateKeepClearAreas();

        // No keep clear areas on display, because the windows are not visible
        assertEquals(Collections.emptySet(), mDisplayContent.getKeepClearAreas());
        assertEquals(Collections.emptySet(), mDisplayContent.mRestrictedKeepClearAreas);

        makeWindowVisible(navBarWin);
        mDisplayContent.updateKeepClearAreas();

        // The returned keep-clear areas contain the areas just from the visible window
        assertEquals(Set.of(rect1), mDisplayContent.getKeepClearAreas());
        assertEquals(Set.of(rect1), mDisplayContent.mRestrictedKeepClearAreas);

        makeWindowVisible(navBarWin, keyguardWin);
        mDisplayContent.updateKeepClearAreas();

        // The returned keep-clear areas contain the areas from all visible windows
        assertEquals(Set.of(rect1, rect2), mDisplayContent.getKeepClearAreas());
        assertEquals(Set.of(rect1, rect2), mDisplayContent.mRestrictedKeepClearAreas);
    }

    @Test