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

Commit e82d20c3 authored by Marin Shalamanov's avatar Marin Shalamanov
Browse files

Keep display density constant

Currently Android assumes that display density is constant for
all display modes (and displays), however applying config_maxUiWidth
recalculates the density, which makes ro.sf.lcd_density impossible
to adjust on devices which can be connected to different displays.

Test: build and flash
Bug: 159310126
Bug: 156100799
Change-Id: I2dbee9f54f46c7b8b1857b2d8d8dc3b90585faa2
parent 910f8cf9
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -2417,13 +2417,11 @@ class DisplayContent extends DisplayArea.Root implements WindowManagerPolicy.Dis

        if (mMaxUiWidth > 0 && mBaseDisplayWidth > mMaxUiWidth) {
            mBaseDisplayHeight = (mMaxUiWidth * mBaseDisplayHeight) / mBaseDisplayWidth;
            mBaseDisplayDensity = (mMaxUiWidth * mBaseDisplayDensity) / mBaseDisplayWidth;
            mBaseDisplayWidth = mMaxUiWidth;

            if (DEBUG_DISPLAY) {
                Slog.v(TAG_WM, "Applying config restraints:" + mBaseDisplayWidth + "x"
                        + mBaseDisplayHeight + " at density:" + mBaseDisplayDensity
                        + " on display:" + getDisplayId());
                        + mBaseDisplayHeight + " on display:" + getDisplayId());
            }
        }

+1 −1
Original line number Diff line number Diff line
@@ -527,7 +527,7 @@ public class DisplayContentTests extends WindowTestsBase {

        final int maxWidth = 300;
        final int resultingHeight = (maxWidth * baseHeight) / baseWidth;
        final int resultingDensity = (maxWidth * baseDensity) / baseWidth;
        final int resultingDensity = baseDensity;

        displayContent.setMaxUiWidth(maxWidth);
        verifySizes(displayContent, maxWidth, resultingHeight, resultingDensity);