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

Commit 7c077e50 authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Remove deprecated mNonDecorFrame and mConfigFrame" into main

parents f141a507 3a25078f
Loading
Loading
Loading
Loading
+20 −38
Original line number Original line Diff line number Diff line
@@ -2355,15 +2355,14 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        final RoundedCorners roundedCorners = calculateRoundedCornersForRotation(rotation);
        final RoundedCorners roundedCorners = calculateRoundedCornersForRotation(rotation);
        final DisplayShape displayShape = calculateDisplayShapeForRotation(rotation);
        final DisplayShape displayShape = calculateDisplayShapeForRotation(rotation);


        final Rect appFrame = mDisplayPolicy.getDecorInsetsInfo(rotation, dw, dh).mNonDecorFrame;
        mDisplayInfo.rotation = rotation;
        mDisplayInfo.rotation = rotation;
        mDisplayInfo.logicalWidth = dw;
        mDisplayInfo.logicalWidth = dw;
        mDisplayInfo.logicalHeight = dh;
        mDisplayInfo.logicalHeight = dh;
        mDisplayInfo.logicalDensityDpi = mBaseDisplayDensity;
        mDisplayInfo.logicalDensityDpi = mBaseDisplayDensity;
        mDisplayInfo.physicalXDpi = mBaseDisplayPhysicalXDpi;
        mDisplayInfo.physicalXDpi = mBaseDisplayPhysicalXDpi;
        mDisplayInfo.physicalYDpi = mBaseDisplayPhysicalYDpi;
        mDisplayInfo.physicalYDpi = mBaseDisplayPhysicalYDpi;
        mDisplayInfo.appWidth = appFrame.width();
        mDisplayInfo.appWidth = dw;
        mDisplayInfo.appHeight = appFrame.height();
        mDisplayInfo.appHeight = dh;
        if (isDefaultDisplay) {
        if (isDefaultDisplay) {
            mDisplayInfo.getLogicalMetrics(mRealDisplayMetrics,
            mDisplayInfo.getLogicalMetrics(mRealDisplayMetrics,
                    CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO, null);
                    CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO, null);
@@ -2523,15 +2522,13 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
    /** Compute configuration related to application without changing current display. */
    /** Compute configuration related to application without changing current display. */
    private void computeScreenAppConfiguration(Configuration outConfig, int dw, int dh,
    private void computeScreenAppConfiguration(Configuration outConfig, int dw, int dh,
            int rotation) {
            int rotation) {
        final DisplayPolicy.DecorInsets.Info info =
                mDisplayPolicy.getDecorInsetsInfo(rotation, dw, dh);
        // AppBounds at the root level should mirror the app screen size.
        // AppBounds at the root level should mirror the app screen size.
        outConfig.windowConfiguration.setAppBounds(info.mNonDecorFrame);
        outConfig.windowConfiguration.setAppBounds(0, 0, dw, dh);
        outConfig.windowConfiguration.setRotation(rotation);
        outConfig.windowConfiguration.setRotation(rotation);


        final float density = mDisplayMetrics.density;
        final float density = mDisplayMetrics.density;
        outConfig.screenWidthDp = (int) (info.mConfigFrame.width() / density + 0.5f);
        outConfig.screenWidthDp = (int) (dw / density + 0.5f);
        outConfig.screenHeightDp = (int) (info.mConfigFrame.height() / density + 0.5f);
        outConfig.screenHeightDp = (int) (dh / density + 0.5f);
        outConfig.compatScreenWidthDp = (int) (outConfig.screenWidthDp / mCompatibleScreenScale);
        outConfig.compatScreenWidthDp = (int) (outConfig.screenWidthDp / mCompatibleScreenScale);
        outConfig.compatScreenHeightDp = (int) (outConfig.screenHeightDp / mCompatibleScreenScale);
        outConfig.compatScreenHeightDp = (int) (outConfig.screenHeightDp / mCompatibleScreenScale);
        outConfig.orientation = (outConfig.screenWidthDp <= outConfig.screenHeightDp)
        outConfig.orientation = (outConfig.screenWidthDp <= outConfig.screenHeightDp)
@@ -2660,19 +2657,14 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
            unrotDw = dw;
            unrotDw = dw;
            unrotDh = dh;
            unrotDh = dh;
        }
        }
        int sw = reduceCompatConfigWidthSize(0, Surface.ROTATION_0, tmpDm, unrotDw, unrotDh);
        int sw = reduceCompatConfigWidthSize(0, tmpDm, unrotDw, unrotDh);
        sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_90, tmpDm, unrotDh, unrotDw);
        sw = reduceCompatConfigWidthSize(sw, tmpDm, unrotDh, unrotDw);
        sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_180, tmpDm, unrotDw, unrotDh);
        sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_270, tmpDm, unrotDh, unrotDw);
        return sw;
        return sw;
    }
    }


    private int reduceCompatConfigWidthSize(int curSize, int rotation,
    private int reduceCompatConfigWidthSize(int curSize, DisplayMetrics dm, int dw, int dh) {
            DisplayMetrics dm, int dw, int dh) {
        dm.noncompatWidthPixels = dw;
        final Rect nonDecorSize =
        dm.noncompatHeightPixels = dh;
                mDisplayPolicy.getDecorInsetsInfo(rotation, dw, dh).mNonDecorFrame;
        dm.noncompatWidthPixels = nonDecorSize.width();
        dm.noncompatHeightPixels = nonDecorSize.height();
        float scale = CompatibilityInfo.computeCompatibleScaling(dm, null);
        float scale = CompatibilityInfo.computeCompatibleScaling(dm, null);
        int size = (int)(((dm.noncompatWidthPixels / scale) / dm.density) + .5f);
        int size = (int)(((dm.noncompatWidthPixels / scale) / dm.density) + .5f);
        if (curSize == 0 || size < curSize) {
        if (curSize == 0 || size < curSize) {
@@ -2714,10 +2706,14 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        displayInfo.largestNominalAppHeight = 0;
        displayInfo.largestNominalAppHeight = 0;
        adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_0, unrotDw, unrotDh, overrideConfig);
        adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_0, unrotDw, unrotDh, overrideConfig);
        adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_90, unrotDh, unrotDw, overrideConfig);
        adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_90, unrotDh, unrotDw, overrideConfig);
        // Override configuration excludes decor insets, so it needs to compute all rotations.
        // Otherwise, only computes for portrait and landscape based on display size.
        if (overrideConfig) {
            adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_180, unrotDw, unrotDh,
            adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_180, unrotDw, unrotDh,
                overrideConfig);
                    true /* overrideConfig */);
            adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_270, unrotDh, unrotDw,
            adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_270, unrotDh, unrotDw,
                overrideConfig);
                    true /* overrideConfig */);
        }


        if (outConfig == null) {
        if (outConfig == null) {
            return;
            return;
@@ -2733,8 +2729,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        final int w;
        final int w;
        final int h;
        final int h;
        if (!overrideConfig) {
        if (!overrideConfig) {
            w = info.mConfigFrame.width();
            w = dw;
            h = info.mConfigFrame.height();
            h = dh;
        } else {
        } else {
            w = info.mOverrideConfigFrame.width();
            w = info.mOverrideConfigFrame.width();
            h = info.mOverrideConfigFrame.height();
            h = info.mOverrideConfigFrame.height();
@@ -5247,20 +5243,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
                ? ORIENTATION_PORTRAIT : ORIENTATION_LANDSCAPE;
                ? ORIENTATION_PORTRAIT : ORIENTATION_LANDSCAPE;
    }
    }


    /**
     * Returns the orientation which is used for app's Configuration (excluding decor insets) when
     * the display rotation is ROTATION_0.
     */
    int getNaturalConfigurationOrientation() {
        final Configuration config = getConfiguration();
        if (config.windowConfiguration.getDisplayRotation() == ROTATION_0) {
            return config.orientation;
        }
        final Rect frame = mDisplayPolicy.getDecorInsetsInfo(
                ROTATION_0, mBaseDisplayWidth, mBaseDisplayHeight).mConfigFrame;
        return frame.width() <= frame.height() ? ORIENTATION_PORTRAIT : ORIENTATION_LANDSCAPE;
    }

    void performLayout(boolean initial, boolean updateInputWindows) {
    void performLayout(boolean initial, boolean updateInputWindows) {
        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "performLayout");
        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "performLayout");
        try {
        try {
+7 −23
Original line number Original line Diff line number Diff line
@@ -2045,7 +2045,6 @@ public class DisplayPolicy {
        static class Info {
        static class Info {
            // TODO(b/409608996):
            // TODO(b/409608996):
            //  Remove mNonDecorInsets, mConfigInsets -> always empty
            //  Remove mNonDecorInsets, mConfigInsets -> always empty
            //  Remove mNonDecorFrame, mConfigFrame -> always the same as display frame
            /**
            /**
             * The insets for the areas that could never be removed, i.e. display cutout and
             * The insets for the areas that could never be removed, i.e. display cutout and
             * navigation bar. Note that its meaning is actually "decor insets". The "non" is just
             * navigation bar. Note that its meaning is actually "decor insets". The "non" is just
@@ -2069,23 +2068,16 @@ public class DisplayPolicy {
             */
             */
            final Rect mOverrideNonDecorInsets = new Rect();
            final Rect mOverrideNonDecorInsets = new Rect();


            /** The display frame available after excluding {@link #mNonDecorInsets}. */
            final Rect mNonDecorFrame = new Rect();

            /**
            /**
             * The available (stable) screen size that we should report for the configuration.
             * Override available (stable) screen size for app compatibility purpose.
             * This must be no larger than {@link #mNonDecorFrame}; it may be smaller than that
             * This must be no larger than {@link #mOverrideNonDecorFrame}; it may be smaller than
             * to account for more transient decoration like a status bar.
             * that to account for more transient decoration like a status bar.
             */
            final Rect mConfigFrame = new Rect();

            /**
             * Override value of mConfigFrame for app compatibility purpose.
             */
             */
            final Rect mOverrideConfigFrame = new Rect();
            final Rect mOverrideConfigFrame = new Rect();


            /**
            /**
             * Override value of mNonDecorFrame for app compatibility purpose.
             * Override display frame which excludes {@link #mOverrideNonDecorInsets} for app
             * compatibility purpose.
             */
             */
            final Rect mOverrideNonDecorFrame = new Rect();
            final Rect mOverrideNonDecorFrame = new Rect();


@@ -2107,8 +2099,6 @@ public class DisplayPolicy {
                        overrideConfigInsets.right, overrideConfigInsets.bottom);
                        overrideConfigInsets.right, overrideConfigInsets.bottom);
                mOverrideNonDecorInsets.set(overrideDecorInsets.left, overrideDecorInsets.top,
                mOverrideNonDecorInsets.set(overrideDecorInsets.left, overrideDecorInsets.top,
                        overrideDecorInsets.right, overrideDecorInsets.bottom);
                        overrideDecorInsets.right, overrideDecorInsets.bottom);
                mNonDecorFrame.set(displayFrame);
                mConfigFrame.set(displayFrame);
                mOverrideConfigFrame.set(displayFrame);
                mOverrideConfigFrame.set(displayFrame);
                mOverrideConfigFrame.inset(mOverrideConfigInsets);
                mOverrideConfigFrame.inset(mOverrideConfigInsets);
                mOverrideNonDecorFrame.set(displayFrame);
                mOverrideNonDecorFrame.set(displayFrame);
@@ -2121,8 +2111,6 @@ public class DisplayPolicy {
                mConfigInsets.set(other.mConfigInsets);
                mConfigInsets.set(other.mConfigInsets);
                mOverrideConfigInsets.set(other.mOverrideConfigInsets);
                mOverrideConfigInsets.set(other.mOverrideConfigInsets);
                mOverrideNonDecorInsets.set(other.mOverrideNonDecorInsets);
                mOverrideNonDecorInsets.set(other.mOverrideNonDecorInsets);
                mNonDecorFrame.set(other.mNonDecorFrame);
                mConfigFrame.set(other.mConfigFrame);
                mOverrideConfigFrame.set(other.mOverrideConfigFrame);
                mOverrideConfigFrame.set(other.mOverrideConfigFrame);
                mOverrideNonDecorFrame.set(other.mOverrideNonDecorFrame);
                mOverrideNonDecorFrame.set(other.mOverrideNonDecorFrame);
                mNeedUpdate = false;
                mNeedUpdate = false;
@@ -2135,9 +2123,7 @@ public class DisplayPolicy {
                        + ", overrideNonDecorInsets=" + mOverrideNonDecorInsets.toShortString(tmpSb)
                        + ", overrideNonDecorInsets=" + mOverrideNonDecorInsets.toShortString(tmpSb)
                        + ", configInsets=" + mConfigInsets.toShortString(tmpSb)
                        + ", configInsets=" + mConfigInsets.toShortString(tmpSb)
                        + ", overrideConfigInsets=" + mOverrideConfigInsets.toShortString(tmpSb)
                        + ", overrideConfigInsets=" + mOverrideConfigInsets.toShortString(tmpSb)
                        + ", nonDecorFrame=" + mNonDecorFrame.toShortString(tmpSb)
                        + ", overrideNonDecorFrame=" + mOverrideNonDecorFrame.toShortString(tmpSb)
                        + ", overrideNonDecorFrame=" + mOverrideNonDecorFrame.toShortString(tmpSb)
                        + ", configFrame=" + mConfigFrame.toShortString(tmpSb)
                        + ", overrideConfigFrame=" + mOverrideConfigFrame.toShortString(tmpSb)
                        + ", overrideConfigFrame=" + mOverrideConfigFrame.toShortString(tmpSb)
                        + '}';
                        + '}';
            }
            }
@@ -2240,9 +2226,7 @@ public class DisplayPolicy {
        final DecorInsets.Info newInfo = mDecorInsets.mTmpInfo;
        final DecorInsets.Info newInfo = mDecorInsets.mTmpInfo;
        newInfo.update(mDisplayContent, rotation, dw, dh);
        newInfo.update(mDisplayContent, rotation, dw, dh);
        final DecorInsets.Info currentInfo = getDecorInsetsInfo(rotation, dw, dh);
        final DecorInsets.Info currentInfo = getDecorInsetsInfo(rotation, dw, dh);
        final boolean sameConfigFrame = newInfo.mConfigFrame.equals(currentInfo.mConfigFrame);
        if (newInfo.mOverrideConfigFrame.equals(currentInfo.mOverrideConfigFrame)) {
        if (sameConfigFrame
                && newInfo.mOverrideConfigFrame.equals(currentInfo.mOverrideConfigFrame)) {
            return false;
            return false;
        }
        }
        if (mCachedDecorInsets != null && !mCachedDecorInsets.canPreserve() && mScreenOnFully) {
        if (mCachedDecorInsets != null && !mCachedDecorInsets.canPreserve() && mScreenOnFully) {
@@ -2255,7 +2239,7 @@ public class DisplayPolicy {
            // clients receive the new states earlier.
            // clients receive the new states earlier.
            return true;
            return true;
        }
        }
        return !sameConfigFrame;
        return false;
    }
    }


    DecorInsets.Info getDecorInsetsInfo(int rotation, int w, int h) {
    DecorInsets.Info getDecorInsetsInfo(int rotation, int w, int h) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -1462,7 +1462,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
        if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_NOSENSOR) {
        if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_NOSENSOR) {
            // NOSENSOR means the display's "natural" orientation, so return that.
            // NOSENSOR means the display's "natural" orientation, so return that.
            if (mDisplayContent != null) {
            if (mDisplayContent != null) {
                return mDisplayContent.getNaturalConfigurationOrientation();
                return mDisplayContent.getNaturalOrientation();
            }
            }
        } else if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_LOCKED) {
        } else if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_LOCKED) {
            // LOCKED means the activity's orientation remains unchanged, so return existing value.
            // LOCKED means the activity's orientation remains unchanged, so return existing value.
+2 −7
Original line number Original line Diff line number Diff line
@@ -990,16 +990,11 @@ public class DisplayContentTests extends WindowTestsBase {
                "Screen orientation must be defined by the window even on close-to-square display.",
                "Screen orientation must be defined by the window even on close-to-square display.",
                overlay.mAttrs.screenOrientation, dc.getOrientation());
                overlay.mAttrs.screenOrientation, dc.getOrientation());


        // Assume that a decor window occupies the display height, so the configuration orientation
        // should be landscape.
        dc.getDisplayPolicy().getDecorInsetsInfo(ROTATION_0, dc.mBaseDisplayHeight,
                dc.mBaseDisplayWidth).mConfigFrame.set(0, 0, 1000, 990);
        dc.computeScreenConfiguration(config, ROTATION_0);
        dc.computeScreenConfiguration(config, ROTATION_0);
        dc.onRequestedOverrideConfigurationChanged(config);
        dc.onRequestedOverrideConfigurationChanged(config);
        assertEquals(Configuration.ORIENTATION_LANDSCAPE, config.orientation);
        assertEquals(Configuration.ORIENTATION_PORTRAIT, config.orientation);
        assertEquals(Configuration.ORIENTATION_LANDSCAPE, dc.getNaturalConfigurationOrientation());
        overlay.setOverrideOrientation(SCREEN_ORIENTATION_NOSENSOR);
        overlay.setOverrideOrientation(SCREEN_ORIENTATION_NOSENSOR);
        assertEquals(Configuration.ORIENTATION_LANDSCAPE,
        assertEquals(Configuration.ORIENTATION_PORTRAIT,
                overlay.getRequestedConfigurationOrientation());
                overlay.getRequestedConfigurationOrientation());
        // Note that getNaturalOrientation is based on logical display size. So it is portrait if
        // Note that getNaturalOrientation is based on logical display size. So it is portrait if
        // the display width equals to height.
        // the display width equals to height.
+0 −17
Original line number Original line Diff line number Diff line
@@ -50,7 +50,6 @@ public class DisplayPolicyInsetsTests extends DisplayPolicyTestsBase {


        verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
        verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
        verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT);
        verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT);
        verifyConsistency(di);
    }
    }


    @Test
    @Test
@@ -59,7 +58,6 @@ public class DisplayPolicyInsetsTests extends DisplayPolicyTestsBase {


        verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
        verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
        verifyNonDecorInsets(di, 0, DISPLAY_CUTOUT_HEIGHT, 0, NAV_BAR_HEIGHT);
        verifyNonDecorInsets(di, 0, DISPLAY_CUTOUT_HEIGHT, 0, NAV_BAR_HEIGHT);
        verifyConsistency(di);
    }
    }


    @Test
    @Test
@@ -74,7 +72,6 @@ public class DisplayPolicyInsetsTests extends DisplayPolicyTestsBase {
            verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
            verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
            verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT);
            verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT);
        }
        }
        verifyConsistency(di);
    }
    }


    @Test
    @Test
@@ -89,7 +86,6 @@ public class DisplayPolicyInsetsTests extends DisplayPolicyTestsBase {
            verifyStableInsets(di, DISPLAY_CUTOUT_HEIGHT, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
            verifyStableInsets(di, DISPLAY_CUTOUT_HEIGHT, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
            verifyNonDecorInsets(di, DISPLAY_CUTOUT_HEIGHT, 0, 0, NAV_BAR_HEIGHT);
            verifyNonDecorInsets(di, DISPLAY_CUTOUT_HEIGHT, 0, 0, NAV_BAR_HEIGHT);
        }
        }
        verifyConsistency(di);
    }
    }


    @Test
    @Test
@@ -104,7 +100,6 @@ public class DisplayPolicyInsetsTests extends DisplayPolicyTestsBase {
            verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
            verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
            verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT);
            verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT);
        }
        }
        verifyConsistency(di);
    }
    }


    @Test
    @Test
@@ -119,7 +114,6 @@ public class DisplayPolicyInsetsTests extends DisplayPolicyTestsBase {
            verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, DISPLAY_CUTOUT_HEIGHT, NAV_BAR_HEIGHT);
            verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, DISPLAY_CUTOUT_HEIGHT, NAV_BAR_HEIGHT);
            verifyNonDecorInsets(di, 0, 0, DISPLAY_CUTOUT_HEIGHT, NAV_BAR_HEIGHT);
            verifyNonDecorInsets(di, 0, 0, DISPLAY_CUTOUT_HEIGHT, NAV_BAR_HEIGHT);
        }
        }
        verifyConsistency(di);
    }
    }


    @Test
    @Test
@@ -128,7 +122,6 @@ public class DisplayPolicyInsetsTests extends DisplayPolicyTestsBase {


        verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
        verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
        verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT);
        verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT);
        verifyConsistency(di);
    }
    }


    @Test
    @Test
@@ -137,7 +130,6 @@ public class DisplayPolicyInsetsTests extends DisplayPolicyTestsBase {


        verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT + DISPLAY_CUTOUT_HEIGHT);
        verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT + DISPLAY_CUTOUT_HEIGHT);
        verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT + DISPLAY_CUTOUT_HEIGHT);
        verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT + DISPLAY_CUTOUT_HEIGHT);
        verifyConsistency(di);
    }
    }


    private void verifyStableInsets(DisplayInfo di, int left, int top,
    private void verifyStableInsets(DisplayInfo di, int left, int top,
@@ -152,15 +144,6 @@ public class DisplayPolicyInsetsTests extends DisplayPolicyTestsBase {
                getOverrideNonDecorInsets(di), equalTo(new Rect(left, top, right, bottom)));
                getOverrideNonDecorInsets(di), equalTo(new Rect(left, top, right, bottom)));
    }
    }


    private void verifyConsistency(DisplayInfo  di) {
        final DisplayPolicy.DecorInsets.Info info = mDisplayPolicy.getDecorInsetsInfo(
                di.rotation, di.logicalWidth, di.logicalHeight);
        verifyConsistency("configDisplay", di, info.mConfigInsets,
                info.mConfigFrame.width(), info.mConfigFrame.height());
        verifyConsistency("nonDecorDisplay", di, info.mNonDecorInsets,
                info.mNonDecorFrame.width(), info.mNonDecorFrame.height());
    }

    private void verifyConsistency(String what, DisplayInfo di, Rect insets, int width,
    private void verifyConsistency(String what, DisplayInfo di, Rect insets, int width,
            int height) {
            int height) {
        mErrorCollector.checkThat(what + ":width", width,
        mErrorCollector.checkThat(what + ":width", width,
Loading