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

Commit 53b0edf1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Expose isCISCentralSupported() and...

Merge "Expose isCISCentralSupported() and isLePeriodicAdvertisingSyncTransferSenderSupported() API" am: 562f4f14 am: 61d4e7ca47

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1860616

Change-Id: I9c55d5c860f1bb547fc5471feefe8316c53afb4c
parents e9214bc1 562f4f14
Loading
Loading
Loading
Loading
+60 −0
Original line number Diff line number Diff line
@@ -2272,6 +2272,66 @@ public final class BluetoothAdapter {
        return false;
    }

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
    @IntDef(value = {
            BluetoothStatusCodes.SUCCESS,
            BluetoothStatusCodes.ERROR_UNKNOWN,
            BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED,
            BluetoothStatusCodes.ERROR_FEATURE_NOT_SUPPORTED,
    })
    public @interface LeFeatureReturnValues {}

    /**
     * Returns {@link BluetoothStatusCodes#SUCCESS} if LE Connected Isochronous Stream Central
     * feature is supported, returns {@link BluetoothStatusCodes#ERROR_FEATURE_NOT_SUPPORTED} if
     * the feature is not supported or an error code.
     *
     * @return whether the chipset supports the LE Connected Isochronous Stream Central feature
     */
    @RequiresNoPermission
    public @LeFeatureReturnValues int isCisCentralSupported() {
        if (!getLeAccess()) {
            return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
        }
        try {
            mServiceLock.readLock().lock();
            if (mService != null) {
                return mService.isCisCentralSupported();
            }
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
        } finally {
            mServiceLock.readLock().unlock();
        }
        return BluetoothStatusCodes.ERROR_UNKNOWN;
    }

    /**
     * Returns {@link BluetoothStatusCodes#SUCCESS} if LE Periodic Advertising Sync Transfer Sender
     * feature is supported, returns {@link BluetoothStatusCodes#ERROR_FEATURE_NOT_SUPPORTED} if the
     * feature is not supported or an error code
     *
     * @return whether the chipset supports the LE Periodic Advertising Sync Transfer Sender feature
     */
    @RequiresNoPermission
    public @LeFeatureReturnValues int isLePeriodicAdvertisingSyncTransferSenderSupported() {
        if (!getLeAccess()) {
            return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
        }
        try {
            mServiceLock.readLock().lock();
            if (mService != null) {
                return mService.isLePeriodicAdvertisingSyncTransferSenderSupported();
            }
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
        } finally {
            mServiceLock.readLock().unlock();
        }
        return BluetoothStatusCodes.ERROR_UNKNOWN;
    }

    /**
     * Return the maximum LE advertising data length in bytes,
     * if LE Extended Advertising feature is supported, 0 otherwise.
+5 −0
Original line number Diff line number Diff line
@@ -78,6 +78,11 @@ public final class BluetoothStatusCodes {
     */
    public static final int ERROR_MISSING_BLUETOOTH_SCAN_PERMISSION = 7;

    /**
     * Error code indicating that the feature is not supported.
     */
    public static final int ERROR_FEATURE_NOT_SUPPORTED = 8;

    /**
     * If another application has already requested {@link OobData} then another fetch will be
     * disallowed until the callback is removed.