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

Commit 7328d681 authored by Jack He's avatar Jack He
Browse files

CSIP: Use verb first grammar for lock and unlock group API

* Also make executor and callback required as non-null

Fixes: 199877810
Bug: 199877810
Tag: #feature
Test: atest BluetoothInstrumentationTests
Change-Id: If4d6fd9974f49db99271678f91ec401fc3e31d92
parent d3a3a534
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -485,7 +485,7 @@ public class CsipSetCoordinatorService extends ProfileService {
     *
     * @hide
     */
    public @Nullable UUID groupLock(
    public @Nullable UUID lockGroup(
            int groupId, @NonNull IBluetoothCsipSetCoordinatorLockCallback callback) {
        if (callback == null) {
            return null;
@@ -517,7 +517,7 @@ public class CsipSetCoordinatorService extends ProfileService {
     *
     * @hide
     */
    public void groupUnlock(@NonNull UUID lockUuid) {
    public void unlockGroup(@NonNull UUID lockUuid) {
        if (lockUuid == null) {
            return;
        }
@@ -982,14 +982,14 @@ public class CsipSetCoordinatorService extends ProfileService {
        }

        @Override
        public void groupLock(
        public void lockGroup(
                int groupId, @NonNull IBluetoothCsipSetCoordinatorLockCallback callback,
                AttributionSource source, SynchronousResultReceiver receiver) {
            try {
                ParcelUuid defaultValue = null;
                CsipSetCoordinatorService service = getService(source);
                if (service != null) {
                     UUID lockUuid = service.groupLock(groupId, callback);
                    UUID lockUuid = service.lockGroup(groupId, callback);
                    defaultValue = lockUuid == null ? null : new ParcelUuid(lockUuid);
                }
                receiver.send(defaultValue);
@@ -999,12 +999,12 @@ public class CsipSetCoordinatorService extends ProfileService {
        }

        @Override
        public void groupUnlock(@NonNull ParcelUuid lockUuid, AttributionSource source,
        public void unlockGroup(@NonNull ParcelUuid lockUuid, AttributionSource source,
                SynchronousResultReceiver receiver) {
            try {
                CsipSetCoordinatorService service = getService(source);
                if (service != null) {
                    service.groupUnlock(lockUuid.getUuid());
                    service.unlockGroup(lockUuid.getUuid());
                }
                receiver.send(null);
            } catch (RuntimeException e) {
+4 −4
Original line number Diff line number Diff line
@@ -252,7 +252,7 @@ public class CsipSetCoordinatorServiceTest {
    public void testGroupLockSetNative() {
        int group = 0x02;

        UUID lock_uuid = mService.groupLock(group, mCsipSetCoordinatorLockCallback);
        UUID lock_uuid = mService.lockGroup(group, mCsipSetCoordinatorLockCallback);
        Assert.assertNotNull(lock_uuid);
        verify(mCsipSetCoordinatorNativeInterface, times(1)).groupLockSet(eq(group), eq(true));

@@ -270,7 +270,7 @@ public class CsipSetCoordinatorServiceTest {
            throw e.rethrowFromSystemServer();
        }

        mService.groupUnlock(lock_uuid);
        mService.unlockGroup(lock_uuid);
        verify(mCsipSetCoordinatorNativeInterface, times(1)).groupLockSet(eq(group), eq(false));

        mCsipSetCoordinatorNativeInterface.onGroupLockChanged(
@@ -293,11 +293,11 @@ public class CsipSetCoordinatorServiceTest {
    public void testGroupExclusiveLockSet() {
        int group = 0x02;

        UUID lock_uuid = mService.groupLock(group, mCsipSetCoordinatorLockCallback);
        UUID lock_uuid = mService.lockGroup(group, mCsipSetCoordinatorLockCallback);
        verify(mCsipSetCoordinatorNativeInterface, times(1)).groupLockSet(eq(group), eq(true));
        Assert.assertNotNull(lock_uuid);

        lock_uuid = mService.groupLock(group, mCsipSetCoordinatorLockCallback);
        lock_uuid = mService.lockGroup(group, mCsipSetCoordinatorLockCallback);
        verify(mCsipSetCoordinatorNativeInterface, times(1)).groupLockSet(eq(group), eq(true));

        doCallRealMethod()
+2 −2
Original line number Diff line number Diff line
@@ -116,9 +116,9 @@ package android.bluetooth {
    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<java.lang.Integer> getAllGroupIds(@Nullable android.os.ParcelUuid);
    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice);
    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.Map getGroupUuidMapByDevice(@Nullable android.bluetooth.BluetoothDevice);
    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.UUID groupLock(int, @Nullable java.util.concurrent.Executor, @Nullable android.bluetooth.BluetoothCsipSetCoordinator.ClientLockCallback);
    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean groupUnlock(@NonNull java.util.UUID);
    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.UUID lockGroup(int, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothCsipSetCoordinator.ClientLockCallback);
    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice, int);
    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean unlockGroup(@NonNull java.util.UUID);
    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CSIS_DEVICE_AVAILABLE = "android.bluetooth.action.CSIS_DEVICE_AVAILABLE";
    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CSIS_SET_MEMBER_AVAILABLE = "android.bluetooth.action.CSIS_SET_MEMBER_AVAILABLE";
    field public static final String EXTRA_CSIS_GROUP_ID = "android.bluetooth.extra.CSIS_GROUP_ID";
+18 −12
Original line number Diff line number Diff line
@@ -252,32 +252,37 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
     * Lock the set.
     * @param groupId group ID to lock,
     * @param executor callback executor,
     * @param cb callback to report lock and unlock events - stays valid until the app unlocks
     * @param callback callback to report lock and unlock events - stays valid until the app unlocks
     *           using the returned lock identifier or the lock timeouts on the remote side,
     *           as per CSIS specification,
     * @return unique lock identifier used for unlocking or null if lock has failed.
     * @throws {@link IllegalArgumentException} when executor or callback is null
     *
     * @hide
     */
    @SystemApi
    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
    public
    @Nullable UUID groupLock(int groupId, @Nullable @CallbackExecutor Executor executor,
            @Nullable ClientLockCallback cb) {
        if (VDBG) log("groupLockSet()");
    @Nullable UUID lockGroup(int groupId, @NonNull @CallbackExecutor Executor executor,
            @NonNull ClientLockCallback callback) {
        if (VDBG) log("lockGroup()");
        final IBluetoothCsipSetCoordinator service = getService();
        final UUID defaultValue = null;
        if (service == null) {
            Log.w(TAG, "Proxy not attached to service");
            if (DBG) log(Log.getStackTraceString(new Throwable()));
        } else if (isEnabled()) {
            IBluetoothCsipSetCoordinatorLockCallback delegate = null;
            if ((executor != null) && (cb != null)) {
                delegate = new BluetoothCsipSetCoordinatorLockCallbackDelegate(executor, cb);
            if (executor == null) {
                throw new IllegalArgumentException("executor cannot be null");
            }
            if (callback == null) {
                throw new IllegalArgumentException("callback cannot be null");
            }
            IBluetoothCsipSetCoordinatorLockCallback delegate =
                    new BluetoothCsipSetCoordinatorLockCallbackDelegate(executor, callback);
            try {
                final SynchronousResultReceiver<ParcelUuid> recv = new SynchronousResultReceiver();
                service.groupLock(groupId, delegate, mAttributionSource, recv);
                service.lockGroup(groupId, delegate, mAttributionSource, recv);
                final ParcelUuid ret = recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
                return ret == null ? defaultValue : ret.getUuid();
            } catch (RemoteException | TimeoutException e) {
@@ -291,15 +296,16 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
     * Unlock the set.
     * @param lockUuid unique lock identifier
     * @return true if unlocked, false on error
     * @throws {@link IllegalArgumentException} when lockUuid is null
     *
     * @hide
     */
    @SystemApi
    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
    public boolean groupUnlock(@NonNull UUID lockUuid) {
        if (VDBG) log("groupLockSet()");
    public boolean unlockGroup(@NonNull UUID lockUuid) {
        if (VDBG) log("unlockGroup()");
        if (lockUuid == null) {
            return false;
            throw new IllegalArgumentException("lockUuid cannot be null");
        }
        final IBluetoothCsipSetCoordinator service = getService();
        final boolean defaultValue = false;
@@ -309,7 +315,7 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
        } else if (isEnabled()) {
            try {
                final SynchronousResultReceiver recv = new SynchronousResultReceiver();
                service.groupUnlock(new ParcelUuid(lockUuid), mAttributionSource, recv);
                service.unlockGroup(new ParcelUuid(lockUuid), mAttributionSource, recv);
                recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
                return true;
            } catch (RemoteException | TimeoutException e) {
+3 −3
Original line number Diff line number Diff line
@@ -72,14 +72,14 @@ oneway interface IBluetoothCsipSetCoordinator {
   * @return unique lock identifier required for unlocking
   */
  @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
  void groupLock(int groupId, in IBluetoothCsipSetCoordinatorLockCallback callback, in AttributionSource attributionSource, in SynchronousResultReceiver receiver);
  void lockGroup(int groupId, in IBluetoothCsipSetCoordinatorLockCallback callback, in AttributionSource attributionSource, in SynchronousResultReceiver receiver);

  /**
   * Unlock group using {@var lockUuid} acquired through
   * {@link android.bluetooth.IBluetoothCsipSetCoordinator.groupLock}.
   * {@link android.bluetooth.IBluetoothCsipSetCoordinator.lockGroup}.
   */
  @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
  void groupUnlock(in ParcelUuid lockUuid, in AttributionSource attributionSource, in SynchronousResultReceiver receiver);
  void unlockGroup(in ParcelUuid lockUuid, in AttributionSource attributionSource, in SynchronousResultReceiver receiver);

  const int CSIS_GROUP_ID_INVALID = -1;
  const int CSIS_GROUP_SIZE_UNKNOWN = 1;