summaryrefslogtreecommitdiff
path: root/framework/java/android/bluetooth/BluetoothAdapter.java
diff options
context:
space:
mode:
authorWilliam Escande <wescande@google.com>2022-03-18 18:17:11 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-03-18 18:17:11 +0000
commit2465e1d738bc16cc2704924843d1fa6faf635862 (patch)
treedf3f4ecaaee1b56687f1d9f0e291cc61b21a1bc4 /framework/java/android/bluetooth/BluetoothAdapter.java
parentc195d2fc71c445f24f19e42a913ef6e7a748a32f (diff)
parentc3195214411dc58736833a6f7462dd53262618ad (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.java38
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;
}
/**