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

Commit 0491f5aa authored by Andrew Chant's avatar Andrew Chant
Browse files

UsbDescriptorParser: always parse in constructor

UsbDescriptorParser::parseDescriptors always returned true.
Remove the return value, and remove the one constructor that
doesn't parse descriptors so the device is always in a parsed state.

Bug: 74119682
Test: Built
Change-Id: I2dd8d439405867d78102a9591dd1db36fe3959dc
parent d52c532d
Loading
Loading
Loading
Loading
+20 −29
Original line number Diff line number Diff line
@@ -329,9 +329,7 @@ public class UsbHostManager {
                return false;
            }

            UsbDescriptorParser parser = new UsbDescriptorParser(deviceAddress);
            if (parser.parseDescriptors(descriptors)) {

            UsbDescriptorParser parser = new UsbDescriptorParser(deviceAddress, descriptors);
            UsbDevice newDevice = parser.toAndroidUsbDevice();
            if (newDevice == null) {
                Slog.e(TAG, "Couldn't create UsbDevice object.");
@@ -357,13 +355,6 @@ public class UsbHostManager {
                addConnectionRecord(deviceAddress, ConnectionRecord.CONNECT,
                        parser.getRawDescriptors());
            }
            } else {
                Slog.e(TAG, "Error parsing USB device descriptors for " + deviceAddress);
                // Tracking
                addConnectionRecord(deviceAddress, ConnectionRecord.CONNECT_BADPARSE,
                        parser.getRawDescriptors());
                return false;
            }
        }

        if (DEBUG) {
+1 −17
Original line number Diff line number Diff line
@@ -43,11 +43,6 @@ public final class UsbDescriptorParser {
    // Obtained from the first AudioClass Header descriptor.
    private int mACInterfacesSpec = UsbDeviceDescriptor.USBSPEC_1_0;

    public UsbDescriptorParser(String deviceAddr) {
        mDeviceAddr = deviceAddr;
        mDescriptors = new ArrayList<UsbDescriptor>(DESCRIPTORS_ALLOC_SIZE);
    }

    /**
     * Connect this parser to an existing set of already parsed descriptors.
     * This is useful for reporting.
@@ -214,7 +209,7 @@ public final class UsbDescriptorParser {
    /**
     * @hide
     */
    public boolean parseDescriptors(byte[] descriptors) {
    public void parseDescriptors(byte[] descriptors) {
        if (DEBUG) {
            Log.d(TAG, "parseDescriptors() - start");
        }
@@ -248,17 +243,6 @@ public final class UsbDescriptorParser {
        if (DEBUG) {
            Log.d(TAG, "parseDescriptors() - end " + mDescriptors.size() + " descriptors.");
        }
        return true;
    }

    /**
     * @hide
     */
    public boolean parseDevice() {
        byte[] rawDescriptors = getRawDescriptors();

        return rawDescriptors != null
            ? parseDescriptors(rawDescriptors) : false;
    }

    public byte[] getRawDescriptors() {
+1 −4
Original line number Diff line number Diff line
@@ -61,10 +61,7 @@ public class UsbDescriptorParserTests {
        }

        // Testing same codepath as UsbHostManager.java:usbDeviceAdded
        UsbDescriptorParser parser = new UsbDescriptorParser("test-usb-addr");
        if (!parser.parseDescriptors(descriptors)) {
            fail("failed to parse descriptors.");
        }
        UsbDescriptorParser parser = new UsbDescriptorParser("test-usb-addr", descriptors);
        return parser;
    }