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

Commit a8d03d7b authored by Asmita Poddar's avatar Asmita Poddar Committed by Android (Google) Code Review
Browse files

Merge "Pass Device bus ID from native to Java" into main

parents 418c3175 b4015294
Loading
Loading
Loading
Loading
+29 −2
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ public final class InputDevice implements Parcelable {
    private final String mName;
    private final int mVendorId;
    private final int mProductId;
    private final int mDeviceBus;
    private final String mDescriptor;
    private final InputDeviceIdentifier mIdentifier;
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
@@ -468,8 +469,8 @@ public final class InputDevice implements Parcelable {
     * Called by native code
     */
    private InputDevice(int id, int generation, int controllerNumber, String name, int vendorId,
            int productId, String descriptor, boolean isExternal, int sources, int keyboardType,
            KeyCharacterMap keyCharacterMap, @Nullable String keyboardLanguageTag,
            int productId, int deviceBus, String descriptor, boolean isExternal, int sources,
            int keyboardType, KeyCharacterMap keyCharacterMap, @Nullable String keyboardLanguageTag,
            @Nullable String keyboardLayoutType, boolean hasVibrator, boolean hasMicrophone,
            boolean hasButtonUnderPad, boolean hasSensor, boolean hasBattery, int usiVersionMajor,
            int usiVersionMinor, int associatedDisplayId) {
@@ -479,6 +480,7 @@ public final class InputDevice implements Parcelable {
        mName = name;
        mVendorId = vendorId;
        mProductId = productId;
        mDeviceBus = deviceBus;
        mDescriptor = descriptor;
        mIsExternal = isExternal;
        mSources = sources;
@@ -512,6 +514,7 @@ public final class InputDevice implements Parcelable {
        mName = in.readString();
        mVendorId = in.readInt();
        mProductId = in.readInt();
        mDeviceBus = in.readInt();
        mDescriptor = in.readString();
        mIsExternal = in.readInt() != 0;
        mSources = in.readInt();
@@ -551,6 +554,7 @@ public final class InputDevice implements Parcelable {
        private String mName = "";
        private int mVendorId = 0;
        private int mProductId = 0;
        private int mDeviceBus = 0;
        private String mDescriptor = "";
        private boolean mIsExternal = false;
        private int mSources = 0;
@@ -604,6 +608,12 @@ public final class InputDevice implements Parcelable {
            return this;
        }

        /** @see InputDevice#getDeviceBus() */
        public Builder setDeviceBus(int deviceBus) {
            mDeviceBus = deviceBus;
            return this;
        }

        /** @see InputDevice#getDescriptor() */
        public Builder setDescriptor(String descriptor) {
            mDescriptor = descriptor;
@@ -705,6 +715,7 @@ public final class InputDevice implements Parcelable {
                    mName,
                    mVendorId,
                    mProductId,
                    mDeviceBus,
                    mDescriptor,
                    mIsExternal,
                    mSources,
@@ -846,6 +857,21 @@ public final class InputDevice implements Parcelable {
        return mProductId;
    }

    /**
     * Gets the device bus used by given device, if available.
     * <p>
     * The device bus is the communication system used for transferring data
     * (e.g. USB, Bluetooth etc.). This value comes from the kernel (from input.h).
     * A value of 0 will be assigned where the device bus is not available.
     * </p>
     *
     * @return The device bus of a given device
     * @hide
     */
    public int getDeviceBus() {
        return mDeviceBus;
    }

    /**
     * Gets the input device descriptor, which is a stable identifier for an input device.
     * <p>
@@ -1448,6 +1474,7 @@ public final class InputDevice implements Parcelable {
        out.writeString(mName);
        out.writeInt(mVendorId);
        out.writeInt(mProductId);
        out.writeInt(mDeviceBus);
        out.writeString(mDescriptor);
        out.writeInt(mIsExternal ? 1 : 0);
        out.writeInt(mSources);
+3 −2
Original line number Diff line number Diff line
@@ -81,7 +81,8 @@ jobject android_view_InputDevice_create(JNIEnv* env, const InputDeviceInfo& devi
                                          deviceInfo.getId(), deviceInfo.getGeneration(),
                                          deviceInfo.getControllerNumber(), nameObj.get(),
                                          static_cast<int32_t>(ident.vendor),
                                          static_cast<int32_t>(ident.product), descriptorObj.get(),
                                          static_cast<int32_t>(ident.product),
                                          static_cast<int32_t>(ident.bus), descriptorObj.get(),
                                          deviceInfo.isExternal(), deviceInfo.getSources(),
                                          deviceInfo.getKeyboardType(), kcmObj.get(),
                                          keyboardLanguageTagObj.get(), keyboardLayoutTypeObj.get(),
@@ -111,7 +112,7 @@ int register_android_view_InputDevice(JNIEnv* env)
    gInputDeviceClassInfo.clazz = MakeGlobalRefOrDie(env, gInputDeviceClassInfo.clazz);

    gInputDeviceClassInfo.ctor = GetMethodIDOrDie(env, gInputDeviceClassInfo.clazz, "<init>",
                                                  "(IIILjava/lang/String;IILjava/lang/"
                                                  "(IIILjava/lang/String;IIILjava/lang/"
                                                  "String;ZIILandroid/view/KeyCharacterMap;Ljava/"
                                                  "lang/String;Ljava/lang/String;ZZZZZIII)V");

+2 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ public class InputDeviceTest {
        assertEquals(device.getName(), outDevice.getName());
        assertEquals(device.getVendorId(), outDevice.getVendorId());
        assertEquals(device.getProductId(), outDevice.getProductId());
        assertEquals(device.getDeviceBus(), outDevice.getDeviceBus());
        assertEquals(device.getDescriptor(), outDevice.getDescriptor());
        assertEquals(device.isExternal(), outDevice.isExternal());
        assertEquals(device.getSources(), outDevice.getSources());
@@ -79,6 +80,7 @@ public class InputDeviceTest {
                .setName("Test Device " + DEVICE_ID)
                .setVendorId(44)
                .setProductId(45)
                .setDeviceBus(3)
                .setDescriptor("descriptor")
                .setExternal(true)
                .setSources(InputDevice.SOURCE_HDMI)