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

Commit 015b1eca authored by Mike Lockwood's avatar Mike Lockwood
Browse files

Add support for USB accessory serial numbers



Change-Id: I47b79f091b300ced60bfc61eff2f771139663aae
Signed-off-by: default avatarMike Lockwood <lockwood@android.com>
parent 9f3f36c9
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -94459,6 +94459,17 @@
 visibility="public"
>
</method>
<method name="getSerial"
 return="java.lang.String"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getUri"
 return="java.lang.String"
 abstract="false"
@@ -267042,7 +267053,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="arg0" type="T">
<parameter name="t" type="T">
</parameter>
</method>
</interface>
+24 −5
Original line number Diff line number Diff line
@@ -33,18 +33,20 @@ public class UsbAccessory implements Parcelable {
    private final String mDescription;
    private final String mVersion;
    private final String mUri;
    private final String mSerial;

    /**
     * UsbAccessory should only be instantiated by UsbService implementation
     * @hide
     */
    public UsbAccessory(String manufacturer, String model, String description,
            String version, String uri) {
            String version, String uri, String serial) {
        mManufacturer = manufacturer;
        mModel = model;
        mDescription = description;
        mVersion = version;
        mUri = uri;
        mSerial = serial;
    }

    /**
@@ -57,6 +59,7 @@ public class UsbAccessory implements Parcelable {
        mDescription = strings[2];
        mVersion = strings[3];
        mUri = strings[4];
        mSerial = strings[5];
    }

    /**
@@ -106,6 +109,17 @@ public class UsbAccessory implements Parcelable {
        return mUri;
    }

    /**
     * Returns the unique serial number for the accessory.
     * This is an optional serial number that can be used to differentiate
     * between individual accessories of the same model and manufacturer
     *
     * @return the unique serial number
     */
    public String getSerial() {
        return mSerial;
    }

    private static boolean compare(String s1, String s2) {
        if (s1 == null) return (s2 == null);
        return s1.equals(s2);
@@ -119,7 +133,8 @@ public class UsbAccessory implements Parcelable {
                    compare(mModel, accessory.getModel()) &&
                    compare(mDescription, accessory.getDescription()) &&
                    compare(mVersion, accessory.getVersion()) &&
                    compare(mUri, accessory.getUri()));
                    compare(mUri, accessory.getUri()) &&
                    compare(mSerial, accessory.getSerial()));
        }
        return false;
    }
@@ -130,7 +145,8 @@ public class UsbAccessory implements Parcelable {
                (mModel == null ? 0 : mModel.hashCode()) ^
                (mDescription == null ? 0 : mDescription.hashCode()) ^
                (mVersion == null ? 0 : mVersion.hashCode()) ^
                (mUri == null ? 0 : mUri.hashCode()));
                (mUri == null ? 0 : mUri.hashCode()) ^
                (mSerial == null ? 0 : mSerial.hashCode()));
    }

    @Override
@@ -139,7 +155,8 @@ public class UsbAccessory implements Parcelable {
                            ", mModel=" + mModel +
                            ", mDescription=" + mDescription +
                            ", mVersion=" + mVersion +
                            ", mUri=" + mUri + "]";
                            ", mUri=" + mUri +
                            ", mSerial=" + mSerial + "]";
    }

    public static final Parcelable.Creator<UsbAccessory> CREATOR =
@@ -150,7 +167,8 @@ public class UsbAccessory implements Parcelable {
            String description = in.readString();
            String version = in.readString();
            String uri = in.readString();
            return new UsbAccessory(manufacturer, model, description, version, uri);
            String serial = in.readString();
            return new UsbAccessory(manufacturer, model, description, version, uri, serial);
        }

        public UsbAccessory[] newArray(int size) {
@@ -168,5 +186,6 @@ public class UsbAccessory implements Parcelable {
        parcel.writeString(mDescription);
        parcel.writeString(mVersion);
        parcel.writeString(mUri);
        parcel.writeString(mSerial);
   }
}
+20 −4
Original line number Diff line number Diff line
@@ -19,13 +19,14 @@ package com.android.future.usb;
/**
 * A class representing a USB accessory.
 */
public final class UsbAccessory {
public class UsbAccessory {

    private final String mManufacturer;
    private final String mModel;
    private final String mDescription;
    private final String mVersion;
    private final String mUri;
    private final String mSerial;

    /* package */ UsbAccessory(android.hardware.usb.UsbAccessory accessory) {
        mManufacturer = accessory.getManufacturer();
@@ -33,6 +34,7 @@ public final class UsbAccessory {
        mDescription = accessory.getDescription();
        mVersion = accessory.getVersion();
        mUri = accessory.getUri();
        mSerial = accessory.getSerial();
    }

    /**
@@ -82,6 +84,17 @@ public final class UsbAccessory {
        return mUri;
    }

    /**
     * Returns the unique serial number for the accessory.
     * This is an optional serial number that can be used to differentiate
     * between individual accessories of the same model and manufacturer
     *
     * @return the unique serial number
     */
    public String getSerial() {
        return mSerial;
    }

    private static boolean compare(String s1, String s2) {
        if (s1 == null) return (s2 == null);
        return s1.equals(s2);
@@ -95,7 +108,8 @@ public final class UsbAccessory {
                    compare(mModel, accessory.getModel()) &&
                    compare(mDescription, accessory.getDescription()) &&
                    compare(mVersion, accessory.getVersion()) &&
                    compare(mUri, accessory.getUri()));
                    compare(mUri, accessory.getUri()) &&
                    compare(mSerial, accessory.getSerial()));
        }
        return false;
    }
@@ -106,7 +120,8 @@ public final class UsbAccessory {
                (mModel == null ? 0 : mModel.hashCode()) ^
                (mDescription == null ? 0 : mDescription.hashCode()) ^
                (mVersion == null ? 0 : mVersion.hashCode()) ^
                (mUri == null ? 0 : mUri.hashCode()));
                (mUri == null ? 0 : mUri.hashCode()) ^
                (mSerial == null ? 0 : mSerial.hashCode()));
    }

    @Override
@@ -115,6 +130,7 @@ public final class UsbAccessory {
                            ", mModel=" + mModel +
                            ", mDescription=" + mDescription +
                            ", mVersion=" + mVersion +
                            ", mUri=" + mUri + "]";
                            ", mUri=" + mUri +
                            ", mSerial=" + mSerial + "]";
    }
}
+6 −3
Original line number Diff line number Diff line
@@ -130,7 +130,8 @@ public class UsbManager {
        try {
            return mService.openAccessory(new android.hardware.usb.UsbAccessory(
                    accessory.getManufacturer(),accessory.getModel(),
                    accessory.getDescription(), accessory.getVersion(), accessory.getUri()));
                    accessory.getDescription(), accessory.getVersion(),
                    accessory.getUri(), accessory.getSerial()));
        } catch (RemoteException e) {
            Log.e(TAG, "RemoteException in openAccessory" , e);
            return null;
@@ -150,7 +151,8 @@ public class UsbManager {
        try {
            return mService.hasAccessoryPermission(new android.hardware.usb.UsbAccessory(
                    accessory.getManufacturer(),accessory.getModel(),
                    accessory.getDescription(), accessory.getVersion(), accessory.getUri()));
                    accessory.getDescription(), accessory.getVersion(),
                    accessory.getUri(), accessory.getSerial()));
        } catch (RemoteException e) {
            Log.e(TAG, "RemoteException in hasPermission", e);
            return false;
@@ -174,7 +176,8 @@ public class UsbManager {
        try {
            mService.requestAccessoryPermission(new android.hardware.usb.UsbAccessory(
                    accessory.getManufacturer(),accessory.getModel(),
                    accessory.getDescription(), accessory.getVersion(), accessory.getUri()),
                    accessory.getDescription(), accessory.getVersion(),
                    accessory.getUri(), accessory.getSerial()),
                    mContext.getPackageName(), pi);
        } catch (RemoteException e) {
            Log.e(TAG, "RemoteException in requestPermission", e);
+1 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ LOCAL_MODULE_TAGS := tests

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PACKAGE_NAME := AccessoryChatGB
LOCAL_PACKAGE_NAME := AccessoryChat

LOCAL_JAVA_LIBRARIES := com.android.future.usb.accessory

Loading