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

Commit 0a23d822 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Apply proper displayCutout rotation in density 480 dpi and 270 degrees...

Merge "Apply proper displayCutout rotation in density 480 dpi and 270 degrees rotation." into rvc-dev am: 67e09357 am: 1fc1407c am: 04430600

Change-Id: I86ea96028f204bb8f1f6e5ca2c2cafa3afa08f85
parents a2f3dabf 04430600
Loading
Loading
Loading
Loading
+23 −22
Original line number Original line Diff line number Diff line
@@ -375,7 +375,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
     */
     */
    final DisplayMetrics mRealDisplayMetrics = new DisplayMetrics();
    final DisplayMetrics mRealDisplayMetrics = new DisplayMetrics();


    /** @see #computeCompatSmallestWidth(boolean, int, int, int, DisplayCutout) */
    /** @see #computeCompatSmallestWidth(boolean, int, int, int) */
    private final DisplayMetrics mTmpDisplayMetrics = new DisplayMetrics();
    private final DisplayMetrics mTmpDisplayMetrics = new DisplayMetrics();


    /**
    /**
@@ -1814,7 +1814,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo


        final boolean rotated = (rotation == ROTATION_90 || rotation == ROTATION_270);
        final boolean rotated = (rotation == ROTATION_90 || rotation == ROTATION_270);
        outConfig.compatSmallestScreenWidthDp = computeCompatSmallestWidth(rotated, uiMode, dw,
        outConfig.compatSmallestScreenWidthDp = computeCompatSmallestWidth(rotated, uiMode, dw,
                dh, displayCutout);
                dh);
    }
    }


    /**
    /**
@@ -1922,8 +1922,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
        mWmService.mPolicy.adjustConfigurationLw(config, keyboardPresence, navigationPresence);
        mWmService.mPolicy.adjustConfigurationLw(config, keyboardPresence, navigationPresence);
    }
    }


    private int computeCompatSmallestWidth(boolean rotated, int uiMode, int dw, int dh,
    private int computeCompatSmallestWidth(boolean rotated, int uiMode, int dw, int dh) {
            DisplayCutout displayCutout) {
        mTmpDisplayMetrics.setTo(mDisplayMetrics);
        mTmpDisplayMetrics.setTo(mDisplayMetrics);
        final DisplayMetrics tmpDm = mTmpDisplayMetrics;
        final DisplayMetrics tmpDm = mTmpDisplayMetrics;
        final int unrotDw, unrotDh;
        final int unrotDw, unrotDh;
@@ -1934,19 +1933,21 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
            unrotDw = dw;
            unrotDw = dw;
            unrotDh = dh;
            unrotDh = dh;
        }
        }
        int sw = reduceCompatConfigWidthSize(0, Surface.ROTATION_0, uiMode, tmpDm, unrotDw, unrotDh,
        int sw = reduceCompatConfigWidthSize(0, Surface.ROTATION_0, uiMode, tmpDm, unrotDw,
                displayCutout);
                unrotDh);
        sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_90, uiMode, tmpDm, unrotDh, unrotDw,
        sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_90, uiMode, tmpDm, unrotDh,
                displayCutout);
                unrotDw);
        sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_180, uiMode, tmpDm, unrotDw, unrotDh,
        sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_180, uiMode, tmpDm, unrotDw,
                displayCutout);
                unrotDh);
        sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_270, uiMode, tmpDm, unrotDh, unrotDw,
        sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_270, uiMode, tmpDm, unrotDh,
                displayCutout);
                unrotDw);
        return sw;
        return sw;
    }
    }


    private int reduceCompatConfigWidthSize(int curSize, int rotation, int uiMode,
    private int reduceCompatConfigWidthSize(int curSize, int rotation, int uiMode,
            DisplayMetrics dm, int dw, int dh, DisplayCutout displayCutout) {
            DisplayMetrics dm, int dw, int dh) {
        final DisplayCutout displayCutout = calculateDisplayCutoutForRotation(
                rotation).getDisplayCutout();
        dm.noncompatWidthPixels = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode,
        dm.noncompatWidthPixels = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode,
                displayCutout);
                displayCutout);
        dm.noncompatHeightPixels = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode,
        dm.noncompatHeightPixels = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode,
@@ -1987,20 +1988,20 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
            return;
            return;
        }
        }
        int sl = Configuration.resetScreenLayout(outConfig.screenLayout);
        int sl = Configuration.resetScreenLayout(outConfig.screenLayout);
        sl = reduceConfigLayout(sl, Surface.ROTATION_0, density, unrotDw, unrotDh, uiMode,
        sl = reduceConfigLayout(sl, Surface.ROTATION_0, density, unrotDw, unrotDh, uiMode);
                displayInfo.displayCutout);
        sl = reduceConfigLayout(sl, Surface.ROTATION_90, density, unrotDh, unrotDw, uiMode);
        sl = reduceConfigLayout(sl, Surface.ROTATION_90, density, unrotDh, unrotDw, uiMode,
        sl = reduceConfigLayout(sl, Surface.ROTATION_180, density, unrotDw, unrotDh, uiMode);
                displayInfo.displayCutout);
        sl = reduceConfigLayout(sl, Surface.ROTATION_270, density, unrotDh, unrotDw, uiMode);
        sl = reduceConfigLayout(sl, Surface.ROTATION_180, density, unrotDw, unrotDh, uiMode,
                displayInfo.displayCutout);
        sl = reduceConfigLayout(sl, Surface.ROTATION_270, density, unrotDh, unrotDw, uiMode,
                displayInfo.displayCutout);
        outConfig.smallestScreenWidthDp = (int)(displayInfo.smallestNominalAppWidth / density);
        outConfig.smallestScreenWidthDp = (int)(displayInfo.smallestNominalAppWidth / density);
        outConfig.screenLayout = sl;
        outConfig.screenLayout = sl;
    }
    }


    private int reduceConfigLayout(int curLayout, int rotation, float density, int dw, int dh,
    private int reduceConfigLayout(int curLayout, int rotation, float density, int dw, int dh,
            int uiMode, DisplayCutout displayCutout) {
            int uiMode) {
        // Get the display cutout at this rotation.
        final DisplayCutout displayCutout = calculateDisplayCutoutForRotation(
                rotation).getDisplayCutout();

        // Get the app screen size at this rotation.
        // Get the app screen size at this rotation.
        int w = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode, displayCutout);
        int w = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode, displayCutout);
        int h = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode, displayCutout);
        int h = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode, displayCutout);