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

Commit 581c1cf2 authored by William Escande's avatar William Escande Committed by Automerger Merge Worker
Browse files

Merge "GetUuids refactor to call in correct order" am: f8e93753 am:...

Merge "GetUuids refactor to call in correct order" am: f8e93753 am: 716ee1cb am: c3195214 am: 2465e1d7

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/2030105

Change-Id: I8e6b9e74bc1e952b46ff0aeb258c0eabb67a7661
parents 9f2a403e 2465e1d7
Loading
Loading
Loading
Loading
+18 −20
Original line number Diff line number Diff line
@@ -1551,26 +1551,9 @@ public final class BluetoothAdapter {
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
    public @NonNull ParcelUuid[] getUuids() {
        if (getState() != STATE_ON) {
            return new ParcelUuid[0];
        }
        try {
            mServiceLock.readLock().lock();
            if (mService != null) {
                final SynchronousResultReceiver<List<ParcelUuid>> recv =
                        new SynchronousResultReceiver();
                mService.getUuids(mAttributionSource, recv);
                List<ParcelUuid> parcels = recv.awaitResultNoInterrupt(getSyncTimeout())
                        .getValue(new ArrayList<>());
        List<ParcelUuid> parcels = getUuidsList();
        return parcels.toArray(new ParcelUuid[parcels.size()]);
    }
        } catch (RemoteException | TimeoutException e) {
            Log.e(TAG, e.toString() + "\n" + Log.getStackTraceString(new Throwable()));
        } finally {
            mServiceLock.readLock().unlock();
        }
        return new ParcelUuid[0];
    }

    /**
     * Get the UUIDs supported by the local Bluetooth adapter.
@@ -1581,7 +1564,22 @@ public final class BluetoothAdapter {
    @SystemApi
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
    public @NonNull List<ParcelUuid> getUuidsList() {
        return Arrays.asList(getUuids());
        List<ParcelUuid> defaultValue = new ArrayList<>();
        if (getState() != STATE_ON || mService == null) {
            return defaultValue;
        }
        mServiceLock.readLock().lock();
        try {
            final SynchronousResultReceiver<List<ParcelUuid>> recv =
                    new SynchronousResultReceiver();
            mService.getUuids(mAttributionSource, recv);
            return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
        } catch (RemoteException | TimeoutException e) {
            Log.e(TAG, e.toString() + "\n" + Log.getStackTraceString(new Throwable()));
        } finally {
            mServiceLock.readLock().unlock();
        }
        return defaultValue;
    }

    /**