diff options
author | William Escande <wescande@google.com> | 2022-03-18 18:17:11 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-03-18 18:17:11 +0000 |
commit | 2465e1d738bc16cc2704924843d1fa6faf635862 (patch) | |
tree | df3f4ecaaee1b56687f1d9f0e291cc61b21a1bc4 /framework/java/android/bluetooth/BluetoothAdapter.java | |
parent | c195d2fc71c445f24f19e42a913ef6e7a748a32f (diff) | |
parent | c3195214411dc58736833a6f7462dd53262618ad (diff) |
Merge "GetUuids refactor to call in correct order" am: f8e9375339 am: 716ee1cb1c am: c319521441
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/2030105
Change-Id: I1f44ec4e58f8a93f6eb159c089b221e6ea625b2f
Diffstat (limited to 'framework/java/android/bluetooth/BluetoothAdapter.java')
-rw-r--r-- | framework/java/android/bluetooth/BluetoothAdapter.java | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/framework/java/android/bluetooth/BluetoothAdapter.java b/framework/java/android/bluetooth/BluetoothAdapter.java index 6c79eb0f38..53f96a60f6 100644 --- a/framework/java/android/bluetooth/BluetoothAdapter.java +++ b/framework/java/android/bluetooth/BluetoothAdapter.java @@ -1551,25 +1551,8 @@ 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<>()); - 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]; + List<ParcelUuid> parcels = getUuidsList(); + return parcels.toArray(new ParcelUuid[parcels.size()]); } /** @@ -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; } /** |