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

Commit b1cdb648 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 4565 into donut

* changes:
  Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density
parents 7153739a 2a578ae5
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -37,8 +37,7 @@ public class DisplayMetrics {
     * The device's density.
     * @hide
     */
    public static final int DEVICE_DENSITY = SystemProperties.getInt("ro.sf.lcd_density",
            DEFAULT_DENSITY);
    public static final int DEVICE_DENSITY = getDeviceDensity();

    /**
     * The absolute width of the display in pixels.
@@ -161,4 +160,13 @@ public class DisplayMetrics {
            ", height=" + heightPixels + ", scaledDensity=" + scaledDensity +
            ", xdpi=" + xdpi + ", ydpi=" + ydpi + "}";
    }

    private static int getDeviceDensity() {
        // qemu.sf.lcd_density can be used to override ro.sf.lcd_density
        // when running in the emulator, allowing for dynamic configurations.
        // The reason for this is that ro.sf.lcd_density is write-once and is
        // set by the init process when it parses build.prop before anything else.
        return SystemProperties.getInt("qemu.sf.lcd_density",
                SystemProperties.getInt("ro.sf.lcd_density", DEFAULT_DENSITY));
    }
}
+8 −0
Original line number Diff line number Diff line
@@ -193,6 +193,14 @@ void DisplayHardware::init(uint32_t dpy)
        LOGW("ro.sf.lcd_density not defined, using 160 dpi by default.");
        strcpy(property, "160");
    }

    /* Override the property value if qemu.sf.lcd_density is defined. */
    {
        char  qemu_property[PROPERTY_VALUE_MAX];
        if (property_get("qemu.sf.lcd_density", qemu_property, NULL) > 0) {
            strlcpy(property, qemu_property, sizeof property);
        }
    }
    mDensity = atoi(property) * (1.0f/160.0f);