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

Commit 8c063d40 authored by Badhri Jagan Sridharan's avatar Badhri Jagan Sridharan Committed by Android (Google) Code Review
Browse files

Merge "Usb frameworks simulate compliance warnings"

parents 392a8cb4 4a3a5e20
Loading
Loading
Loading
Loading
+23 −2
Original line number Diff line number Diff line
@@ -682,7 +682,10 @@ public class UsbPortManager {
        mHandler.sendMessage(message);
    }

    public void addSimulatedPort(String portId, int supportedModes, IndentingPrintWriter pw) {
    public void addSimulatedPort(String portId, int supportedModes,
        boolean supportsComplianceWarnings,
        IndentingPrintWriter pw) {

        synchronized (mLock) {
            if (mSimulatedPorts.containsKey(portId)) {
                pw.println("Port with same name already exists.  Please remove it first.");
@@ -692,7 +695,25 @@ public class UsbPortManager {
            pw.println("Adding simulated port: portId=" + portId
                    + ", supportedModes=" + UsbPort.modeToString(supportedModes));
            mSimulatedPorts.put(portId,
                    new RawPortInfo(portId, supportedModes));
                    new RawPortInfo(
                            portId,
                            supportedModes,
                            UsbPortStatus.CONTAMINANT_PROTECTION_NONE,
                            UsbPortStatus.MODE_NONE,
                            false,
                            UsbPortStatus.POWER_ROLE_NONE,
                            false,
                            UsbPortStatus.DATA_ROLE_NONE,
                            false,
                            false,
                            UsbPortStatus.CONTAMINANT_PROTECTION_NONE,
                            false,
                            UsbPortStatus.CONTAMINANT_DETECTION_NOT_SUPPORTED,
                            UsbPortStatus.DATA_STATUS_UNKNOWN,
                            false,
                            UsbPortStatus.POWER_BRICK_STATUS_UNKNOWN,
                            supportsComplianceWarnings,
                            new int[] {}));
            updatePortsLocked(pw, null);
        }
    }
+25 −9
Original line number Diff line number Diff line
@@ -987,9 +987,12 @@ public class UsbService extends IUsbManager.Stub {
                    mPortManager.dump(new DualDumpOutputStream(new IndentingPrintWriter(pw, "  ")),
                            "", 0);
                }
            } else if ("add-port".equals(args[0]) && args.length == 3) {
        } else if ("add-port".equals(args[0]) && args.length >= 3) {
                final String portId = args[1];
                final int supportedModes;

                int i;
                boolean supportsComplianceWarnings = false;
                switch (args[2]) {
                    case "ufp":
                        supportedModes = MODE_UFP;
@@ -1007,8 +1010,19 @@ public class UsbService extends IUsbManager.Stub {
                        pw.println("Invalid mode: " + args[2]);
                        return;
                }
                for (i=3; i<args.length; i++) {
                    switch (args[i]) {
                    case "--compliance-warnings":
                        supportsComplianceWarnings = true;
                        continue;
                    default:
                        pw.println("Invalid Identifier: " + args[i]);
                    }
                }
                if (mPortManager != null) {
                    mPortManager.addSimulatedPort(portId, supportedModes, pw);
                    mPortManager.addSimulatedPort(portId, supportedModes,
                            supportsComplianceWarnings,
                            pw);
                    pw.println();
                    mPortManager.dump(new DualDumpOutputStream(new IndentingPrintWriter(pw, "  ")),
                            "", 0);
@@ -1121,7 +1135,9 @@ public class UsbService extends IUsbManager.Stub {
                pw.println("Dump current USB state or issue command:");
                pw.println("  ports");
                pw.println("  set-port-roles <id> <source|sink|no-power> <host|device|no-data>");
                pw.println("  add-port <id> <ufp|dfp|dual|none>");
                pw.println("  add-port <id> <ufp|dfp|dual|none> <optional args>");
                pw.println("    <optional args> include:");
                pw.println("      --compliance-warnings: enables compliance warnings on port");
                pw.println("  connect-port <id> <ufp|dfp><?> <source|sink><?> <host|device><?>");
                pw.println("    (add ? suffix if mode, power role, or data role can be changed)");
                pw.println("  disconnect-port <id>");
@@ -1132,7 +1148,7 @@ public class UsbService extends IUsbManager.Stub {
                pw.println("  dumpsys usb set-port-roles \"default\" source device");
                pw.println();
                pw.println("Example USB type C port simulation with full capabilities:");
                pw.println("  dumpsys usb add-port \"matrix\" dual");
                pw.println("  dumpsys usb add-port \"matrix\" dual --compliance-warnings");
                pw.println("  dumpsys usb connect-port \"matrix\" ufp? sink? device?");
                pw.println("  dumpsys usb ports");
                pw.println("  dumpsys usb disconnect-port \"matrix\"");
@@ -1160,15 +1176,15 @@ public class UsbService extends IUsbManager.Stub {
                pw.println("  dumpsys usb set-contaminant-status \"matrix\" false");
                pw.println();
                pw.println("Example simulate compliance warnings:");
                pw.println("  dumpsys usb add-port \"matrix\" dual");
                pw.println("  dumpsys usb add-port \"matrix\" dual --compliance-warnings");
                pw.println("  dumpsys usb set-compliance-reasons \"matrix\" <reason-list>");
                pw.println("  dumpsys usb clear-compliance-reasons \"matrix\"");
                pw.println("<reason-list> is expected to be formatted as \"1, ..., 4\"");
                pw.println("with reasons that need to be simulated.");
                pw.println("  1: debug accessory");
                pw.println("  2: bc12");
                pw.println("  3: missing rp");
                pw.println("  4: type c");
                pw.println("  1: other");
                pw.println("  2: debug accessory");
                pw.println("  3: bc12");
                pw.println("  4: missing rp");
                pw.println();
                pw.println("Example USB device descriptors:");
                pw.println("  dumpsys usb dump-descriptors -dump-short");