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

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

Merge "Add xDpi and yDpi to DisplayViewport" into main

parents dd07ec83 3b82a60c
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -84,6 +84,12 @@ public final class DisplayViewport {
    // The logical display density which is the basis for density-independent pixels.
    public int densityDpi;

    // The physical density of the display in DPI in the X direction.
    public float xDpi;

    // The physical density of the display in DPI in the Y direction.
    public float yDpi;

    public void copyFrom(DisplayViewport viewport) {
        valid = viewport.valid;
        isActive = viewport.isActive;
@@ -97,6 +103,8 @@ public final class DisplayViewport {
        physicalPort = viewport.physicalPort;
        type = viewport.type;
        densityDpi = viewport.densityDpi;
        xDpi = viewport.xDpi;
        yDpi = viewport.yDpi;
    }

    /**
@@ -130,7 +138,9 @@ public final class DisplayViewport {
              && TextUtils.equals(uniqueId, other.uniqueId)
              && Objects.equals(physicalPort, other.physicalPort)
              && type == other.type
              && densityDpi == other.densityDpi;
              && densityDpi == other.densityDpi
              && xDpi == other.xDpi
              && yDpi == other.yDpi;
    }

    @Override
@@ -151,6 +161,8 @@ public final class DisplayViewport {
        }
        result += prime * result + type;
        result += prime * result + densityDpi;
        result += prime * result + xDpi;
        result += prime * result + yDpi;
        return result;
    }

@@ -165,6 +177,8 @@ public final class DisplayViewport {
                + ", physicalPort=" + physicalPort
                + ", orientation=" + orientation
                + ", densityDpi=" + densityDpi
                + ", xDpi=" + xDpi
                + ", yDpi=" + yDpi
                + ", logicalFrame=" + logicalFrame
                + ", physicalFrame=" + physicalFrame
                + ", deviceWidth=" + deviceWidth
+8 −0
Original line number Diff line number Diff line
@@ -44,6 +44,8 @@ static struct {
    jfieldID physicalPort;
    jfieldID type;
    jfieldID densityDpi;
    jfieldID xDpi;
    jfieldID yDpi;
} gDisplayViewportClassInfo;

static struct {
@@ -84,6 +86,8 @@ status_t android_hardware_display_DisplayViewport_toNative(JNIEnv* env, jobject
                gDisplayViewportClassInfo.type));

    viewport->densityDpi = env->GetIntField(viewportObj, gDisplayViewportClassInfo.densityDpi);
    viewport->xDpi = env->GetFloatField(viewportObj, gDisplayViewportClassInfo.xDpi);
    viewport->yDpi = env->GetFloatField(viewportObj, gDisplayViewportClassInfo.yDpi);

    jobject logicalFrameObj =
            env->GetObjectField(viewportObj, gDisplayViewportClassInfo.logicalFrame);
@@ -140,6 +144,10 @@ int register_android_hardware_display_DisplayViewport(JNIEnv* env) {

    gDisplayViewportClassInfo.densityDpi =
            GetFieldIDOrDie(env, gDisplayViewportClassInfo.clazz, "densityDpi", "I");
    gDisplayViewportClassInfo.xDpi =
            GetFieldIDOrDie(env, gDisplayViewportClassInfo.clazz, "xDpi", "F");
    gDisplayViewportClassInfo.yDpi =
            GetFieldIDOrDie(env, gDisplayViewportClassInfo.clazz, "yDpi", "F");

    clazz = FindClassOrDie(env, "android/graphics/Rect");
    gRectClassInfo.left = GetFieldIDOrDie(env, clazz, "left", "I");
+2 −0
Original line number Diff line number Diff line
@@ -3620,6 +3620,8 @@ public final class DisplayManagerService extends SystemService {
        viewport.displayId = displayId;
        viewport.isActive = Display.isActiveState(info.state);
        viewport.densityDpi = info.densityDpi;
        viewport.xDpi = info.xDpi;
        viewport.yDpi = info.yDpi;
    }

    private void updateViewportPowerStateLocked(LogicalDisplay display) {