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

Commit f5b9f2de authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add additional status flags to UsbDataStatus"

parents c106493d 2ddb5aff
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -5817,6 +5817,8 @@ package android.hardware.usb {
    field public static final int DATA_STATUS_DISABLED_CONTAMINANT = 4; // 0x4
    field public static final int DATA_STATUS_DISABLED_DEBUG = 32; // 0x20
    field public static final int DATA_STATUS_DISABLED_DOCK = 8; // 0x8
    field public static final int DATA_STATUS_DISABLED_DOCK_DEVICE_MODE = 128; // 0x80
    field public static final int DATA_STATUS_DISABLED_DOCK_HOST_MODE = 64; // 0x40
    field public static final int DATA_STATUS_DISABLED_FORCE = 16; // 0x10
    field public static final int DATA_STATUS_DISABLED_OVERHEAT = 2; // 0x2
    field public static final int DATA_STATUS_ENABLED = 1; // 0x1
+11 −0
Original line number Diff line number Diff line
@@ -46,6 +46,8 @@ import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_CONTAMINAN
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_DOCK;
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_FORCE;
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_DEBUG;
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_DOCK_HOST_MODE;
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_DOCK_DEVICE_MODE;
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY;
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_BC_1_2;
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_MISSING_RP;
@@ -676,6 +678,15 @@ public final class UsbPort {
            statusString.append("disabled-debug, ");
        }

        if ((usbDataStatus & DATA_STATUS_DISABLED_DOCK_HOST_MODE) ==
            DATA_STATUS_DISABLED_DOCK_HOST_MODE) {
            statusString.append("disabled-host-dock, ");
        }

        if ((usbDataStatus & DATA_STATUS_DISABLED_DOCK_DEVICE_MODE) ==
            DATA_STATUS_DISABLED_DOCK_DEVICE_MODE) {
            statusString.append("disabled-device-dock, ");
        }
        return statusString.toString().replaceAll(", $", "");
    }

+35 −2
Original line number Diff line number Diff line
@@ -219,7 +219,11 @@ public final class UsbPortStatus implements Parcelable {
    public static final int DATA_STATUS_DISABLED_CONTAMINANT = 1 << 2;

    /**
     * USB data is disabled due to docking event.
     * This flag indicates that some or all data modes are disabled
     * due to docking event, and the specific sub-statuses viz.,
     * {@link #DATA_STATUS_DISABLED_DOCK_HOST_MODE},
     * {@link #DATA_STATUS_DISABLED_DOCK_DEVICE_MODE}
     * can be checked for individual modes.
     */
    public static final int DATA_STATUS_DISABLED_DOCK = 1 << 3;

@@ -234,6 +238,18 @@ public final class UsbPortStatus implements Parcelable {
     */
    public static final int DATA_STATUS_DISABLED_DEBUG = 1 << 5;

    /**
     * USB host mode is disabled due to docking event.
     * {@link #DATA_STATUS_DISABLED_DOCK} will be set as well.
     */
    public static final int DATA_STATUS_DISABLED_DOCK_HOST_MODE = 1 << 6;

    /**
     * USB device mode is disabled due to docking event.
     * {@link #DATA_STATUS_DISABLED_DOCK} will be set as well.
     */
    public static final int DATA_STATUS_DISABLED_DOCK_DEVICE_MODE = 1 << 7;

    /**
     * Unknown whether a power brick is connected.
     */
@@ -329,6 +345,8 @@ public final class UsbPortStatus implements Parcelable {
            DATA_STATUS_DISABLED_OVERHEAT,
            DATA_STATUS_DISABLED_CONTAMINANT,
            DATA_STATUS_DISABLED_DOCK,
            DATA_STATUS_DISABLED_DOCK_HOST_MODE,
            DATA_STATUS_DISABLED_DOCK_DEVICE_MODE,
            DATA_STATUS_DISABLED_FORCE,
            DATA_STATUS_DISABLED_DEBUG
    })
@@ -357,6 +375,20 @@ public final class UsbPortStatus implements Parcelable {
        mSupportedRoleCombinations = supportedRoleCombinations;
        mContaminantProtectionStatus = contaminantProtectionStatus;
        mContaminantDetectionStatus = contaminantDetectionStatus;

        // Older implementations that only set the DISABLED_DOCK_MODE will have the other two
        // set at the HAL interface level, so the "dock mode only" state shouldn't be visible here.
        // But the semantics are ensured here.
        int disabledDockModes = (usbDataStatus &
            (DATA_STATUS_DISABLED_DOCK_HOST_MODE | DATA_STATUS_DISABLED_DOCK_DEVICE_MODE));
        if (disabledDockModes != 0) {
            // Set DATA_STATUS_DISABLED_DOCK when one of DATA_STATUS_DISABLED_DOCK_*_MODE is set
            usbDataStatus |= DATA_STATUS_DISABLED_DOCK;
        } else {
            // Clear DATA_STATUS_DISABLED_DOCK when none of DATA_STATUS_DISABLED_DOCK_*_MODE is set
            usbDataStatus &= ~DATA_STATUS_DISABLED_DOCK;
        }

        mUsbDataStatus = usbDataStatus;
        mPowerTransferLimited = powerTransferLimited;
        mPowerBrickConnectionStatus = powerBrickConnectionStatus;
@@ -472,7 +504,8 @@ public final class UsbPortStatus implements Parcelable {
     *         {@link #DATA_STATUS_UNKNOWN}, {@link #DATA_STATUS_ENABLED},
     *         {@link #DATA_STATUS_DISABLED_OVERHEAT}, {@link #DATA_STATUS_DISABLED_CONTAMINANT},
     *         {@link #DATA_STATUS_DISABLED_DOCK}, {@link #DATA_STATUS_DISABLED_FORCE},
     *         {@link #DATA_STATUS_DISABLED_DEBUG}
     *         {@link #DATA_STATUS_DISABLED_DEBUG}, {@link #DATA_STATUS_DISABLED_DOCK_HOST_MODE},
     *         {@link #DATA_STATUS_DISABLED_DOCK_DEVICE_MODE}
     */
    public @UsbDataStatus int getUsbDataStatus() {
        return mUsbDataStatus;
+41 −14
Original line number Diff line number Diff line
@@ -80,38 +80,46 @@ public final class UsbPortAidl implements UsbPortHal {
    /**
     * USB data status is not known.
     */
    public static final int USB_DATA_STATUS_UNKNOWN = 0;
    public static final int AIDL_USB_DATA_STATUS_UNKNOWN = 0;

    /**
     * USB data is enabled.
     */
    public static final int USB_DATA_STATUS_ENABLED = 1;
    public static final int AIDL_USB_DATA_STATUS_ENABLED = 1;

    /**
     * USB data is disabled as the port is too hot.
     */
    public static final int USB_DATA_STATUS_DISABLED_OVERHEAT = 2;
    public static final int AIDL_USB_DATA_STATUS_DISABLED_OVERHEAT = 2;

    /**
     * USB data is disabled due to contaminated port.
     */
    public static final int USB_DATA_STATUS_DISABLED_CONTAMINANT = 3;
    public static final int AIDL_USB_DATA_STATUS_DISABLED_CONTAMINANT = 3;

    /**
     * USB data is disabled due to docking event.
     * USB data(both host mode and device mode) is disabled due to docking event.
     */
    public static final int USB_DATA_STATUS_DISABLED_DOCK = 4;
    public static final int AIDL_USB_DATA_STATUS_DISABLED_DOCK = 4;

    /**
     * USB data is disabled by
     * {@link UsbPort#enableUsbData UsbPort.enableUsbData}.
     */
    public static final int USB_DATA_STATUS_DISABLED_FORCE = 5;
    public static final int AIDL_USB_DATA_STATUS_DISABLED_FORCE = 5;

    /**
     * USB data is disabled for debug.
     */
    public static final int USB_DATA_STATUS_DISABLED_DEBUG = 6;
    public static final int AIDL_USB_DATA_STATUS_DISABLED_DEBUG = 6;
    /**
     * USB host mode disabled due to docking event.
     */
    public static final int AIDL_USB_DATA_STATUS_DISABLED_DOCK_HOST_MODE = 7;
    /**
     * USB device mode disabled due to docking event.
     */
    public static final int AIDL_USB_DATA_STATUS_DISABLED_DOCK_DEVICE_MODE = 8;

    public @UsbHalVersion int getUsbHalVersion() throws RemoteException {
        synchronized (mLock) {
@@ -529,24 +537,43 @@ public final class UsbPortAidl implements UsbPortHal {
            int usbDataStatus = UsbPortStatus.DATA_STATUS_UNKNOWN;
            for (int i = 0; i < usbDataStatusHal.length; i++) {
                switch (usbDataStatusHal[i]) {
                    case USB_DATA_STATUS_ENABLED:
                    case AIDL_USB_DATA_STATUS_ENABLED:
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_ENABLED;
                        break;
                    case USB_DATA_STATUS_DISABLED_OVERHEAT:
                    case AIDL_USB_DATA_STATUS_DISABLED_OVERHEAT:
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_OVERHEAT;
                        break;
                    case USB_DATA_STATUS_DISABLED_CONTAMINANT:
                    case AIDL_USB_DATA_STATUS_DISABLED_CONTAMINANT:
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_CONTAMINANT;
                        break;
                    case USB_DATA_STATUS_DISABLED_DOCK:
                    /* Indicates both host and gadget mode being disabled. */
                    case AIDL_USB_DATA_STATUS_DISABLED_DOCK:
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK;
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK_HOST_MODE;
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK_DEVICE_MODE;
                        break;
                    case USB_DATA_STATUS_DISABLED_FORCE:
                    case AIDL_USB_DATA_STATUS_DISABLED_FORCE:
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_FORCE;
                        break;
                    case USB_DATA_STATUS_DISABLED_DEBUG:
                    case AIDL_USB_DATA_STATUS_DISABLED_DEBUG:
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DEBUG;
                        break;
                    /*
                     * Set DATA_STATUS_DISABLED_DOCK when DATA_STATUS_DISABLED_DOCK_HOST_MODE
                     * is set.
                     */
                    case AIDL_USB_DATA_STATUS_DISABLED_DOCK_HOST_MODE:
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK_HOST_MODE;
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK;
                        break;
                    /*
                     * Set DATA_STATUS_DISABLED_DOCK when DATA_STATUS_DISABLED_DEVICE_DOCK
                     * is set.
                     */
                    case AIDL_USB_DATA_STATUS_DISABLED_DOCK_DEVICE_MODE:
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK_DEVICE_MODE;
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_DISABLED_DOCK;
                        break;
                    default:
                        usbDataStatus |= UsbPortStatus.DATA_STATUS_UNKNOWN;
                }