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

Commit 939dacea authored by Marin Shalamanov's avatar Marin Shalamanov Committed by Android (Google) Code Review
Browse files

Merge "Add relative address to DeviceProductInfo."

parents bf096be3 5853c33b
Loading
Loading
Loading
Loading
+21 −3
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.hardware.display;
import android.os.Parcel;
import android.os.Parcelable;

import java.util.Arrays;
import java.util.Objects;

/**
@@ -33,18 +34,21 @@ public final class DeviceProductInfo implements Parcelable {
    private final String mProductId;
    private final Integer mModelYear;
    private final ManufactureDate mManufactureDate;
    private final int[] mRelativeAddress;

    public DeviceProductInfo(
            String name,
            String manufacturerPnpId,
            String productId,
            Integer modelYear,
            ManufactureDate manufactureDate) {
            ManufactureDate manufactureDate,
            int[] relativeAddress) {
        this.mName = name;
        this.mManufacturerPnpId = manufacturerPnpId;
        this.mProductId = productId;
        this.mModelYear = modelYear;
        this.mManufactureDate = manufactureDate;
        this.mRelativeAddress = relativeAddress;
    }

    private DeviceProductInfo(Parcel in) {
@@ -53,6 +57,7 @@ public final class DeviceProductInfo implements Parcelable {
        mProductId = (String) in.readValue(null);
        mModelYear = (Integer) in.readValue(null);
        mManufactureDate = (ManufactureDate) in.readValue(null);
        mRelativeAddress = in.createIntArray();
    }

    /**
@@ -92,6 +97,14 @@ public final class DeviceProductInfo implements Parcelable {
        return mManufactureDate;
    }

    /**
     * @return Relative address in the display network. For example, for HDMI connected devices this
     * can be its physical address. Each component of the address is in the range [0, 255].
     */
    public int[] getRelativeAddress() {
        return mRelativeAddress;
    }

    @Override
    public String toString() {
        return "DeviceProductInfo{"
@@ -105,6 +118,8 @@ public final class DeviceProductInfo implements Parcelable {
                + mModelYear
                + ", manufactureDate="
                + mManufactureDate
                + ", relativeAddress="
                + Arrays.toString(mRelativeAddress)
                + '}';
    }

@@ -117,12 +132,14 @@ public final class DeviceProductInfo implements Parcelable {
                && Objects.equals(mManufacturerPnpId, that.mManufacturerPnpId)
                && Objects.equals(mProductId, that.mProductId)
                && Objects.equals(mModelYear, that.mModelYear)
                && Objects.equals(mManufactureDate, that.mManufactureDate);
                && Objects.equals(mManufactureDate, that.mManufactureDate)
                && Arrays.equals(mRelativeAddress, that.mRelativeAddress);
    }

    @Override
    public int hashCode() {
        return Objects.hash(mName, mManufacturerPnpId, mProductId, mModelYear, mManufactureDate);
        return Objects.hash(mName, mManufacturerPnpId, mProductId, mModelYear, mManufactureDate,
            mRelativeAddress);
    }

    public static final Creator<DeviceProductInfo> CREATOR =
@@ -150,6 +167,7 @@ public final class DeviceProductInfo implements Parcelable {
        dest.writeValue(mProductId);
        dest.writeValue(mModelYear);
        dest.writeValue(mManufactureDate);
        dest.writeIntArray(mRelativeAddress);
    }

    /**
+10 −2
Original line number Diff line number Diff line
@@ -837,9 +837,16 @@ static jobject convertDeviceProductInfoToJavaObject(
    } else {
        LOG_FATAL("Unknown alternative for variant DeviceProductInfo::ManufactureOrModelDate");
    }
    auto relativeAddress = env->NewIntArray(info->relativeAddress.size());
    auto relativeAddressData = env->GetIntArrayElements(relativeAddress, nullptr);
    for (int i = 0; i < info->relativeAddress.size(); i++) {
        relativeAddressData[i] = info->relativeAddress[i];
    }
    env->ReleaseIntArrayElements(relativeAddress, relativeAddressData, 0);

    return env->NewObject(gDeviceProductInfoClassInfo.clazz, gDeviceProductInfoClassInfo.ctor, name,
                          manufacturerPnpId, productId, modelYear, manufactureDate);
                          manufacturerPnpId, productId, modelYear, manufactureDate,
                          relativeAddress);
}

static jobject nativeGetDisplayInfo(JNIEnv* env, jclass clazz, jobject tokenObj) {
@@ -1674,7 +1681,8 @@ int register_android_view_SurfaceControl(JNIEnv* env)
                             "Ljava/lang/String;"
                             "Ljava/lang/String;"
                             "Ljava/lang/Integer;"
                             "Landroid/hardware/display/DeviceProductInfo$ManufactureDate;)V");
                             "Landroid/hardware/display/DeviceProductInfo$ManufactureDate;"
                             "[I)V");

    jclass deviceProductInfoManufactureDateClazz =
            FindClassOrDie(env, "android/hardware/display/DeviceProductInfo$ManufactureDate");