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 Original line Diff line number Diff line
@@ -19,6 +19,7 @@ package android.hardware.display;
import android.os.Parcel;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Parcelable;


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


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


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


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


    /**
    /**
@@ -92,6 +97,14 @@ public final class DeviceProductInfo implements Parcelable {
        return mManufactureDate;
        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
    @Override
    public String toString() {
    public String toString() {
        return "DeviceProductInfo{"
        return "DeviceProductInfo{"
@@ -105,6 +118,8 @@ public final class DeviceProductInfo implements Parcelable {
                + mModelYear
                + mModelYear
                + ", manufactureDate="
                + ", manufactureDate="
                + mManufactureDate
                + mManufactureDate
                + ", relativeAddress="
                + Arrays.toString(mRelativeAddress)
                + '}';
                + '}';
    }
    }


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


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


    /**
    /**
+10 −2
Original line number Original line Diff line number Diff line
@@ -837,9 +837,16 @@ static jobject convertDeviceProductInfoToJavaObject(
    } else {
    } else {
        LOG_FATAL("Unknown alternative for variant DeviceProductInfo::ManufactureOrModelDate");
        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,
    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) {
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/String;"
                             "Ljava/lang/String;"
                             "Ljava/lang/Integer;"
                             "Ljava/lang/Integer;"
                             "Landroid/hardware/display/DeviceProductInfo$ManufactureDate;)V");
                             "Landroid/hardware/display/DeviceProductInfo$ManufactureDate;"
                             "[I)V");


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