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

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

Merge "Convert @UsbDataStatus into bit field flags."

parents 1fd7efc7 9c80283f
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -5318,9 +5318,9 @@ package android.hardware.usb {
    method public int getCurrentDataRole();
    method public int getCurrentMode();
    method public int getCurrentPowerRole();
    method public int getPowerBrickStatus();
    method public int getPowerBrickConnectionStatus();
    method public int getSupportedRoleCombinations();
    method @Nullable public int[] getUsbDataStatus();
    method public int getUsbDataStatus();
    method public boolean isConnected();
    method public boolean isPowerTransferLimited();
    method public boolean isRoleCombinationSupported(int, int);
@@ -5329,6 +5329,13 @@ package android.hardware.usb {
    field public static final int DATA_ROLE_DEVICE = 2; // 0x2
    field public static final int DATA_ROLE_HOST = 1; // 0x1
    field public static final int DATA_ROLE_NONE = 0; // 0x0
    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_FORCE = 16; // 0x10
    field public static final int DATA_STATUS_DISABLED_OVERHEAT = 2; // 0x2
    field public static final int DATA_STATUS_ENABLED = 1; // 0x1
    field public static final int DATA_STATUS_UNKNOWN = 0; // 0x0
    field public static final int MODE_AUDIO_ACCESSORY = 4; // 0x4
    field public static final int MODE_DEBUG_ACCESSORY = 8; // 0x8
    field public static final int MODE_DFP = 2; // 0x2
@@ -5340,13 +5347,6 @@ package android.hardware.usb {
    field public static final int POWER_ROLE_NONE = 0; // 0x0
    field public static final int POWER_ROLE_SINK = 2; // 0x2
    field public static final int POWER_ROLE_SOURCE = 1; // 0x1
    field public static final int USB_DATA_STATUS_DISABLED_CONTAMINANT = 3; // 0x3
    field public static final int USB_DATA_STATUS_DISABLED_DEBUG = 6; // 0x6
    field public static final int USB_DATA_STATUS_DISABLED_DOCK = 4; // 0x4
    field public static final int USB_DATA_STATUS_DISABLED_FORCE = 5; // 0x5
    field public static final int USB_DATA_STATUS_DISABLED_OVERHEAT = 2; // 0x2
    field public static final int USB_DATA_STATUS_ENABLED = 1; // 0x1
    field public static final int USB_DATA_STATUS_UNKNOWN = 0; // 0x0
  }
}
+41 −41
Original line number Diff line number Diff line
@@ -39,13 +39,13 @@ import static android.hardware.usb.UsbPortStatus.POWER_BRICK_STATUS_CONNECTED;
import static android.hardware.usb.UsbPortStatus.POWER_ROLE_NONE;
import static android.hardware.usb.UsbPortStatus.POWER_ROLE_SINK;
import static android.hardware.usb.UsbPortStatus.POWER_ROLE_SOURCE;
import static android.hardware.usb.UsbPortStatus.USB_DATA_STATUS_UNKNOWN;
import static android.hardware.usb.UsbPortStatus.USB_DATA_STATUS_ENABLED;
import static android.hardware.usb.UsbPortStatus.USB_DATA_STATUS_DISABLED_OVERHEAT;
import static android.hardware.usb.UsbPortStatus.USB_DATA_STATUS_DISABLED_CONTAMINANT;
import static android.hardware.usb.UsbPortStatus.USB_DATA_STATUS_DISABLED_DOCK;
import static android.hardware.usb.UsbPortStatus.USB_DATA_STATUS_DISABLED_FORCE;
import static android.hardware.usb.UsbPortStatus.USB_DATA_STATUS_DISABLED_DEBUG;
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_UNKNOWN;
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_ENABLED;
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_OVERHEAT;
import static android.hardware.usb.UsbPortStatus.DATA_STATUS_DISABLED_CONTAMINANT;
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 android.Manifest;
import android.annotation.CheckResult;
@@ -400,7 +400,7 @@ public final class UsbPort {
    }

    /**
     * Enables Usb data when disabled due to {@link UsbPort#USB_DATA_STATUS_DISABLED_DOCK}
     * Enables Usb data when disabled due to {@link UsbPort#DATA_STATUS_DISABLED_DOCK}
     *
     * @return {@link #ENABLE_USB_DATA_WHILE_DOCKED_SUCCESS} when request completes successfully or
     *         {@link #ENABLE_USB_DATA_WHILE_DOCKED_ERROR_INTERNAL} when request fails due to
@@ -421,7 +421,8 @@ public final class UsbPort {
                + " callingUid:" + Binder.getCallingUid());
        UsbPortStatus portStatus = getStatus();
        if (portStatus != null &&
                !usbDataStatusToString(portStatus.getUsbDataStatus()).contains("disabled-dock")) {
                (portStatus.getUsbDataStatus() & DATA_STATUS_DISABLED_DOCK) !=
                 DATA_STATUS_DISABLED_DOCK) {
            return ENABLE_USB_DATA_WHILE_DOCKED_ERROR_DATA_ENABLED;
        }

@@ -584,44 +585,43 @@ public final class UsbPort {

    /** @hide */
    public static String usbDataStatusToString(int usbDataStatus) {
        switch (usbDataStatus) {
            case USB_DATA_STATUS_UNKNOWN:
        StringBuilder statusString = new StringBuilder();

        if (usbDataStatus == DATA_STATUS_UNKNOWN) {
            return "unknown";
            case USB_DATA_STATUS_ENABLED:
        }

        if ((usbDataStatus & DATA_STATUS_ENABLED) == DATA_STATUS_ENABLED) {
            return "enabled";
            case USB_DATA_STATUS_DISABLED_OVERHEAT:
                return "disabled-overheat";
            case USB_DATA_STATUS_DISABLED_CONTAMINANT:
                return "disabled-contaminant";
            case USB_DATA_STATUS_DISABLED_DOCK:
                return "disabled-dock";
            case USB_DATA_STATUS_DISABLED_FORCE:
                return "disabled-force";
            case USB_DATA_STATUS_DISABLED_DEBUG:
                return "disabled-debug";
            default:
                return Integer.toString(usbDataStatus);
        }

        if ((usbDataStatus & DATA_STATUS_DISABLED_OVERHEAT) == DATA_STATUS_DISABLED_OVERHEAT) {
            statusString.append("disabled-overheat, ");
        }

    /** @hide */
    public static String usbDataStatusToString(int[] usbDataStatus) {
        StringBuilder modeString = new StringBuilder();
        if (usbDataStatus == null) {
            return "unknown";
        if ((usbDataStatus & DATA_STATUS_DISABLED_CONTAMINANT)
                == DATA_STATUS_DISABLED_CONTAMINANT) {
            statusString.append("disabled-contaminant, ");
        }

        if ((usbDataStatus & DATA_STATUS_DISABLED_DOCK) == DATA_STATUS_DISABLED_DOCK) {
            statusString.append("disabled-dock, ");
        }
        for (int i = 0; i < usbDataStatus.length; i++) {
            modeString.append(usbDataStatusToString(usbDataStatus[i]));
            if (i < usbDataStatus.length - 1) {
                modeString.append(", ");

        if ((usbDataStatus & DATA_STATUS_DISABLED_FORCE) == DATA_STATUS_DISABLED_FORCE) {
            statusString.append("disabled-force, ");
        }

        if ((usbDataStatus & DATA_STATUS_DISABLED_DEBUG) == DATA_STATUS_DISABLED_DEBUG) {
            statusString.append("disabled-debug, ");
        }
        return modeString.toString();

        return statusString.toString().replaceAll(", $", "");
    }

    /** @hide */
    public static String powerBrickStatusToString(int powerBrickStatus) {
        switch (powerBrickStatus) {
    public static String powerBrickConnectionStatusToString(int powerBrickConnectionStatus) {
        switch (powerBrickConnectionStatus) {
            case POWER_BRICK_STATUS_UNKNOWN:
                return "unknown";
            case POWER_BRICK_STATUS_CONNECTED:
@@ -629,7 +629,7 @@ public final class UsbPort {
            case POWER_BRICK_STATUS_DISCONNECTED:
                return "disconnected";
            default:
                return Integer.toString(powerBrickStatus);
                return Integer.toString(powerBrickConnectionStatus);
        }
    }

+163 −41
Original line number Diff line number Diff line
@@ -44,8 +44,8 @@ public final class UsbPortStatus implements Parcelable {
    private final @ContaminantProtectionStatus int mContaminantProtectionStatus;
    private final @ContaminantDetectionStatus int mContaminantDetectionStatus;
    private final boolean mPowerTransferLimited;
    private final @UsbDataStatus int[] mUsbDataStatus;
    private final @PowerBrickStatus int mPowerBrickStatus;
    private final @UsbDataStatus int mUsbDataStatus;
    private final @PowerBrickConnectionStatus int mPowerBrickConnectionStatus;

    /**
     * Power role: This USB port does not have a power role.
@@ -198,38 +198,38 @@ public final class UsbPortStatus implements Parcelable {
    /**
     * USB data status is not known.
     */
    public static final int USB_DATA_STATUS_UNKNOWN = 0;
    public static final int DATA_STATUS_UNKNOWN = 0;

    /**
     * USB data is enabled.
     */
    public static final int USB_DATA_STATUS_ENABLED = 1;
    public static final int DATA_STATUS_ENABLED = 1 << 0;

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

    /**
     * USB data is disabled due to contaminated port.
     */
    public static final int USB_DATA_STATUS_DISABLED_CONTAMINANT = 3;
    public static final int DATA_STATUS_DISABLED_CONTAMINANT = 1 << 2;

    /**
     * USB data is disabled due to docking event.
     */
    public static final int USB_DATA_STATUS_DISABLED_DOCK = 4;
    public static final int DATA_STATUS_DISABLED_DOCK = 1 << 3;

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

    /**
     * USB data is disabled for debug.
     */
    public static final int USB_DATA_STATUS_DISABLED_DEBUG = 6;
    public static final int DATA_STATUS_DISABLED_DEBUG = 1 << 5;

    /**
     * Unknown whether a power brick is connected.
@@ -276,14 +276,14 @@ public final class UsbPortStatus implements Parcelable {
    @interface UsbPortMode{}

    /** @hide */
    @IntDef(prefix = { "USB_DATA_STATUS_" }, value = {
            USB_DATA_STATUS_UNKNOWN,
            USB_DATA_STATUS_ENABLED,
            USB_DATA_STATUS_DISABLED_OVERHEAT,
            USB_DATA_STATUS_DISABLED_CONTAMINANT,
            USB_DATA_STATUS_DISABLED_DOCK,
            USB_DATA_STATUS_DISABLED_FORCE,
            USB_DATA_STATUS_DISABLED_DEBUG
    @IntDef(prefix = { "DATA_STATUS_" }, flag = true, value = {
            DATA_STATUS_UNKNOWN,
            DATA_STATUS_ENABLED,
            DATA_STATUS_DISABLED_OVERHEAT,
            DATA_STATUS_DISABLED_CONTAMINANT,
            DATA_STATUS_DISABLED_DOCK,
            DATA_STATUS_DISABLED_FORCE,
            DATA_STATUS_DISABLED_DEBUG
    })
    @Retention(RetentionPolicy.SOURCE)
    @interface UsbDataStatus{}
@@ -295,13 +295,14 @@ public final class UsbPortStatus implements Parcelable {
            POWER_BRICK_STATUS_CONNECTED,
    })
    @Retention(RetentionPolicy.SOURCE)
    @interface PowerBrickStatus{}
    @interface PowerBrickConnectionStatus{}

    /** @hide */
    public UsbPortStatus(int currentMode, int currentPowerRole, int currentDataRole,
            int supportedRoleCombinations, int contaminantProtectionStatus,
            int contaminantDetectionStatus, @UsbDataStatus int[] usbDataStatus,
            boolean powerTransferLimited, @PowerBrickStatus int powerBrickStatus) {
            int contaminantDetectionStatus, @UsbDataStatus int usbDataStatus,
            boolean powerTransferLimited,
            @PowerBrickConnectionStatus int powerBrickConnectionStatus) {
        mCurrentMode = currentMode;
        mCurrentPowerRole = currentPowerRole;
        mCurrentDataRole = currentDataRole;
@@ -310,7 +311,7 @@ public final class UsbPortStatus implements Parcelable {
        mContaminantDetectionStatus = contaminantDetectionStatus;
        mUsbDataStatus = usbDataStatus;
        mPowerTransferLimited = powerTransferLimited;
        mPowerBrickStatus = powerBrickStatus;
        mPowerBrickConnectionStatus = powerBrickConnectionStatus;
    }

    /** @hide */
@@ -323,8 +324,8 @@ public final class UsbPortStatus implements Parcelable {
        mSupportedRoleCombinations = supportedRoleCombinations;
        mContaminantProtectionStatus = contaminantProtectionStatus;
        mContaminantDetectionStatus = contaminantDetectionStatus;
        mUsbDataStatus = new int[]{USB_DATA_STATUS_UNKNOWN};
        mPowerBrickStatus = POWER_BRICK_STATUS_UNKNOWN;
        mUsbDataStatus = DATA_STATUS_UNKNOWN;
        mPowerBrickConnectionStatus = POWER_BRICK_STATUS_UNKNOWN;
        mPowerTransferLimited = false;
    }

@@ -411,13 +412,13 @@ public final class UsbPortStatus implements Parcelable {
    /**
     * Returns UsbData status.
     *
     * @return Current USB data status of the port: {@link #USB_DATA_STATUS_UNKNOWN}
     *         or {@link #USB_DATA_STATUS_ENABLED} or {@link #USB_DATA_STATUS_DIASBLED_OVERHEAT}
     *         or {@link #USB_DATA_STATUS_DISABLED_CONTAMINANT}
     *         or {@link #USB_DATA_STATUS_DISABLED_DOCK} or {@link #USB_DATA_STATUS_DISABLED_FORCE}
     *         or {@link #USB_DATA_STATUS_DISABLED_DEBUG}
     * @return Current USB data status of the port with one or more of the following values
     *         {@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}
     */
    public @UsbDataStatus @Nullable int[] getUsbDataStatus() {
    public @UsbDataStatus int getUsbDataStatus() {
        return mUsbDataStatus;
    }

@@ -432,14 +433,14 @@ public final class UsbPortStatus implements Parcelable {
    }

    /**
     * Let's the caller know if a power brick is connected to the USB port.
     * Returns the connection status of the power brick.
     *
     * @return {@link #POWER_BRICK_STATUS_UNKNOWN}
     *         or {@link #POWER_BRICK_STATUS_CONNECTED}
     *         or {@link #POWER_BRICK_STATUS_DISCONNECTED}
     */
    public @PowerBrickStatus int getPowerBrickStatus() {
        return mPowerBrickStatus;
    public @PowerBrickConnectionStatus int getPowerBrickConnectionStatus() {
        return mPowerBrickConnectionStatus;
    }

    @NonNull
@@ -459,8 +460,9 @@ public final class UsbPortStatus implements Parcelable {
                        + UsbPort.usbDataStatusToString(getUsbDataStatus())
                + ", isPowerTransferLimited="
                        + isPowerTransferLimited()
                +", powerBrickStatus="
                        + UsbPort.powerBrickStatusToString(getPowerBrickStatus())
                +", powerBrickConnectionStatus="
                        + UsbPort
                            .powerBrickConnectionStatusToString(getPowerBrickConnectionStatus())
                + "}";
    }

@@ -477,10 +479,9 @@ public final class UsbPortStatus implements Parcelable {
        dest.writeInt(mSupportedRoleCombinations);
        dest.writeInt(mContaminantProtectionStatus);
        dest.writeInt(mContaminantDetectionStatus);
        dest.writeInt(mUsbDataStatus.length);
        dest.writeIntArray(mUsbDataStatus);
        dest.writeInt(mUsbDataStatus);
        dest.writeBoolean(mPowerTransferLimited);
        dest.writeInt(mPowerBrickStatus);
        dest.writeInt(mPowerBrickConnectionStatus);
    }

    public static final @NonNull Parcelable.Creator<UsbPortStatus> CREATOR =
@@ -493,14 +494,13 @@ public final class UsbPortStatus implements Parcelable {
            int supportedRoleCombinations = in.readInt();
            int contaminantProtectionStatus = in.readInt();
            int contaminantDetectionStatus = in.readInt();
            int[] usbDataStatus = new int[in.readInt()];
            in.readIntArray(usbDataStatus);
            int usbDataStatus = in.readInt();
            boolean powerTransferLimited = in.readBoolean();
            int powerBrickStatus = in.readInt();
            int powerBrickConnectionStatus = in.readInt();
            return new UsbPortStatus(currentMode, currentPowerRole, currentDataRole,
                    supportedRoleCombinations, contaminantProtectionStatus,
                    contaminantDetectionStatus, usbDataStatus, powerTransferLimited,
                    powerBrickStatus);
                    powerBrickConnectionStatus);
        }

        @Override
@@ -508,4 +508,126 @@ public final class UsbPortStatus implements Parcelable {
            return new UsbPortStatus[size];
        }
    };

    /**
     * Builder is used to create {@link UsbPortStatus} objects.
     *
     * @hide
     */
    public static final class Builder {
        private @UsbPortMode int mCurrentMode;
        private @UsbPowerRole int mCurrentPowerRole;
        private @UsbDataRole int mCurrentDataRole;
        private int mSupportedRoleCombinations;
        private @ContaminantProtectionStatus int mContaminantProtectionStatus;
        private @ContaminantDetectionStatus int mContaminantDetectionStatus;
        private boolean mPowerTransferLimited;
        private @UsbDataStatus int mUsbDataStatus;
        private @PowerBrickConnectionStatus int mPowerBrickConnectionStatus;

        public Builder() {
            mCurrentMode = MODE_NONE;
            mCurrentPowerRole = POWER_ROLE_NONE;
            mCurrentDataRole = DATA_ROLE_NONE;
            mContaminantProtectionStatus = CONTAMINANT_PROTECTION_NONE;
            mContaminantDetectionStatus = CONTAMINANT_DETECTION_NOT_SUPPORTED;
            mUsbDataStatus = DATA_STATUS_UNKNOWN;
            mPowerBrickConnectionStatus = POWER_BRICK_STATUS_UNKNOWN;
        }

        /**
         * Sets the current mode of {@link UsbPortStatus}
         *
         * @return Instance of {@link Builder}
         */
        @NonNull
        public Builder setCurrentMode(@UsbPortMode int currentMode) {
            mCurrentMode = currentMode;
            return this;
        }

        /**
         * Sets the current power role and data role of {@link UsbPortStatus}
         *
         * @return Instance of {@link Builder}
         */
        @NonNull
        public Builder setCurrentRoles(@UsbPowerRole int currentPowerRole,
                @UsbDataRole int currentDataRole) {
            mCurrentPowerRole = currentPowerRole;
            mCurrentDataRole = currentDataRole;
            return this;
        }

        /**
         * Sets supported role combinations of {@link UsbPortStatus}
         *
         * @return Instance of {@link Builder}
         */
        @NonNull
        public Builder setSupportedRoleCombinations(int supportedRoleCombinations) {
            mSupportedRoleCombinations = supportedRoleCombinations;
            return this;
        }

        /**
         * Sets current contaminant status of {@link UsbPortStatus}
         *
         * @return Instance of {@link Builder}
         */
        @NonNull
        public Builder setContaminantStatus(
                @ContaminantProtectionStatus int contaminantProtectionStatus,
                @ContaminantDetectionStatus int contaminantDetectionStatus) {
            mContaminantProtectionStatus = contaminantProtectionStatus;
            mContaminantDetectionStatus = contaminantDetectionStatus;
            return this;
        }

        /**
         * Sets power limit power transfer of {@link UsbPortStatus}
         *
         * @return Instance of {@link Builder}
         */
        @NonNull
        public Builder setPowerTransferLimited(boolean powerTransferLimited) {
            mPowerTransferLimited = powerTransferLimited;
            return this;
        }

        /**
         * Sets the USB data status of {@link UsbPortStatus}
         *
         * @return Instance of {@link Builder}
         */
        @NonNull
        public Builder setUsbDataStatus(@UsbDataStatus int usbDataStatus) {
            mUsbDataStatus = usbDataStatus;
            return this;
        }

        /**
         * Sets the power brick connection status of {@link UsbPortStatus}
         *
         * @return Instance of {@link Builder}
         */
        @NonNull
        public Builder setPowerBrickConnectionStatus(
                @PowerBrickConnectionStatus int powerBrickConnectionStatus) {
            mPowerBrickConnectionStatus = powerBrickConnectionStatus;
            return this;
        }

        /**
         * Creates the {@link UsbPortStatus} object.
         */
        @NonNull
        public UsbPortStatus build() {
            UsbPortStatus status = new UsbPortStatus(mCurrentMode, mCurrentPowerRole,
                    mCurrentDataRole, mSupportedRoleCombinations, mContaminantProtectionStatus,
                    mContaminantDetectionStatus, mUsbDataStatus, mPowerTransferLimited,
                    mPowerBrickConnectionStatus);
            return status;
        }
    };
}
+1 −1
Original line number Diff line number Diff line
@@ -249,7 +249,7 @@ public class DumpUtils {
        dump.write("is_power_transfer_limited", UsbPortStatusProto.IS_POWER_TRANSFER_LIMITED,
                status.isPowerTransferLimited());
        dump.write("usb_power_brick_status", UsbPortStatusProto.USB_POWER_BRICK_STATUS,
                UsbPort.powerBrickStatusToString(status.getPowerBrickStatus()));
                UsbPort.powerBrickConnectionStatusToString(status.getPowerBrickConnectionStatus()));
        dump.end(token);
    }
}
+15 −33

File changed.

Preview size limit exceeded, changes collapsed.

Loading