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

Commit 81dc4fc3 authored by Roy Luo's avatar Roy Luo Committed by Android (Google) Code Review
Browse files

Merge "Extend USB compliance warning API" into main

parents 0e5e3e65 fc495445
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ aconfig_srcjars = [
    ":service-jobscheduler-deviceidle.flags-aconfig-java{.generated_srcjars}",
    ":surfaceflinger_flags_java_lib{.generated_srcjars}",
    ":android.view.contentcapture.flags-aconfig-java{.generated_srcjars}",
    ":android.hardware.usb.flags-aconfig-java{.generated_srcjars}",
]

filegroup {
@@ -681,3 +682,16 @@ java_aconfig_library {
    aconfig_declarations: "android.view.contentcapture.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// USB
aconfig_declarations {
    name: "android.hardware.usb.flags-aconfig",
    package: "android.hardware.usb.flags",
    srcs: ["core/java/android/hardware/usb/flags/*.aconfig"],
}

java_aconfig_library {
    name: "android.hardware.usb.flags-aconfig-java",
    aconfig_declarations: "android.hardware.usb.flags-aconfig",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
+5 −0
Original line number Diff line number Diff line
@@ -6188,8 +6188,13 @@ package android.hardware.usb {
    method public void writeToParcel(android.os.Parcel, int);
    field public static final int COMPLIANCE_WARNING_BC_1_2 = 3; // 0x3
    field public static final int COMPLIANCE_WARNING_DEBUG_ACCESSORY = 2; // 0x2
    field @FlaggedApi("android.hardware.usb.flags.enable_usb_data_compliance_warning") public static final int COMPLIANCE_WARNING_ENUMERATION_FAIL = 7; // 0x7
    field @FlaggedApi("android.hardware.usb.flags.enable_usb_data_compliance_warning") public static final int COMPLIANCE_WARNING_FLAKY_CONNECTION = 8; // 0x8
    field @FlaggedApi("android.hardware.usb.flags.enable_usb_data_compliance_warning") public static final int COMPLIANCE_WARNING_INPUT_POWER_LIMITED = 5; // 0x5
    field @FlaggedApi("android.hardware.usb.flags.enable_usb_data_compliance_warning") public static final int COMPLIANCE_WARNING_MISSING_DATA_LINES = 6; // 0x6
    field public static final int COMPLIANCE_WARNING_MISSING_RP = 4; // 0x4
    field public static final int COMPLIANCE_WARNING_OTHER = 1; // 0x1
    field @FlaggedApi("android.hardware.usb.flags.enable_usb_data_compliance_warning") public static final int COMPLIANCE_WARNING_UNRELIABLE_IO = 9; // 0x9
    field @NonNull public static final android.os.Parcelable.Creator<android.hardware.usb.UsbPortStatus> CREATOR;
    field public static final int DATA_ROLE_DEVICE = 2; // 0x2
    field public static final int DATA_ROLE_HOST = 1; // 0x1
+20 −0
Original line number Diff line number Diff line
@@ -52,6 +52,11 @@ import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESS
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_BC_1_2;
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_MISSING_RP;
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_OTHER;
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_INPUT_POWER_LIMITED;
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_MISSING_DATA_LINES;
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_ENUMERATION_FAIL;
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_FLAKY_CONNECTION;
import static android.hardware.usb.UsbPortStatus.COMPLIANCE_WARNING_UNRELIABLE_IO;
import static android.hardware.usb.DisplayPortAltModeInfo.DISPLAYPORT_ALT_MODE_STATUS_UNKNOWN;
import static android.hardware.usb.DisplayPortAltModeInfo.DISPLAYPORT_ALT_MODE_STATUS_NOT_CAPABLE;
import static android.hardware.usb.DisplayPortAltModeInfo.DISPLAYPORT_ALT_MODE_STATUS_CAPABLE_DISABLED;
@@ -789,6 +794,21 @@ public final class UsbPort {
                    case UsbPortStatus.COMPLIANCE_WARNING_MISSING_RP:
                        complianceWarningString.append("missing rp, ");
                        break;
                    case UsbPortStatus.COMPLIANCE_WARNING_INPUT_POWER_LIMITED:
                        complianceWarningString.append("input power limited, ");
                        break;
                    case UsbPortStatus.COMPLIANCE_WARNING_MISSING_DATA_LINES:
                        complianceWarningString.append("missing data lines, ");
                        break;
                    case UsbPortStatus.COMPLIANCE_WARNING_ENUMERATION_FAIL:
                        complianceWarningString.append("enumeration fail, ");
                        break;
                    case UsbPortStatus.COMPLIANCE_WARNING_FLAKY_CONNECTION:
                        complianceWarningString.append("flaky connection, ");
                        break;
                    case UsbPortStatus.COMPLIANCE_WARNING_UNRELIABLE_IO:
                        complianceWarningString.append("unreliable io, ");
                        break;
                    default:
                        complianceWarningString.append(String.format("Unknown(%d), ", warning));
                        break;
+61 −1
Original line number Diff line number Diff line
@@ -18,11 +18,13 @@ package android.hardware.usb;

import android.Manifest;
import android.annotation.CheckResult;
import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.hardware.usb.flags.Flags;
import android.os.Parcel;
import android.os.Parcelable;

@@ -309,6 +311,54 @@ public final class UsbPortStatus implements Parcelable {
     */
    public static final int COMPLIANCE_WARNING_MISSING_RP = 4;

    /**
     * Used to indicate the charging setups on the USB ports are unable to
     * deliver negotiated power. Introduced in Android V (API level 35)
     * and client applicantions that target API levels lower than 35 will
     * receive {@link #COMPLIANCE_WARNING_OTHER} instead.
     */
    @FlaggedApi(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING)
    public static final int COMPLIANCE_WARNING_INPUT_POWER_LIMITED = 5;

    /**
     * Used to indicate the cable/connector on the USB ports are missing
     * the required wires on the data pins to make data transfer.
     * Introduced in Android V (API level 35) and client applicantions that
     * target API levels lower than 35 will receive
     * {@link #COMPLIANCE_WARNING_OTHER} instead.
     */
    @FlaggedApi(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING)
    public static final int COMPLIANCE_WARNING_MISSING_DATA_LINES = 6;

    /**
     * Used to indicate enumeration failures on the USB ports, potentially due to
     * signal integrity issues or other causes. Introduced in Android V
     * (API level 35) and client applicantions that target API levels lower
     * than 35 will receive {@link #COMPLIANCE_WARNING_OTHER} instead.
     */
    @FlaggedApi(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING)
    public static final int COMPLIANCE_WARNING_ENUMERATION_FAIL = 7;

    /**
     * Used to indicate unexpected data disconnection on the USB ports,
     * potentially due to signal integrity issues or other causes.
     * Introduced in Android V (API level 35) and client applicantions that
     * target API levels lower than 35 will receive
     * {@link #COMPLIANCE_WARNING_OTHER} instead.
     */
    @FlaggedApi(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING)
    public static final int COMPLIANCE_WARNING_FLAKY_CONNECTION = 8;

    /**
     * Used to indicate unreliable or slow data transfer on the USB ports,
     * potentially due to signal integrity issues or other causes.
     * Introduced in Android V (API level 35) and client applicantions that
     * target API levels lower than 35 will receive
     * {@link #COMPLIANCE_WARNING_OTHER} instead.
     */
    @FlaggedApi(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING)
    public static final int COMPLIANCE_WARNING_UNRELIABLE_IO = 9;

    /**
     * Indicates that the Type-C plug orientation cannot be
     * determined because the connected state of the device is unknown.
@@ -372,6 +422,11 @@ public final class UsbPortStatus implements Parcelable {
            COMPLIANCE_WARNING_DEBUG_ACCESSORY,
            COMPLIANCE_WARNING_BC_1_2,
            COMPLIANCE_WARNING_MISSING_RP,
            COMPLIANCE_WARNING_INPUT_POWER_LIMITED,
            COMPLIANCE_WARNING_MISSING_DATA_LINES,
            COMPLIANCE_WARNING_ENUMERATION_FAIL,
            COMPLIANCE_WARNING_FLAKY_CONNECTION,
            COMPLIANCE_WARNING_UNRELIABLE_IO,
    })
    @Retention(RetentionPolicy.SOURCE)
    @interface ComplianceWarning{}
@@ -591,7 +646,12 @@ public final class UsbPortStatus implements Parcelable {
     * @return array including {@link #COMPLIANCE_WARNING_OTHER},
     *         {@link #COMPLIANCE_WARNING_DEBUG_ACCESSORY},
     *         {@link #COMPLIANCE_WARNING_BC_1_2},
     *         or {@link #COMPLIANCE_WARNING_MISSING_RP}
     *         {@link #COMPLIANCE_WARNING_MISSING_RP},
     *         {@link #COMPLIANCE_WARNING_INPUT_POWER_LIMITED},
     *         {@link #COMPLIANCE_WARNING_MISSING_DATA_LINES},
     *         {@link #COMPLIANCE_WARNING_ENUMERATION_FAIL},
     *         {@link #COMPLIANCE_WARNING_FLAKY_CONNECTION},
     *         {@link #COMPLIANCE_WARNING_UNRELIABLE_IO}.
     */
    @CheckResult
    @NonNull
+8 −0
Original line number Diff line number Diff line
package: "android.hardware.usb.flags"

flag {
    name: "enable_usb_data_compliance_warning"
    namespace: "system_sw_usb"
    description: "Enable USB data compliance warnings when set"
    bug: "296119135"
}
Loading