summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2022-08-10 11:15:16 -0700
committerLinux Build Service Account <lnxbuild@localhost>2022-08-10 11:15:16 -0700
commitfd44afebdcad9cfcaf4b29e979f1d6acc6c917f2 (patch)
tree05fcdd928bf675083b34ec65486e95226d9a2054
parent7b2835c88cb8d1733d60d7a558d80d9fc0d05150 (diff)
parent7c361396d2c2fbf58423d45d5c54792a69bade75 (diff)
Merge 7c361396d2c2fbf58423d45d5c54792a69bade75 on remote branch
Change-Id: Ib46c197d57679181b505738ad576adf0779e68a0
-rw-r--r--android/app/jni/com_android_bluetooth_gatt.cpp20
-rwxr-xr-xandroid/app/src/com/android/bluetooth/bass_client/BassClientStateMachine.java3
-rw-r--r--apex/Android.bp1
-rw-r--r--framework/java/android/bluetooth/BluetoothA2dp.java34
-rwxr-xr-xframework/java/android/bluetooth/BluetoothA2dpSink.java18
-rw-r--r--framework/java/android/bluetooth/BluetoothAdapter.java102
-rw-r--r--framework/java/android/bluetooth/BluetoothAvrcpController.java12
-rw-r--r--framework/java/android/bluetooth/BluetoothCsipSetCoordinator.java18
-rw-r--r--framework/java/android/bluetooth/BluetoothDevice.java66
-rw-r--r--framework/java/android/bluetooth/BluetoothGatt.java54
-rw-r--r--framework/java/android/bluetooth/BluetoothGattServer.java22
-rw-r--r--framework/java/android/bluetooth/BluetoothHapClient.java28
-rw-r--r--framework/java/android/bluetooth/BluetoothHeadset.java50
-rw-r--r--framework/java/android/bluetooth/BluetoothHeadsetClient.java54
-rw-r--r--framework/java/android/bluetooth/BluetoothHearingAid.java26
-rw-r--r--framework/java/android/bluetooth/BluetoothHidDevice.java24
-rw-r--r--framework/java/android/bluetooth/BluetoothHidHost.java30
-rw-r--r--framework/java/android/bluetooth/BluetoothLeAudio.java38
-rw-r--r--framework/java/android/bluetooth/BluetoothLeBroadcast.java12
-rw-r--r--framework/java/android/bluetooth/BluetoothManager.java2
-rw-r--r--framework/java/android/bluetooth/BluetoothMap.java18
-rw-r--r--framework/java/android/bluetooth/BluetoothMapClient.java24
-rw-r--r--framework/java/android/bluetooth/BluetoothPan.java20
-rw-r--r--framework/java/android/bluetooth/BluetoothPbapClient.java14
-rw-r--r--framework/java/android/bluetooth/BluetoothSap.java18
-rw-r--r--framework/java/android/bluetooth/BluetoothVolumeControl.java20
-rw-r--r--framework/java/android/bluetooth/le/AdvertisingSet.java16
-rw-r--r--framework/java/android/bluetooth/le/BluetoothLeAdvertiser.java4
-rw-r--r--framework/java/android/bluetooth/le/BluetoothLeScanner.java14
-rw-r--r--framework/java/android/bluetooth/le/PeriodicAdvertisingManager.java8
-rw-r--r--service/java/com/android/server/bluetooth/BluetoothManagerService.java34
-rw-r--r--system/bta/dm/bta_dm_act.cc82
-rw-r--r--system/bta/dm/bta_dm_api.cc20
-rw-r--r--system/bta/dm/bta_dm_int.h13
-rw-r--r--system/bta/dm/bta_dm_main.cc22
-rw-r--r--system/bta/gatt/bta_gattc_act.cc53
-rw-r--r--system/bta/gatt/bta_gattc_int.h1
-rw-r--r--system/bta/gatt/bta_gattc_utils.cc3
-rw-r--r--system/bta/include/bta_api.h8
-rw-r--r--system/btif/src/btif_dm.cc13
-rw-r--r--system/btif/src/btif_gatt_client.cc35
-rw-r--r--system/gd/hci/acl_manager/le_impl.h2
-rw-r--r--system/gd/hci/le_address_manager.cc15
-rw-r--r--system/test/mock/mock_bta_dm_act.cc5
-rw-r--r--system/test/mock/mock_bta_dm_api.cc9
-rw-r--r--system/test/mock/mock_bta_dm_api.h20
46 files changed, 627 insertions, 478 deletions
diff --git a/android/app/jni/com_android_bluetooth_gatt.cpp b/android/app/jni/com_android_bluetooth_gatt.cpp
index cebab548c5..46da457006 100644
--- a/android/app/jni/com_android_bluetooth_gatt.cpp
+++ b/android/app/jni/com_android_bluetooth_gatt.cpp
@@ -349,14 +349,8 @@ void btgattc_write_characteristic_cb(int conn_id, int status, uint16_t handle,
if (!sCallbackEnv.valid()) return;
ScopedLocalRef<jbyteArray> jb(sCallbackEnv.get(), NULL);
- if (status == 0) { // Success
- jb.reset(sCallbackEnv->NewByteArray(len));
- sCallbackEnv->SetByteArrayRegion(jb.get(), 0, len, (jbyte*)value);
- } else {
- uint8_t value = 0;
- jb.reset(sCallbackEnv->NewByteArray(1));
- sCallbackEnv->SetByteArrayRegion(jb.get(), 0, 1, (jbyte*)&value);
- }
+ jb.reset(sCallbackEnv->NewByteArray(len));
+ sCallbackEnv->SetByteArrayRegion(jb.get(), 0, len, (jbyte*)value);
sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onWriteCharacteristic,
conn_id, status, handle, jb.get());
}
@@ -393,14 +387,8 @@ void btgattc_write_descriptor_cb(int conn_id, int status, uint16_t handle,
if (!sCallbackEnv.valid()) return;
ScopedLocalRef<jbyteArray> jb(sCallbackEnv.get(), NULL);
- if (status == 0) { // Success
- jb.reset(sCallbackEnv->NewByteArray(len));
- sCallbackEnv->SetByteArrayRegion(jb.get(), 0, len, (jbyte*)value);
- } else {
- uint8_t value = 0;
- jb.reset(sCallbackEnv->NewByteArray(1));
- sCallbackEnv->SetByteArrayRegion(jb.get(), 0, 1, (jbyte*)&value);
- }
+ jb.reset(sCallbackEnv->NewByteArray(len));
+ sCallbackEnv->SetByteArrayRegion(jb.get(), 0, len, (jbyte*)value);
sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onWriteDescriptor, conn_id,
status, handle, jb.get());
}
diff --git a/android/app/src/com/android/bluetooth/bass_client/BassClientStateMachine.java b/android/app/src/com/android/bluetooth/bass_client/BassClientStateMachine.java
index 78ec39540b..cdae78d979 100755
--- a/android/app/src/com/android/bluetooth/bass_client/BassClientStateMachine.java
+++ b/android/app/src/com/android/bluetooth/bass_client/BassClientStateMachine.java
@@ -461,7 +461,6 @@ public class BassClientStateMachine extends StateMachine {
int broadcastId = result.getBroadcastId();
log("broadcast ID: " + broadcastId);
metaData.setBroadcastId(broadcastId);
- metaData.setSourceAdvertisingSid(result.getAdvSid());
}
return metaData.build();
}
@@ -679,7 +678,7 @@ public class BassClientStateMachine extends StateMachine {
offset += BassConstants.BCAST_RCVR_STATE_BIS_SYNC_SIZE;
log("BIS index byte array: ");
BassUtils.printByteArray(audioSyncIndex);
- ByteBuffer wrapped = ByteBuffer.wrap(audioSyncIndex);
+ ByteBuffer wrapped = ByteBuffer.wrap(reverseBytes(audioSyncIndex));
audioSyncState.add((long) wrapped.getInt());
byte metaDataLength = receiverState[offset++];
diff --git a/apex/Android.bp b/apex/Android.bp
index e6fd115971..3515453121 100644
--- a/apex/Android.bp
+++ b/apex/Android.bp
@@ -52,6 +52,7 @@ apex {
manifest: "apex_manifest.json",
bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"],
systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"],
+ compat_configs: ["bluetooth-compat-config"],
apps: ["Bluetooth"],
multilib: {
diff --git a/framework/java/android/bluetooth/BluetoothA2dp.java b/framework/java/android/bluetooth/BluetoothA2dp.java
index a3dece72b3..c1d4fa7492 100644
--- a/framework/java/android/bluetooth/BluetoothA2dp.java
+++ b/framework/java/android/bluetooth/BluetoothA2dp.java
@@ -336,7 +336,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connectWithAttribution(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -382,7 +382,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnectWithAttribution(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -408,7 +408,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevicesWithAttribution(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -436,7 +436,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStatesWithAttribution(states,
mAttributionSource, recv);
return Attributable.setAttributionSource(
@@ -464,7 +464,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionStateWithAttribution(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -506,7 +506,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && ((device == null) || isValidDevice(device))) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setActiveDevice(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -538,7 +538,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<BluetoothDevice> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getActiveDevice(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -601,7 +601,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -656,7 +656,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -682,7 +682,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isAvrcpAbsoluteVolumeSupported(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -736,7 +736,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isA2dpPlaying(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -795,7 +795,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
} else if (isEnabled() && isValidDevice(device)) {
try {
final SynchronousResultReceiver<BluetoothCodecStatus> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getCodecStatus(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -952,7 +952,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.isOptionalCodecsSupported(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -989,7 +989,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.isOptionalCodecsEnabled(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1065,7 +1065,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getDynamicBufferSupport(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1101,7 +1101,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<BufferConstraints> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getBufferConstraints(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1140,7 +1140,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setBufferLengthMillis(codec, value, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothA2dpSink.java b/framework/java/android/bluetooth/BluetoothA2dpSink.java
index 59416818ce..67042decc9 100755
--- a/framework/java/android/bluetooth/BluetoothA2dpSink.java
+++ b/framework/java/android/bluetooth/BluetoothA2dpSink.java
@@ -150,7 +150,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -195,7 +195,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -223,7 +223,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -253,7 +253,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -282,7 +282,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -316,7 +316,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
} else if (isEnabled() && isValidDevice(device)) {
try {
final SynchronousResultReceiver<BluetoothAudioConfig> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getAudioConfig(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -377,7 +377,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -433,7 +433,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -466,7 +466,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isA2dpPlaying(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothAdapter.java b/framework/java/android/bluetooth/BluetoothAdapter.java
index 67515bef5c..4d664c97f2 100644
--- a/framework/java/android/bluetooth/BluetoothAdapter.java
+++ b/framework/java/android/bluetooth/BluetoothAdapter.java
@@ -1280,7 +1280,7 @@ public final class BluetoothAdapter {
@Override
public @InternalAdapterState Integer apply(IBluetooth serviceQuery) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
serviceQuery.getState(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout())
.getValue(BluetoothAdapter.STATE_OFF);
@@ -1569,7 +1569,7 @@ public final class BluetoothAdapter {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public int getNameLengthForAdvertise() {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.getNameLengthForAdvertise(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(-1);
} catch (RemoteException | TimeoutException e) {
@@ -1594,7 +1594,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.factoryReset(mAttributionSource, recv);
if (recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false)
&& mManagerService != null
@@ -1659,7 +1659,7 @@ public final class BluetoothAdapter {
mServiceLock.readLock().lock();
try {
final SynchronousResultReceiver<List<ParcelUuid>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
mService.getUuids(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1694,7 +1694,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.setName(name, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -1725,7 +1725,7 @@ public final class BluetoothAdapter {
mServiceLock.readLock().lock();
if (mService != null) {
final SynchronousResultReceiver<BluetoothClass> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
mService.getBluetoothClass(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -1760,7 +1760,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.setBluetoothClass(bluetoothClass, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -1791,7 +1791,7 @@ public final class BluetoothAdapter {
mServiceLock.readLock().lock();
if (mService != null) {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
mService.getIoCapability(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout())
.getValue(BluetoothAdapter.IO_CAPABILITY_UNKNOWN);
@@ -1827,7 +1827,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.setIoCapability(capability, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -1857,7 +1857,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.getLeIoCapability(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout())
.getValue(BluetoothAdapter.IO_CAPABILITY_UNKNOWN);
@@ -1893,7 +1893,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.setLeIoCapability(capability, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -1931,7 +1931,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.getScanMode(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(SCAN_MODE_NONE);
}
@@ -1980,7 +1980,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.setScanMode(mode, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout())
.getValue(BluetoothStatusCodes.ERROR_UNKNOWN);
@@ -2009,7 +2009,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Long> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Long> recv = SynchronousResultReceiver.get();
mService.getDiscoverableTimeout(mAttributionSource, recv);
long timeout = recv.awaitResultNoInterrupt(getSyncTimeout()).getValue((long) -1);
return (timeout == -1) ? null : Duration.ofSeconds(timeout);
@@ -2056,7 +2056,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.setDiscoverableTimeout(timeout.toSeconds(), mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout())
.getValue(BluetoothStatusCodes.ERROR_UNKNOWN);
@@ -2089,7 +2089,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Long> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Long> recv = SynchronousResultReceiver.get();
mService.getDiscoveryEndMillis(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue((long) -1);
}
@@ -2143,7 +2143,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.startDiscovery(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -2181,7 +2181,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.cancelDiscovery(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -2221,7 +2221,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.isDiscovering(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -2266,7 +2266,7 @@ public final class BluetoothAdapter {
mServiceLock.readLock().lock();
if (mService != null) {
if (DBG) Log.d(TAG, "removeActiveDevice, profiles: " + profiles);
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.removeActiveDevice(profiles, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -2320,7 +2320,7 @@ public final class BluetoothAdapter {
if (DBG) {
Log.d(TAG, "setActiveDevice, device: " + device + ", profiles: " + profiles);
}
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.setActiveDevice(device, profiles, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -2385,7 +2385,7 @@ public final class BluetoothAdapter {
+ BluetoothProfile.getProfileName(profile) + ")");
}
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
mService.getActiveDevices(profile, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(new ArrayList<>());
}
@@ -2412,7 +2412,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.isMultiAdvertisementSupported(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -2452,7 +2452,7 @@ public final class BluetoothAdapter {
@Override
public Boolean apply(IBluetooth serviceQuery) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
serviceQuery.isOffloadedFilteringSupported(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
} catch (RemoteException | TimeoutException e) {
@@ -2516,7 +2516,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.isOffloadedScanBatchingSupported(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -2542,7 +2542,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.isLe2MPhySupported(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -2568,7 +2568,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.isLeCodedPhySupported(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -2594,7 +2594,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.isLeExtendedAdvertisingSupported(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -2620,7 +2620,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.isLePeriodicAdvertisingSupported(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -2658,7 +2658,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.isLeAudioSupported(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout())
.getValue(BluetoothStatusCodes.ERROR_UNKNOWN);
@@ -2692,7 +2692,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.isLeAudioBroadcastSourceSupported(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout())
.getValue(BluetoothStatusCodes.ERROR_UNKNOWN);
@@ -2727,7 +2727,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.isLeAudioBroadcastAssistantSupported(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout())
.getValue(BluetoothStatusCodes.ERROR_UNKNOWN);
@@ -2760,7 +2760,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.getLeMaximumAdvertisingDataLength(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(0);
}
@@ -2807,7 +2807,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.getMaxConnectedAudioDevices(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(1);
}
@@ -2837,7 +2837,7 @@ public final class BluetoothAdapter {
// BLE is not supported
return false;
}
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
iGatt.numHwTrackFiltersAvailable(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(0) != 0;
} catch (TimeoutException | RemoteException e) {
@@ -2913,7 +2913,7 @@ public final class BluetoothAdapter {
mServiceLock.readLock().lock();
if (mService != null) {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
mService.getMostRecentlyConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(new ArrayList<>()),
@@ -2949,7 +2949,7 @@ public final class BluetoothAdapter {
mServiceLock.readLock().lock();
if (mService != null) {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
mService.getBondedDevices(mAttributionSource, recv);
return toDeviceSet(Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(new ArrayList<>()),
@@ -2986,7 +2986,7 @@ public final class BluetoothAdapter {
try {
synchronized (mManagerCallback) {
if (mService != null) {
- final SynchronousResultReceiver<Long> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Long> recv = SynchronousResultReceiver.get();
mService.getSupportedProfiles(mAttributionSource, recv);
final long supportedProfilesBitMask =
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue((long) 0);
@@ -3017,7 +3017,7 @@ public final class BluetoothAdapter {
public Integer apply(IBluetooth serviceQuery) {
try {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
serviceQuery.getAdapterConnectionState(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout())
.getValue(STATE_DISCONNECTED);
@@ -3083,7 +3083,7 @@ public final class BluetoothAdapter {
final int defaultValue = STATE_DISCONNECTED;
try {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
pairQuery.first.getProfileConnectionState(pairQuery.second, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -3275,7 +3275,7 @@ public final class BluetoothAdapter {
throw new IllegalArgumentException("The provided PendingIntent is not immutable");
}
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.startRfcommListener(
name, new ParcelUuid(uuid), pendingIntent, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout())
@@ -3304,7 +3304,7 @@ public final class BluetoothAdapter {
@RfcommListenerResult
public int stopRfcommServer(@NonNull UUID uuid) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.stopRfcommListener(new ParcelUuid(uuid), mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout())
.getValue(BluetoothStatusCodes.ERROR_PROFILE_SERVICE_NOT_BOUND);
@@ -3340,7 +3340,7 @@ public final class BluetoothAdapter {
try {
final SynchronousResultReceiver<IncomingRfcommSocketInfo> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
mService.retrievePendingSocketForServiceRecord(new ParcelUuid(uuid),
mAttributionSource, recv);
socketInfo = recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -3982,7 +3982,7 @@ public final class BluetoothAdapter {
Class<?> broadcastClass = null;
Method broadcastClose = null;
try {
- broadcastClass = Class.forName("android.bluetooth.BluetootBroadcast");
+ broadcastClass = Class.forName("android.bluetooth.BluetoothBroadcast");
} catch (ClassNotFoundException ex) {
Log.e(TAG, "no BluetoothBroadcast: exists");
}
@@ -4081,7 +4081,7 @@ public final class BluetoothAdapter {
mMetadataListeners.forEach((device, pair) -> {
try {
final SynchronousResultReceiver recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
mService.registerMetadataListener(mBluetoothMetadataListener,
device, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -4096,7 +4096,7 @@ public final class BluetoothAdapter {
if (!mBluetoothConnectionCallbackExecutorMap.isEmpty()) {
try {
final SynchronousResultReceiver recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
if (mService != null) {
mService.registerBluetoothConnectionCallback(mConnectionCallback,
mAttributionSource, recv);
@@ -4288,7 +4288,7 @@ public final class BluetoothAdapter {
callback.onError(BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED);
} else {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.generateLocalOobData(transport, new WrappedOobDataCallback(callback,
executor), mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -4907,7 +4907,7 @@ public final class BluetoothAdapter {
boolean ret = false;
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.registerMetadataListener(mBluetoothMetadataListener, device,
mAttributionSource, recv);
ret = recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
@@ -4975,7 +4975,7 @@ public final class BluetoothAdapter {
return true;
}
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.unregisterMetadataListener(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
} catch (RemoteException | TimeoutException e) {
@@ -5061,7 +5061,7 @@ public final class BluetoothAdapter {
mServiceLock.readLock().lock();
if (mService != null) {
final SynchronousResultReceiver<Boolean> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
mService.registerBluetoothConnectionCallback(mConnectionCallback,
mAttributionSource, recv);
if (!recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false)) {
@@ -5120,7 +5120,7 @@ public final class BluetoothAdapter {
try {
mServiceLock.readLock().lock();
if (mService != null) {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mService.unregisterBluetoothConnectionCallback(mConnectionCallback,
mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
diff --git a/framework/java/android/bluetooth/BluetoothAvrcpController.java b/framework/java/android/bluetooth/BluetoothAvrcpController.java
index 81fc3e11e9..81ad3c6ee7 100644
--- a/framework/java/android/bluetooth/BluetoothAvrcpController.java
+++ b/framework/java/android/bluetooth/BluetoothAvrcpController.java
@@ -141,7 +141,7 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -169,7 +169,7 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -196,7 +196,7 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -224,7 +224,7 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<BluetoothAvrcpPlayerSettings> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getPlayerSettings(device, mAttributionSource, recv);
settings = recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -249,7 +249,7 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setPlayerApplicationSetting(plAppSetting, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -274,7 +274,7 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.sendGroupNavigationCmd(device, keyCode, keyState, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
return;
diff --git a/framework/java/android/bluetooth/BluetoothCsipSetCoordinator.java b/framework/java/android/bluetooth/BluetoothCsipSetCoordinator.java
index 16e899dced..0c5ebea608 100644
--- a/framework/java/android/bluetooth/BluetoothCsipSetCoordinator.java
+++ b/framework/java/android/bluetooth/BluetoothCsipSetCoordinator.java
@@ -278,7 +278,7 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
IBluetoothCsipSetCoordinatorLockCallback delegate =
new BluetoothCsipSetCoordinatorLockCallbackDelegate(executor, callback);
try {
- final SynchronousResultReceiver<ParcelUuid> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<ParcelUuid> recv = SynchronousResultReceiver.get();
service.lockGroup(groupId, delegate, mAttributionSource, recv);
final ParcelUuid ret = recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
return ret == null ? defaultValue : ret.getUuid();
@@ -311,7 +311,7 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.unlockGroup(new ParcelUuid(lockUuid), mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
return true;
@@ -343,7 +343,7 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Map> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Map> recv = SynchronousResultReceiver.get();
service.getGroupUuidMapByDevice(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -374,7 +374,7 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<Integer>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getAllGroupIds(uuid, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -400,7 +400,7 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -427,7 +427,7 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -453,7 +453,7 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -492,7 +492,7 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -527,7 +527,7 @@ public final class BluetoothCsipSetCoordinator implements BluetoothProfile, Auto
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothDevice.java b/framework/java/android/bluetooth/BluetoothDevice.java
index d2921cf170..4abe7c4dbd 100644
--- a/framework/java/android/bluetooth/BluetoothDevice.java
+++ b/framework/java/android/bluetooth/BluetoothDevice.java
@@ -1642,7 +1642,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
Log.e(TAG, "BT not enabled. Cannot get identity address");
} else {
try {
- final SynchronousResultReceiver<String> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<String> recv = SynchronousResultReceiver.get();
service.getIdentityAddress(mAddress, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -1673,7 +1673,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<String> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<String> recv = SynchronousResultReceiver.get();
service.getRemoteName(this, mAttributionSource, recv);
String name = recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
if (name != null) {
@@ -1708,7 +1708,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getRemoteType(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1737,7 +1737,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<String> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<String> recv = SynchronousResultReceiver.get();
service.getRemoteAliasWithAttribution(this, mAttributionSource, recv);
String alias = recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
if (alias == null) {
@@ -1798,7 +1798,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.setRemoteAlias(this, alias, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -1832,7 +1832,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getBatteryLevel(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1939,7 +1939,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
Log.e(TAG, "Unable to create bond, invalid address " + mAddress);
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.createBond(this, transport, remoteP192Data, remoteP256Data,
mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
@@ -1970,7 +1970,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isBondingInitiatedLocally(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2019,7 +2019,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
+ " called by pid: " + Process.myPid()
+ " tid: " + Process.myTid());
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.cancelBondProcess(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2058,7 +2058,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
+ " called by pid: " + Process.myPid()
+ " tid: " + Process.myTid());
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.removeBond(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2099,7 +2099,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
}
try {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
pairQuery.first.getBondState(pairQuery.second, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(BOND_NONE);
} catch (RemoteException | TimeoutException e) {
@@ -2178,7 +2178,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.canBondWithoutDialog(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2232,7 +2232,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.connectAllEnabledProfiles(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -2279,7 +2279,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.disconnectAllEnabledProfiles(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -2311,7 +2311,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionStateWithAttribution(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue)
!= CONNECTION_STATE_DISCONNECTED;
@@ -2343,7 +2343,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionStateWithAttribution(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue)
> CONNECTION_STATE_CONNECTED;
@@ -2372,7 +2372,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getRemoteClass(this, mAttributionSource, recv);
int classInt = recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
if (classInt == BluetoothClass.ERROR) return null;
@@ -2407,7 +2407,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
} else {
try {
final SynchronousResultReceiver<List<ParcelUuid>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getRemoteUuids(this, mAttributionSource, recv);
List<ParcelUuid> parcels = recv.awaitResultNoInterrupt(getSyncTimeout())
.getValue(null);
@@ -2473,7 +2473,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.fetchRemoteUuidsWithAttribution(this, transport, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2515,7 +2515,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.sdpSearch(this, uuid, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2583,7 +2583,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setPin(this, true, pin.length, pin, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2629,7 +2629,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setPairingConfirmation(this, confirm, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2668,7 +2668,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getPhonebookAccessPermission(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2714,7 +2714,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
throw new IllegalStateException("Bluetooth is not turned ON");
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setSilenceMode(this, silence, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2744,7 +2744,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
throw new IllegalStateException("Bluetooth is not turned ON");
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.getSilenceMode(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2776,7 +2776,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setPhonebookAccessPermission(this, value, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2805,7 +2805,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getMessageAccessPermission(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2842,7 +2842,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setMessageAccessPermission(this, value, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2871,7 +2871,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getSimAccessPermission(this, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -2904,7 +2904,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setSimAccessPermission(this, value, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -3460,7 +3460,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
+ ", should not over " + METADATA_MAX_LENGTH);
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setMetadata(this, key, value, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -3492,7 +3492,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<byte[]> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<byte[]> recv = SynchronousResultReceiver.get();
service.getMetadata(this, key, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -3573,7 +3573,7 @@ public final class BluetoothDevice implements Parcelable, Attributable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.allowLowLatencyAudio(allowed, this, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothGatt.java b/framework/java/android/bluetooth/BluetoothGatt.java
index edfd8ba91f..22cd999a59 100644
--- a/framework/java/android/bluetooth/BluetoothGatt.java
+++ b/framework/java/android/bluetooth/BluetoothGatt.java
@@ -270,7 +270,7 @@ public final class BluetoothGatt implements BluetoothProfile {
return;
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
// autoConnect is inverse of "isDirect"
mService.clientConnect(mClientIf, mDevice.getAddress(), !mAutoConnect,
mTransport, mOpportunistic, mPhy, mAttributionSource, recv);
@@ -452,7 +452,7 @@ public final class BluetoothGatt implements BluetoothProfile {
try {
final int authReq = (mAuthRetryState == AUTH_RETRY_STATE_IDLE)
? AUTHENTICATION_NO_MITM : AUTHENTICATION_MITM;
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.readCharacteristic(
mClientIf, address, handle, authReq, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -520,7 +520,7 @@ public final class BluetoothGatt implements BluetoothProfile {
int requestStatus = BluetoothStatusCodes.ERROR_UNKNOWN;
for (int i = 0; i < WRITE_CHARACTERISTIC_MAX_RETRIES; i++) {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
mService.writeCharacteristic(mClientIf, address, handle,
characteristic.getWriteType(), authReq, value,
mAttributionSource, recv);
@@ -615,7 +615,7 @@ public final class BluetoothGatt implements BluetoothProfile {
try {
final int authReq = (mAuthRetryState == AUTH_RETRY_STATE_IDLE)
? AUTHENTICATION_NO_MITM : AUTHENTICATION_MITM;
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.readDescriptor(mClientIf, address, handle, authReq,
mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -671,7 +671,7 @@ public final class BluetoothGatt implements BluetoothProfile {
try {
final int authReq = (mAuthRetryState == AUTH_RETRY_STATE_IDLE)
? AUTHENTICATION_NO_MITM : AUTHENTICATION_MITM;
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.writeDescriptor(mClientIf, address, handle,
authReq, value, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -997,7 +997,7 @@ public final class BluetoothGatt implements BluetoothProfile {
if (DBG) Log.d(TAG, "registerApp() - UUID=" + uuid);
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.registerClient(new ParcelUuid(uuid), mBluetoothGattCallback, eatt_support,
mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -1021,7 +1021,7 @@ public final class BluetoothGatt implements BluetoothProfile {
try {
mCallback = null;
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.unregisterClient(mClientIf, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
mClientIf = 0;
@@ -1129,7 +1129,7 @@ public final class BluetoothGatt implements BluetoothProfile {
if (mService == null || mClientIf == 0) return;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.clientDisconnect(mClientIf, mDevice.getAddress(), mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -1151,7 +1151,7 @@ public final class BluetoothGatt implements BluetoothProfile {
public boolean connect() {
try {
// autoConnect is inverse of "isDirect"
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.clientConnect(mClientIf, mDevice.getAddress(), false, mTransport,
mOpportunistic, mPhy, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -1184,7 +1184,7 @@ public final class BluetoothGatt implements BluetoothProfile {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void setPreferredPhy(int txPhy, int rxPhy, int phyOptions) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.clientSetPreferredPhy(mClientIf, mDevice.getAddress(), txPhy, rxPhy,
phyOptions, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -1201,7 +1201,7 @@ public final class BluetoothGatt implements BluetoothProfile {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void readPhy() {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.clientReadPhy(mClientIf, mDevice.getAddress(), mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -1240,7 +1240,7 @@ public final class BluetoothGatt implements BluetoothProfile {
mServices.clear();
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.discoverServices(mClientIf, mDevice.getAddress(), mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -1269,7 +1269,7 @@ public final class BluetoothGatt implements BluetoothProfile {
mServices.clear();
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.discoverServiceByUuid(mClientIf, mDevice.getAddress(), new ParcelUuid(uuid),
mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -1363,7 +1363,7 @@ public final class BluetoothGatt implements BluetoothProfile {
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.readCharacteristic(mClientIf, device.getAddress(),
characteristic.getInstanceId(), AUTHENTICATION_NONE, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -1402,7 +1402,7 @@ public final class BluetoothGatt implements BluetoothProfile {
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.readUsingCharacteristicUuid(mClientIf, mDevice.getAddress(),
new ParcelUuid(uuid), startHandle, endHandle, AUTHENTICATION_NONE,
mAttributionSource, recv);
@@ -1511,7 +1511,7 @@ public final class BluetoothGatt implements BluetoothProfile {
int requestStatus = BluetoothStatusCodes.ERROR_UNKNOWN;
try {
for (int i = 0; i < WRITE_CHARACTERISTIC_MAX_RETRIES; i++) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.writeCharacteristic(mClientIf, device.getAddress(),
characteristic.getInstanceId(), writeType, AUTHENTICATION_NONE, value,
mAttributionSource, recv);
@@ -1573,7 +1573,7 @@ public final class BluetoothGatt implements BluetoothProfile {
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.readDescriptor(mClientIf, device.getAddress(),
descriptor.getInstanceId(), AUTHENTICATION_NONE, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -1662,7 +1662,7 @@ public final class BluetoothGatt implements BluetoothProfile {
}
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.writeDescriptor(mClientIf, device.getAddress(),
descriptor.getInstanceId(), AUTHENTICATION_NONE, value, mAttributionSource,
recv);
@@ -1709,7 +1709,7 @@ public final class BluetoothGatt implements BluetoothProfile {
if (mService == null || mClientIf == 0) return false;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.beginReliableWrite(mClientIf, mDevice.getAddress(), mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -1744,7 +1744,7 @@ public final class BluetoothGatt implements BluetoothProfile {
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.endReliableWrite(mClientIf, mDevice.getAddress(), true, mAttributionSource,
recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -1773,7 +1773,7 @@ public final class BluetoothGatt implements BluetoothProfile {
if (mService == null || mClientIf == 0) return;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.endReliableWrite(mClientIf, mDevice.getAddress(), false, mAttributionSource,
recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -1822,7 +1822,7 @@ public final class BluetoothGatt implements BluetoothProfile {
if (device == null) return false;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.registerForNotification(mClientIf, device.getAddress(),
characteristic.getInstanceId(), enable, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -1848,7 +1848,7 @@ public final class BluetoothGatt implements BluetoothProfile {
if (mService == null || mClientIf == 0) return false;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.refreshDevice(mClientIf, mDevice.getAddress(), mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -1875,7 +1875,7 @@ public final class BluetoothGatt implements BluetoothProfile {
if (mService == null || mClientIf == 0) return false;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.readRemoteRssi(mClientIf, mDevice.getAddress(), mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -1909,7 +1909,7 @@ public final class BluetoothGatt implements BluetoothProfile {
if (mService == null || mClientIf == 0) return false;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.configureMTU(mClientIf, mDevice.getAddress(), mtu, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -1943,7 +1943,7 @@ public final class BluetoothGatt implements BluetoothProfile {
if (mService == null || mClientIf == 0) return false;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.connectionParameterUpdate(mClientIf, mDevice.getAddress(), connectionPriority,
mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -1979,7 +1979,7 @@ public final class BluetoothGatt implements BluetoothProfile {
if (mService == null || mClientIf == 0) return false;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.leConnectionUpdate(mClientIf, mDevice.getAddress(),
minConnectionInterval, maxConnectionInterval,
slaveLatency, supervisionTimeout,
diff --git a/framework/java/android/bluetooth/BluetoothGattServer.java b/framework/java/android/bluetooth/BluetoothGattServer.java
index e2410aab96..81933a7bb9 100644
--- a/framework/java/android/bluetooth/BluetoothGattServer.java
+++ b/framework/java/android/bluetooth/BluetoothGattServer.java
@@ -558,7 +558,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
mCallback = callback;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.registerServer(new ParcelUuid(uuid), mBluetoothGattServerCallback,
eatt_support, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -595,7 +595,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
try {
mCallback = null;
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.unregisterServer(mServerIf, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
mServerIf = 0;
@@ -651,7 +651,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
try {
// autoConnect is inverse of "isDirect"
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.serverConnect(mServerIf, device.getAddress(), !autoConnect, mTransport,
mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -677,7 +677,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
if (mService == null || mServerIf == 0) return;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.serverDisconnect(mServerIf, device.getAddress(), mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -707,7 +707,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void setPreferredPhy(BluetoothDevice device, int txPhy, int rxPhy, int phyOptions) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.serverSetPreferredPhy(mServerIf, device.getAddress(), txPhy, rxPhy,
phyOptions, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -726,7 +726,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void readPhy(BluetoothDevice device) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.serverReadPhy(mServerIf, device.getAddress(), mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -762,7 +762,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
if (mService == null || mServerIf == 0) return false;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.sendResponse(mServerIf, device.getAddress(), requestId,
status, offset, value, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -857,7 +857,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
}
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mService.sendNotification(mServerIf, device.getAddress(),
characteristic.getInstanceId(), confirm,
value, mAttributionSource, recv);
@@ -898,7 +898,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
mPendingService = service;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.addService(mServerIf, service, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -927,7 +927,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
if (intService == null) return false;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.removeService(mServerIf, service.getInstanceId(), mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
mServices.remove(intService);
@@ -950,7 +950,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
if (mService == null || mServerIf == 0) return;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.clearServices(mServerIf, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
mServices.clear();
diff --git a/framework/java/android/bluetooth/BluetoothHapClient.java b/framework/java/android/bluetooth/BluetoothHapClient.java
index 1d51670ffe..08d07ff5f8 100644
--- a/framework/java/android/bluetooth/BluetoothHapClient.java
+++ b/framework/java/android/bluetooth/BluetoothHapClient.java
@@ -446,7 +446,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
final IBluetoothHapClient service = getService();
if (service != null) {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.registerCallback(mCallback, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -558,7 +558,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
final IBluetoothHapClient service = getService();
if (service != null) {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.registerCallback(mCallback, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -611,7 +611,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
try {
final IBluetoothHapClient service = getService();
if (service != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.unregisterCallback(mCallback, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -654,7 +654,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -693,7 +693,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (mAdapter.isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -725,7 +725,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<List> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<List> recv = SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -760,7 +760,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<List> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<List> recv = SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -795,7 +795,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -837,7 +837,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getHapGroup(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -869,7 +869,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getActivePresetIndex(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -904,7 +904,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
} else if (isEnabled() && isValidDevice(device)) {
try {
final SynchronousResultReceiver<BluetoothHapPresetInfo> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getActivePresetInfo(device, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -1123,7 +1123,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
} else if (isEnabled() && isValidDevice(device)) {
try {
final SynchronousResultReceiver<BluetoothHapPresetInfo> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getPresetInfo(device, presetIndex, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -1157,7 +1157,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
} else if (isEnabled() && isValidDevice(device)) {
try {
final SynchronousResultReceiver<List<BluetoothHapPresetInfo>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getAllPresetInfo(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -1189,7 +1189,7 @@ public final class BluetoothHapClient implements BluetoothProfile, AutoCloseable
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getFeatures(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothHeadset.java b/framework/java/android/bluetooth/BluetoothHeadset.java
index 693b86608c..b6f63037b1 100644
--- a/framework/java/android/bluetooth/BluetoothHeadset.java
+++ b/framework/java/android/bluetooth/BluetoothHeadset.java
@@ -541,7 +541,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connectWithAttribution(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -586,7 +586,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnectWithAttribution(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -614,7 +614,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevicesWithAttribution(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -645,7 +645,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -672,7 +672,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionStateWithAttribution(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -713,7 +713,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -769,7 +769,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -797,7 +797,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isNoiseReductionSupported(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -825,7 +825,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isVoiceRecognitionSupported(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -869,7 +869,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.startVoiceRecognition(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -903,7 +903,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.stopVoiceRecognition(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -933,7 +933,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isAudioConnected(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -983,7 +983,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (!isDisabled()) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getAudioState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
@@ -1046,7 +1046,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
return BluetoothStatusCodes.ERROR_PROFILE_SERVICE_NOT_BOUND;
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.setAudioRouteAllowed(allowed, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
return BluetoothStatusCodes.SUCCESS;
@@ -1086,7 +1086,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
return BluetoothStatusCodes.ERROR_PROFILE_SERVICE_NOT_BOUND;
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.getAudioRouteAllowed(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false)
? BluetoothStatusCodes.ALLOWED : BluetoothStatusCodes.NOT_ALLOWED;
@@ -1120,7 +1120,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.setForceScoAudio(forced, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -1175,7 +1175,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
return BluetoothStatusCodes.ERROR_PROFILE_SERVICE_NOT_BOUND;
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.connectAudio(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
@@ -1230,7 +1230,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
return BluetoothStatusCodes.ERROR_PROFILE_SERVICE_NOT_BOUND;
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.disconnectAudio(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
@@ -1284,7 +1284,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.startScoUsingVirtualVoiceCall(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1323,7 +1323,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.stopScoUsingVirtualVoiceCall(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1381,7 +1381,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.clccResponse(index, direction, status, mode, mpty, number, type,
mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -1425,7 +1425,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.sendVendorSpecificResultCode(device, command, arg,
mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
@@ -1473,7 +1473,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && (device == null || isValidDevice(device))) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setActiveDevice(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1505,7 +1505,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<BluetoothDevice> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getActiveDevice(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -1540,7 +1540,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isInbandRingingEnabled(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothHeadsetClient.java b/framework/java/android/bluetooth/BluetoothHeadsetClient.java
index d47e41a0b1..1e78f681d5 100644
--- a/framework/java/android/bluetooth/BluetoothHeadsetClient.java
+++ b/framework/java/android/bluetooth/BluetoothHeadsetClient.java
@@ -804,7 +804,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -835,7 +835,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -866,7 +866,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -903,7 +903,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -938,7 +938,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
@@ -999,7 +999,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
@@ -1057,7 +1057,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
@@ -1094,7 +1094,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.startVoiceRecognition(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1126,7 +1126,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.sendVendorAtCommand(device, vendorId, atCommand, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1160,7 +1160,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.stopVoiceRecognition(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1190,7 +1190,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
} else if (isEnabled() && isValidDevice(device)) {
try {
final SynchronousResultReceiver<List<BluetoothHeadsetClientCall>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getCurrentCalls(device, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -1221,7 +1221,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Bundle> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Bundle> recv = SynchronousResultReceiver.get();
service.getCurrentAgEvents(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1254,7 +1254,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.acceptCall(device, flag, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1284,7 +1284,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.holdCall(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1319,7 +1319,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.rejectCall(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1358,7 +1358,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.terminateCall(device, call, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1395,7 +1395,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.enterPrivateMode(device, index, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1431,7 +1431,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.explicitCallTransfer(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1464,7 +1464,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
} else if (isEnabled() && isValidDevice(device)) {
try {
final SynchronousResultReceiver<BluetoothHeadsetClientCall> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.dial(device, number, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -1499,7 +1499,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.sendDTMF(device, code, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1534,7 +1534,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.getLastVoiceTagNumber(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1563,7 +1563,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getAudioState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1594,7 +1594,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.setAudioRouteAllowed(device, allowed, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -1623,7 +1623,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.getAudioRouteAllowed(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1655,7 +1655,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connectAudio(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1687,7 +1687,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnectAudio(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1716,7 +1716,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Bundle> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Bundle> recv = SynchronousResultReceiver.get();
service.getCurrentAgFeatures(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothHearingAid.java b/framework/java/android/bluetooth/BluetoothHearingAid.java
index 3fd011f956..130105d166 100644
--- a/framework/java/android/bluetooth/BluetoothHearingAid.java
+++ b/framework/java/android/bluetooth/BluetoothHearingAid.java
@@ -194,7 +194,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -240,7 +240,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -266,7 +266,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -295,7 +295,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -323,7 +323,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -365,7 +365,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && ((device == null) || isValidDevice(device))) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setActiveDevice(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -397,7 +397,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getActiveDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -461,7 +461,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -518,7 +518,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -570,7 +570,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.setVolume(volume, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -605,7 +605,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Long> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Long> recv = SynchronousResultReceiver.get();
service.getHiSyncId(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -634,7 +634,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getDeviceSide(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -663,7 +663,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getDeviceMode(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothHidDevice.java b/framework/java/android/bluetooth/BluetoothHidDevice.java
index 44a355b5f7..46613f75fe 100644
--- a/framework/java/android/bluetooth/BluetoothHidDevice.java
+++ b/framework/java/android/bluetooth/BluetoothHidDevice.java
@@ -466,7 +466,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -491,7 +491,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -515,7 +515,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -577,7 +577,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
CallbackWrapper cbw = new CallbackWrapper(executor, callback, mAttributionSource);
service.registerApp(sdp, inQos, outQos, cbw, mAttributionSource, recv);
result = recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
@@ -608,7 +608,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.unregisterApp(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -636,7 +636,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.sendReport(device, id, data, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -665,7 +665,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.replyReport(device, type, id, data, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -692,7 +692,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.reportError(device, error, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -718,7 +718,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<String> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<String> recv = SynchronousResultReceiver.get();
service.getUserAppName(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -746,7 +746,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -773,7 +773,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -818,7 +818,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothHidHost.java b/framework/java/android/bluetooth/BluetoothHidHost.java
index ecbeddf2b8..73c3ca829b 100644
--- a/framework/java/android/bluetooth/BluetoothHidHost.java
+++ b/framework/java/android/bluetooth/BluetoothHidHost.java
@@ -302,7 +302,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -348,7 +348,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -377,7 +377,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -407,7 +407,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -440,7 +440,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -504,7 +504,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -563,7 +563,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -600,7 +600,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.virtualUnplug(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -629,7 +629,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.getProtocolMode(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -658,7 +658,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setProtocolMode(device, protocolMode, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -694,7 +694,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.getReport(device, reportType, reportId, bufferSize, mAttributionSource,
recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
@@ -726,7 +726,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setReport(device, reportType, report, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -756,7 +756,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.sendData(device, report, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -785,7 +785,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.getIdleTime(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -815,7 +815,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setIdleTime(device, idleTime, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothLeAudio.java b/framework/java/android/bluetooth/BluetoothLeAudio.java
index 4346dae6da..19d25043f8 100644
--- a/framework/java/android/bluetooth/BluetoothLeAudio.java
+++ b/framework/java/android/bluetooth/BluetoothLeAudio.java
@@ -646,7 +646,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
final IBluetoothLeAudio service = getService();
if (service != null) {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.registerCallback(mCallback,
mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout())
@@ -739,7 +739,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (mAdapter.isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -783,7 +783,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (mAdapter.isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -822,7 +822,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
} else if (mAdapter.isEnabled()) {
try {
final SynchronousResultReceiver<BluetoothDevice> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedGroupLeadDevice(groupId, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -850,7 +850,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
} else if (mAdapter.isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -879,7 +879,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
} else if (mAdapter.isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -907,7 +907,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (mAdapter.isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -962,7 +962,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
final IBluetoothLeAudio service = getService();
if (service != null) {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.registerCallback(mCallback, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -1014,7 +1014,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
try {
final IBluetoothLeAudio service = getService();
if (service != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.unregisterCallback(mCallback, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -1057,7 +1057,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (mAdapter.isEnabled() && ((device == null) || isValidDevice(device))) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setActiveDevice(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1087,7 +1087,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
} else if (mAdapter.isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getActiveDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -1118,7 +1118,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (mAdapter.isEnabled()) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getGroupId(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1148,7 +1148,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (mAdapter.isEnabled()) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.setVolume(volume, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -1178,7 +1178,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (mAdapter.isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.groupAddNode(group_id, device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1210,7 +1210,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (mAdapter.isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.groupRemoveNode(group_id, device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1248,7 +1248,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (mAdapter.isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getAudioLocation(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultLocation);
} catch (RemoteException | TimeoutException e) {
@@ -1288,7 +1288,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1324,7 +1324,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (mAdapter.isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -1396,7 +1396,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
} else if (mAdapter.isEnabled()) {
try {
final SynchronousResultReceiver<BluetoothLeAudioCodecStatus> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getCodecStatus(groupId, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothLeBroadcast.java b/framework/java/android/bluetooth/BluetoothLeBroadcast.java
index 3cdf2cd129..5db7ea23a6 100644
--- a/framework/java/android/bluetooth/BluetoothLeBroadcast.java
+++ b/framework/java/android/bluetooth/BluetoothLeBroadcast.java
@@ -183,7 +183,7 @@ public final class BluetoothLeBroadcast implements AutoCloseable, BluetoothProfi
final IBluetoothLeAudio service = getService();
if (service != null) {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.registerLeBroadcastCallback(mCallback,
mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout())
@@ -442,7 +442,7 @@ public final class BluetoothLeBroadcast implements AutoCloseable, BluetoothProfi
final IBluetoothLeAudio service = getService();
if (service != null) {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.registerLeBroadcastCallback(mCallback, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -495,7 +495,7 @@ public final class BluetoothLeBroadcast implements AutoCloseable, BluetoothProfi
try {
final IBluetoothLeAudio service = getService();
if (service != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.unregisterLeBroadcastCallback(mCallback, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -662,7 +662,7 @@ public final class BluetoothLeBroadcast implements AutoCloseable, BluetoothProfi
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isPlaying(broadcastId, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -696,7 +696,7 @@ public final class BluetoothLeBroadcast implements AutoCloseable, BluetoothProfi
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothLeBroadcastMetadata>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getAllBroadcastMetadata(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
@@ -723,7 +723,7 @@ public final class BluetoothLeBroadcast implements AutoCloseable, BluetoothProfi
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getMaximumNumberOfBroadcasts(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothManager.java b/framework/java/android/bluetooth/BluetoothManager.java
index 7ab32f3dfb..3fcb58a21a 100644
--- a/framework/java/android/bluetooth/BluetoothManager.java
+++ b/framework/java/android/bluetooth/BluetoothManager.java
@@ -172,7 +172,7 @@ public final class BluetoothManager {
IBluetoothGatt iGatt = managerService.getBluetoothGatt();
if (iGatt == null) return devices;
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
iGatt.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
devices = Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(devices),
diff --git a/framework/java/android/bluetooth/BluetoothMap.java b/framework/java/android/bluetooth/BluetoothMap.java
index a8b48348da..2d4bc568ca 100644
--- a/framework/java/android/bluetooth/BluetoothMap.java
+++ b/framework/java/android/bluetooth/BluetoothMap.java
@@ -154,7 +154,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getState(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -184,7 +184,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<BluetoothDevice> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getClient(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -214,7 +214,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isConnected(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -256,7 +256,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -312,7 +312,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -343,7 +343,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -393,7 +393,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
log("getConnectionState(" + pairQuery.second.getAnonymizedAddress()
+ ") uncached");
}
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
try {
pairQuery.first
.getConnectionState(pairQuery.second, mAttributionSource, recv);
@@ -490,7 +490,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -546,7 +546,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothMapClient.java b/framework/java/android/bluetooth/BluetoothMapClient.java
index be3e48a0d9..5241410d41 100644
--- a/framework/java/android/bluetooth/BluetoothMapClient.java
+++ b/framework/java/android/bluetooth/BluetoothMapClient.java
@@ -267,7 +267,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isConnected(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -297,7 +297,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -329,7 +329,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -360,7 +360,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -397,7 +397,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -432,7 +432,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver<>();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
@@ -496,7 +496,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
@@ -555,7 +555,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
@@ -623,7 +623,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.sendMessage(device, contacts, message, sentIntent, deliveredIntent,
mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
@@ -655,7 +655,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.getUnreadMessages(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -684,7 +684,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getSupportedFeatures(device, mAttributionSource, recv);
return (recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue)
& UPLOADING_FEATURE_BITMASK) > 0;
@@ -726,7 +726,7 @@ public final class BluetoothMapClient implements BluetoothProfile, AutoCloseable
} else if (isEnabled() && isValidDevice(device) && handle != null && (status == READ
|| status == UNREAD || status == UNDELETED || status == DELETED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setMessageStatus(device, handle, status, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothPan.java b/framework/java/android/bluetooth/BluetoothPan.java
index 3aafec9bd0..2f6fe4ef55 100644
--- a/framework/java/android/bluetooth/BluetoothPan.java
+++ b/framework/java/android/bluetooth/BluetoothPan.java
@@ -222,7 +222,7 @@ public final class BluetoothPan implements BluetoothProfile {
"The tethered interface has already been released.");
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mService.setBluetoothTethering(mPanCallback, mId, false, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -309,7 +309,7 @@ public final class BluetoothPan implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -353,7 +353,7 @@ public final class BluetoothPan implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -393,7 +393,7 @@ public final class BluetoothPan implements BluetoothProfile {
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -424,7 +424,7 @@ public final class BluetoothPan implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -457,7 +457,7 @@ public final class BluetoothPan implements BluetoothProfile {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -489,7 +489,7 @@ public final class BluetoothPan implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -525,7 +525,7 @@ public final class BluetoothPan implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.setBluetoothTethering(null, 0, value, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -583,7 +583,7 @@ public final class BluetoothPan implements BluetoothProfile {
}
};
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.setBluetoothTethering(panCallback, callback.hashCode(), true,
mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -614,7 +614,7 @@ public final class BluetoothPan implements BluetoothProfile {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isTetheringOn(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothPbapClient.java b/framework/java/android/bluetooth/BluetoothPbapClient.java
index e10f5e5e49..1a29cea046 100644
--- a/framework/java/android/bluetooth/BluetoothPbapClient.java
+++ b/framework/java/android/bluetooth/BluetoothPbapClient.java
@@ -172,7 +172,7 @@ public final class BluetoothPbapClient implements BluetoothProfile, AutoCloseabl
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.connect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -206,7 +206,7 @@ public final class BluetoothPbapClient implements BluetoothProfile, AutoCloseabl
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnect(device, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
return true;
@@ -240,7 +240,7 @@ public final class BluetoothPbapClient implements BluetoothProfile, AutoCloseabl
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -279,7 +279,7 @@ public final class BluetoothPbapClient implements BluetoothProfile, AutoCloseabl
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -316,7 +316,7 @@ public final class BluetoothPbapClient implements BluetoothProfile, AutoCloseabl
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
@@ -394,7 +394,7 @@ public final class BluetoothPbapClient implements BluetoothProfile, AutoCloseabl
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
@@ -455,7 +455,7 @@ public final class BluetoothPbapClient implements BluetoothProfile, AutoCloseabl
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException e) {
diff --git a/framework/java/android/bluetooth/BluetoothSap.java b/framework/java/android/bluetooth/BluetoothSap.java
index 100f1d8605..137c25b29e 100644
--- a/framework/java/android/bluetooth/BluetoothSap.java
+++ b/framework/java/android/bluetooth/BluetoothSap.java
@@ -182,7 +182,7 @@ public final class BluetoothSap implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getState(mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -211,7 +211,7 @@ public final class BluetoothSap implements BluetoothProfile, AutoCloseable {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<BluetoothDevice> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getClient(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -241,7 +241,7 @@ public final class BluetoothSap implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.isConnected(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -282,7 +282,7 @@ public final class BluetoothSap implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.disconnect(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -310,7 +310,7 @@ public final class BluetoothSap implements BluetoothProfile, AutoCloseable {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -340,7 +340,7 @@ public final class BluetoothSap implements BluetoothProfile, AutoCloseable {
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -390,7 +390,7 @@ public final class BluetoothSap implements BluetoothProfile, AutoCloseable {
log("getConnectionState(" + pairQuery.second.getAnonymizedAddress()
+ ") uncached");
}
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
try {
pairQuery.first
.getConnectionState(pairQuery.second, mAttributionSource, recv);
@@ -491,7 +491,7 @@ public final class BluetoothSap implements BluetoothProfile, AutoCloseable {
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -552,7 +552,7 @@ public final class BluetoothSap implements BluetoothProfile, AutoCloseable {
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/BluetoothVolumeControl.java b/framework/java/android/bluetooth/BluetoothVolumeControl.java
index 080b9a6d64..d76a08686d 100644
--- a/framework/java/android/bluetooth/BluetoothVolumeControl.java
+++ b/framework/java/android/bluetooth/BluetoothVolumeControl.java
@@ -157,7 +157,7 @@ public final class BluetoothVolumeControl implements BluetoothProfile, AutoClose
final IBluetoothVolumeControl service = getService();
if (service != null) {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.registerCallback(mCallback, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -245,7 +245,7 @@ public final class BluetoothVolumeControl implements BluetoothProfile, AutoClose
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getConnectedDevices(mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -276,7 +276,7 @@ public final class BluetoothVolumeControl implements BluetoothProfile, AutoClose
} else if (isEnabled()) {
try {
final SynchronousResultReceiver<List<BluetoothDevice>> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.getDevicesMatchingConnectionStates(states, mAttributionSource, recv);
return Attributable.setAttributionSource(
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue),
@@ -306,7 +306,7 @@ public final class BluetoothVolumeControl implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionState(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -355,7 +355,7 @@ public final class BluetoothVolumeControl implements BluetoothProfile, AutoClose
final IBluetoothVolumeControl service = getService();
if (service != null) {
final SynchronousResultReceiver<Integer> recv =
- new SynchronousResultReceiver();
+ SynchronousResultReceiver.get();
service.registerCallback(mCallback, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -406,7 +406,7 @@ public final class BluetoothVolumeControl implements BluetoothProfile, AutoClose
try {
final IBluetoothVolumeControl service = getService();
if (service != null) {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.unregisterCallback(mCallback, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -442,7 +442,7 @@ public final class BluetoothVolumeControl implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled()) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.setVolumeOffset(device, volumeOffset, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
@@ -483,7 +483,7 @@ public final class BluetoothVolumeControl implements BluetoothProfile, AutoClose
final boolean defaultValue = false;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
service.isVolumeOffsetAvailable(device, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -523,7 +523,7 @@ public final class BluetoothVolumeControl implements BluetoothProfile, AutoClose
&& (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN
|| connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED)) {
try {
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
service.setConnectionPolicy(device, connectionPolicy, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
@@ -559,7 +559,7 @@ public final class BluetoothVolumeControl implements BluetoothProfile, AutoClose
if (DBG) log(Log.getStackTraceString(new Throwable()));
} else if (isEnabled() && isValidDevice(device)) {
try {
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
service.getConnectionPolicy(device, mAttributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(defaultValue);
} catch (RemoteException | TimeoutException e) {
diff --git a/framework/java/android/bluetooth/le/AdvertisingSet.java b/framework/java/android/bluetooth/le/AdvertisingSet.java
index cad62c3cb2..d65e4858de 100644
--- a/framework/java/android/bluetooth/le/AdvertisingSet.java
+++ b/framework/java/android/bluetooth/le/AdvertisingSet.java
@@ -81,7 +81,7 @@ public final class AdvertisingSet {
public void enableAdvertising(boolean enable, int duration,
int maxExtendedAdvertisingEvents) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mGatt.enableAdvertisingSet(mAdvertiserId, enable, duration,
maxExtendedAdvertisingEvents, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -107,7 +107,7 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setAdvertisingData(AdvertiseData advertiseData) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mGatt.setAdvertisingData(mAdvertiserId, advertiseData, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
@@ -129,7 +129,7 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setScanResponseData(AdvertiseData scanResponse) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mGatt.setScanResponseData(mAdvertiserId, scanResponse, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
@@ -149,7 +149,7 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setAdvertisingParameters(AdvertisingSetParameters parameters) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mGatt.setAdvertisingParameters(mAdvertiserId, parameters, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
@@ -167,7 +167,7 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setPeriodicAdvertisingParameters(PeriodicAdvertisingParameters parameters) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mGatt.setPeriodicAdvertisingParameters(mAdvertiserId, parameters, mAttributionSource,
recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -191,7 +191,7 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setPeriodicAdvertisingData(AdvertiseData periodicData) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mGatt.setPeriodicAdvertisingData(mAdvertiserId, periodicData, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
@@ -211,7 +211,7 @@ public final class AdvertisingSet {
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void setPeriodicAdvertisingEnabled(boolean enable) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mGatt.setPeriodicAdvertisingEnable(mAdvertiserId, enable, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
@@ -233,7 +233,7 @@ public final class AdvertisingSet {
})
public void getOwnAddress() {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mGatt.getOwnAddress(mAdvertiserId, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
diff --git a/framework/java/android/bluetooth/le/BluetoothLeAdvertiser.java b/framework/java/android/bluetooth/le/BluetoothLeAdvertiser.java
index c77448f57c..26c856792a 100644
--- a/framework/java/android/bluetooth/le/BluetoothLeAdvertiser.java
+++ b/framework/java/android/bluetooth/le/BluetoothLeAdvertiser.java
@@ -463,7 +463,7 @@ public final class BluetoothLeAdvertiser {
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
gatt.startAdvertisingSet(parameters, advertiseData, scanResponse, periodicParameters,
periodicData, duration, maxExtendedAdvertisingEvents, wrapped,
mAttributionSource, recv);
@@ -496,7 +496,7 @@ public final class BluetoothLeAdvertiser {
IBluetoothGatt gatt;
try {
gatt = mBluetoothManager.getBluetoothGatt();
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
gatt.stopAdvertisingSet(wrapped, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
diff --git a/framework/java/android/bluetooth/le/BluetoothLeScanner.java b/framework/java/android/bluetooth/le/BluetoothLeScanner.java
index 890c259642..7ebbcbaa4e 100644
--- a/framework/java/android/bluetooth/le/BluetoothLeScanner.java
+++ b/framework/java/android/bluetooth/le/BluetoothLeScanner.java
@@ -294,7 +294,7 @@ public final class BluetoothLeScanner {
wrapper.startRegistration();
} else {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
gatt.startScanForIntent(callbackIntent, settings, filters,
mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
@@ -342,7 +342,7 @@ public final class BluetoothLeScanner {
IBluetoothGatt gatt;
try {
gatt = mBluetoothManager.getBluetoothGatt();
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
gatt.stopScanForIntent(callbackIntent, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
@@ -440,7 +440,7 @@ public final class BluetoothLeScanner {
// Scan stopped.
if (mScannerId == -1 || mScannerId == -2) return;
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mBluetoothGatt.registerScanner(this, mWorkSource, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
wait(REGISTRATION_CALLBACK_TIMEOUT_MILLIS);
@@ -472,11 +472,11 @@ public final class BluetoothLeScanner {
return;
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mBluetoothGatt.stopScan(mScannerId, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
- final SynchronousResultReceiver recv2 = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv2 = SynchronousResultReceiver.get();
mBluetoothGatt.unregisterScanner(mScannerId, mAttributionSource, recv2);
recv2.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
@@ -494,7 +494,7 @@ public final class BluetoothLeScanner {
return;
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mBluetoothGatt.flushPendingBatchResults(mScannerId, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
@@ -513,7 +513,7 @@ public final class BluetoothLeScanner {
synchronized (this) {
if (status == BluetoothGatt.GATT_SUCCESS) {
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
if (mScannerId == -1) {
// Registration succeeds after timeout, unregister scanner.
mBluetoothGatt.unregisterScanner(scannerId, mAttributionSource, recv);
diff --git a/framework/java/android/bluetooth/le/PeriodicAdvertisingManager.java b/framework/java/android/bluetooth/le/PeriodicAdvertisingManager.java
index e8e1d8737b..730c64f91f 100644
--- a/framework/java/android/bluetooth/le/PeriodicAdvertisingManager.java
+++ b/framework/java/android/bluetooth/le/PeriodicAdvertisingManager.java
@@ -177,7 +177,7 @@ public final class PeriodicAdvertisingManager {
mCallbackWrappers.put(callback, wrapped);
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
gatt.registerSync(scanResult, skip, timeout, wrapped, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
@@ -215,7 +215,7 @@ public final class PeriodicAdvertisingManager {
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
gatt.unregisterSync(wrapper, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
@@ -246,7 +246,7 @@ public final class PeriodicAdvertisingManager {
return;
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
gatt.transferSync(bda, serviceData , syncHandle, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (TimeoutException | RemoteException e) {
@@ -291,7 +291,7 @@ public final class PeriodicAdvertisingManager {
throw new IllegalArgumentException("callback was not properly registered");
}
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
gatt.transferSetInfo(bda, serviceData , advHandle, wrapper, mAttributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
} catch (RemoteException | TimeoutException e) {
diff --git a/service/java/com/android/server/bluetooth/BluetoothManagerService.java b/service/java/com/android/server/bluetooth/BluetoothManagerService.java
index e7fcf56692..5f74ecc6e5 100644
--- a/service/java/com/android/server/bluetooth/BluetoothManagerService.java
+++ b/service/java/com/android/server/bluetooth/BluetoothManagerService.java
@@ -801,7 +801,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
private boolean synchronousDisable(AttributionSource attributionSource)
throws RemoteException, TimeoutException {
if (mBluetooth == null) return false;
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mBluetooth.disable(attributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -810,7 +810,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
private boolean synchronousEnable(boolean quietMode, AttributionSource attributionSource)
throws RemoteException, TimeoutException {
if (mBluetooth == null) return false;
- final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
mBluetooth.enable(quietMode, attributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(false);
}
@@ -819,7 +819,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
private String synchronousGetAddress(AttributionSource attributionSource)
throws RemoteException, TimeoutException {
if (mBluetooth == null) return null;
- final SynchronousResultReceiver<String> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<String> recv = SynchronousResultReceiver.get();
mBluetooth.getAddressWithAttribution(attributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -828,7 +828,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
private String synchronousGetName(AttributionSource attributionSource)
throws RemoteException, TimeoutException {
if (mBluetooth == null) return null;
- final SynchronousResultReceiver<String> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<String> recv = SynchronousResultReceiver.get();
mBluetooth.getName(attributionSource, recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -837,7 +837,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
private int synchronousGetState()
throws RemoteException, TimeoutException {
if (mBluetooth == null) return BluetoothAdapter.STATE_OFF;
- final SynchronousResultReceiver<Integer> recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver<Integer> recv = SynchronousResultReceiver.get();
mBluetooth.getState(recv);
return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(BluetoothAdapter.STATE_OFF);
}
@@ -846,7 +846,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
private void synchronousOnBrEdrDown(AttributionSource attributionSource)
throws RemoteException, TimeoutException {
if (mBluetooth == null) return;
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mBluetooth.onBrEdrDown(attributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -855,7 +855,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
private void synchronousOnLeServiceUp(AttributionSource attributionSource)
throws RemoteException, TimeoutException {
if (mBluetooth == null) return;
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mBluetooth.onLeServiceUp(attributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -864,7 +864,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
private void synchronousRegisterCallback(IBluetoothCallback callback,
AttributionSource attributionSource) throws RemoteException, TimeoutException {
if (mBluetooth == null) return;
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mBluetooth.registerCallback(callback, attributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -873,7 +873,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
private void synchronousUnregisterCallback(IBluetoothCallback callback,
AttributionSource attributionSource) throws RemoteException, TimeoutException {
if (mBluetooth == null) return;
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
mBluetooth.unregisterCallback(callback, attributionSource, recv);
recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
}
@@ -1274,7 +1274,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
if (isBleAppPresent()) {
// Need to stay at BLE ON. Disconnect all Gatt connections
try {
- final SynchronousResultReceiver recv = new SynchronousResultReceiver();
+ final SynchronousResultReceiver recv = SynchronousResultReceiver.get();
if (mBluetoothGatt != null) {
mBluetoothGatt.unregAll(attributionSource, recv);
}
@@ -2015,7 +2015,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
} else if (state == BluetoothAdapter.STATE_OFF) {
mEnable = true;
mBluetooth.factoryReset(mContext.getAttributionSource(),
- new SynchronousResultReceiver());
+ SynchronousResultReceiver.get());
handleEnable(mQuietEnable);
} else if (state == BluetoothAdapter.STATE_BLE_ON) {
addActiveLog(
@@ -2023,14 +2023,14 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
mContext.getPackageName(), false);
synchronousOnBrEdrDown(mContext.getAttributionSource());
mBluetooth.factoryReset(mContext.getAttributionSource(),
- new SynchronousResultReceiver());
+ SynchronousResultReceiver.get());
} else if (state == BluetoothAdapter.STATE_ON) {
addActiveLog(
BluetoothProtoEnums.ENABLE_DISABLE_REASON_FACTORY_RESET,
mContext.getPackageName(), false);
handleDisable();
mBluetooth.factoryReset(mContext.getAttributionSource(),
- new SynchronousResultReceiver());
+ SynchronousResultReceiver.get());
}
} catch (RemoteException | TimeoutException e) {
Log.e(TAG, "factoryReset(): Unable to do factoryReset.", e);
@@ -2510,8 +2510,12 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
break;
}
if (msg.arg1 > 0) {
- mContext.unbindService(psc);
- Log.w(TAG, "Calling psc.bindService from MESSAGE_BIND_PROFILE_SERVICE");
+ try {
+ mContext.unbindService(psc);
+ Log.w(TAG, "Calling psc.bindService from MESSAGE_BIND_PROFILE_SERVICE");
+ } catch (IllegalArgumentException e) {
+ Log.e(TAG, "Unable to unbind service with intent: " + psc.mIntent, e);
+ }
psc.bindService(msg.arg1 - 1);
}
break;
diff --git a/system/bta/dm/bta_dm_act.cc b/system/bta/dm/bta_dm_act.cc
index cc6b7930bf..52bb6448f0 100644
--- a/system/bta/dm/bta_dm_act.cc
+++ b/system/bta/dm/bta_dm_act.cc
@@ -44,6 +44,7 @@
#include "main/shim/shim.h"
#include "osi/include/allocator.h"
#include "osi/include/compat.h"
+#include "osi/include/fixed_queue.h"
#include "osi/include/log.h"
#include "osi/include/osi.h"
#include "stack/btm/btm_ble_int.h"
@@ -320,6 +321,8 @@ void BTA_dm_on_hw_off() {
/* hw is ready, go on with BTA DM initialization */
alarm_free(bta_dm_search_cb.search_timer);
alarm_free(bta_dm_search_cb.gatt_close_timer);
+ osi_free(bta_dm_search_cb.p_pending_search);
+ fixed_queue_free(bta_dm_search_cb.pending_discovery_queue, osi_free);
memset(&bta_dm_search_cb, 0, sizeof(bta_dm_search_cb));
}
@@ -339,6 +342,8 @@ void BTA_dm_on_hw_on() {
/* hw is ready, go on with BTA DM initialization */
alarm_free(bta_dm_search_cb.search_timer);
alarm_free(bta_dm_search_cb.gatt_close_timer);
+ osi_free(bta_dm_search_cb.p_pending_search);
+ fixed_queue_free(bta_dm_search_cb.pending_discovery_queue, osi_free);
memset(&bta_dm_search_cb, 0, sizeof(bta_dm_search_cb));
/*
* TODO: Should alarm_free() the bta_dm_search_cb timers during
@@ -347,6 +352,7 @@ void BTA_dm_on_hw_on() {
bta_dm_search_cb.search_timer = alarm_new("bta_dm_search.search_timer");
bta_dm_search_cb.gatt_close_timer =
alarm_new("bta_dm_search.gatt_close_timer");
+ bta_dm_search_cb.pending_discovery_queue = fixed_queue_new(SIZE_MAX);
memset(&bta_dm_conn_srvcs, 0, sizeof(bta_dm_conn_srvcs));
memset(&bta_dm_di_cb, 0, sizeof(tBTA_DM_DI_CB));
@@ -990,7 +996,7 @@ static bool bta_dm_read_remote_device_name(const RawAddress& bd_addr,
void bta_dm_inq_cmpl(uint8_t num) {
if (bta_dm_search_get_state() == BTA_DM_SEARCH_CANCELLING) {
bta_dm_search_set_state(BTA_DM_SEARCH_IDLE);
- bta_dm_search_cancel_cmpl();
+ bta_dm_execute_queued_request();
return;
}
@@ -1289,6 +1295,7 @@ void bta_dm_search_cmpl() {
/* no BLE connection, i.e. Classic service discovery end */
if (conn_id == GATT_INVALID_CONN_ID) {
bta_dm_search_cb.p_search_cback(BTA_DM_DISC_CMPL_EVT, nullptr);
+ bta_dm_execute_queued_request();
return;
}
@@ -1299,6 +1306,7 @@ void bta_dm_search_cmpl() {
if (count == 0) {
LOG_INFO("Empty GATT database - no BLE services discovered");
bta_dm_search_cb.p_search_cback(BTA_DM_DISC_CMPL_EVT, nullptr);
+ bta_dm_execute_queued_request();
return;
}
@@ -1323,6 +1331,8 @@ void bta_dm_search_cmpl() {
bta_dm_search_cb.p_search_cback(BTA_DM_DISC_BLE_RES_EVT, &result);
bta_dm_search_cb.p_search_cback(BTA_DM_DISC_CMPL_EVT, nullptr);
+
+ bta_dm_execute_queued_request();
}
/*******************************************************************************
@@ -1419,13 +1429,13 @@ void bta_dm_free_sdp_db() {
*
* Function bta_dm_queue_search
*
- * Description Queues search command while search is being cancelled
+ * Description Queues search command
*
* Returns void
*
******************************************************************************/
void bta_dm_queue_search(tBTA_DM_MSG* p_data) {
- bta_dm_search_clear_queue();
+ osi_free_and_reset((void**)&bta_dm_search_cb.p_pending_search);
bta_dm_search_cb.p_pending_search =
(tBTA_DM_MSG*)osi_malloc(sizeof(tBTA_DM_API_SEARCH));
memcpy(bta_dm_search_cb.p_pending_search, p_data, sizeof(tBTA_DM_API_SEARCH));
@@ -1435,50 +1445,76 @@ void bta_dm_queue_search(tBTA_DM_MSG* p_data) {
*
* Function bta_dm_queue_disc
*
- * Description Queues discovery command while search is being cancelled
+ * Description Queues discovery command
*
* Returns void
*
******************************************************************************/
void bta_dm_queue_disc(tBTA_DM_MSG* p_data) {
- bta_dm_search_clear_queue();
- bta_dm_search_cb.p_pending_discovery =
+ tBTA_DM_MSG* p_pending_discovery =
(tBTA_DM_MSG*)osi_malloc(sizeof(tBTA_DM_API_DISCOVER));
- memcpy(bta_dm_search_cb.p_pending_discovery, p_data,
- sizeof(tBTA_DM_API_DISCOVER));
+ memcpy(p_pending_discovery, p_data, sizeof(tBTA_DM_API_DISCOVER));
+ fixed_queue_enqueue(bta_dm_search_cb.pending_discovery_queue,
+ p_pending_discovery);
}
/*******************************************************************************
*
- * Function bta_dm_search_clear_queue
+ * Function bta_dm_execute_queued_request
*
- * Description Clears the queue if API search cancel is called
+ * Description Executes queued request if one exists
*
* Returns void
*
******************************************************************************/
-void bta_dm_search_clear_queue() {
- osi_free_and_reset((void**)&bta_dm_search_cb.p_pending_search);
- osi_free_and_reset((void**)&bta_dm_search_cb.p_pending_discovery);
+void bta_dm_execute_queued_request() {
+ if (bta_dm_search_cb.p_pending_search) {
+ // Updated queued event to search event to trigger start search
+ if (bta_dm_search_cb.p_pending_search->hdr.event ==
+ BTA_DM_API_QUEUE_SEARCH_EVT) {
+ bta_dm_search_cb.p_pending_search->hdr.event = BTA_DM_API_SEARCH_EVT;
+ }
+ LOG_INFO("%s Start pending search", __func__);
+ bta_sys_sendmsg(bta_dm_search_cb.p_pending_search);
+ bta_dm_search_cb.p_pending_search = NULL;
+ } else {
+ tBTA_DM_MSG* p_pending_discovery = (tBTA_DM_MSG*)fixed_queue_try_dequeue(
+ bta_dm_search_cb.pending_discovery_queue);
+ if (p_pending_discovery) {
+ if (p_pending_discovery->hdr.event == BTA_DM_API_QUEUE_DISCOVER_EVT) {
+ p_pending_discovery->hdr.event = BTA_DM_API_DISCOVER_EVT;
+ }
+ LOG_INFO("%s Start pending discovery", __func__);
+ bta_sys_sendmsg(p_pending_discovery);
+ }
+ }
+}
+
+/*******************************************************************************
+ *
+ * Function bta_dm_is_search_request_queued
+ *
+ * Description Checks if there is a queued search request
+ *
+ * Returns bool
+ *
+ ******************************************************************************/
+bool bta_dm_is_search_request_queued() {
+ return bta_dm_search_cb.p_pending_search != NULL;
}
/*******************************************************************************
*
- * Function bta_dm_search_cancel_cmpl
+ * Function bta_dm_search_clear_queue
*
- * Description Search cancel is complete
+ * Description Clears the queue if API search cancel is called
*
* Returns void
*
******************************************************************************/
-void bta_dm_search_cancel_cmpl() {
- if (bta_dm_search_cb.p_pending_search) {
- bta_sys_sendmsg(bta_dm_search_cb.p_pending_search);
- bta_dm_search_cb.p_pending_search = NULL;
- } else if (bta_dm_search_cb.p_pending_discovery) {
- bta_sys_sendmsg(bta_dm_search_cb.p_pending_discovery);
- bta_dm_search_cb.p_pending_discovery = NULL;
- }
+void bta_dm_search_clear_queue() {
+ osi_free_and_reset((void**)&bta_dm_search_cb.p_pending_search);
+ fixed_queue_flush(bta_dm_search_cb.pending_discovery_queue, osi_free);
}
/*******************************************************************************
diff --git a/system/bta/dm/bta_dm_api.cc b/system/bta/dm/bta_dm_api.cc
index cf060eef77..5e1a8787f7 100644
--- a/system/bta/dm/bta_dm_api.cc
+++ b/system/bta/dm/bta_dm_api.cc
@@ -80,11 +80,16 @@ void BTA_DmSetDeviceName(const char* p_name) {
* Returns void
*
******************************************************************************/
-void BTA_DmSearch(tBTA_DM_SEARCH_CBACK* p_cback) {
+void BTA_DmSearch(tBTA_DM_SEARCH_CBACK* p_cback, bool is_bonding_or_sdp) {
tBTA_DM_API_SEARCH* p_msg =
(tBTA_DM_API_SEARCH*)osi_calloc(sizeof(tBTA_DM_API_SEARCH));
- p_msg->hdr.event = BTA_DM_API_SEARCH_EVT;
+ /* Queue request if a device is bonding or performing service discovery */
+ if (is_bonding_or_sdp) {
+ p_msg->hdr.event = BTA_DM_API_QUEUE_SEARCH_EVT;
+ } else {
+ p_msg->hdr.event = BTA_DM_API_SEARCH_EVT;
+ }
p_msg->p_cback = p_cback;
bta_sys_sendmsg(p_msg);
@@ -101,6 +106,8 @@ void BTA_DmSearch(tBTA_DM_SEARCH_CBACK* p_cback) {
*
******************************************************************************/
void BTA_DmSearchCancel(void) {
+ bta_dm_search_clear_queue();
+
switch (bta_dm_search_get_state()) {
case BTA_DM_SEARCH_IDLE:
bta_dm_search_cancel_notify();
@@ -110,7 +117,6 @@ void BTA_DmSearchCancel(void) {
bta_dm_search_cancel();
break;
case BTA_DM_SEARCH_CANCELLING:
- bta_dm_search_clear_queue();
bta_dm_search_cancel_notify();
break;
case BTA_DM_DISCOVER_ACTIVE:
@@ -132,11 +138,15 @@ void BTA_DmSearchCancel(void) {
*
******************************************************************************/
void BTA_DmDiscover(const RawAddress& bd_addr, tBTA_DM_SEARCH_CBACK* p_cback,
- tBT_TRANSPORT transport) {
+ tBT_TRANSPORT transport, bool is_bonding_or_sdp) {
tBTA_DM_API_DISCOVER* p_msg =
(tBTA_DM_API_DISCOVER*)osi_calloc(sizeof(tBTA_DM_API_DISCOVER));
- p_msg->hdr.event = BTA_DM_API_DISCOVER_EVT;
+ if (is_bonding_or_sdp) {
+ p_msg->hdr.event = BTA_DM_API_QUEUE_DISCOVER_EVT;
+ } else {
+ p_msg->hdr.event = BTA_DM_API_DISCOVER_EVT;
+ }
p_msg->bd_addr = bd_addr;
p_msg->transport = transport;
p_msg->p_cback = p_cback;
diff --git a/system/bta/dm/bta_dm_int.h b/system/bta/dm/bta_dm_int.h
index a39c872879..e51d9acb6c 100644
--- a/system/bta/dm/bta_dm_int.h
+++ b/system/bta/dm/bta_dm_int.h
@@ -70,17 +70,19 @@ enum {
BTA_DM_SDP_RESULT_EVT,
BTA_DM_SEARCH_CMPL_EVT,
BTA_DM_DISCOVERY_RESULT_EVT,
- BTA_DM_DISC_CLOSE_TOUT_EVT
+ BTA_DM_DISC_CLOSE_TOUT_EVT,
+ BTA_DM_API_QUEUE_SEARCH_EVT,
+ BTA_DM_API_QUEUE_DISCOVER_EVT
};
-/* data type for BTA_DM_API_SEARCH_EVT */
+/* data type for BTA_DM_API_SEARCH_EVT and BTA_DM_API_QUEUE_SEARCH_EVT */
typedef struct {
BT_HDR_RIGID hdr;
tBTA_SERVICE_MASK services;
tBTA_DM_SEARCH_CBACK* p_cback;
} tBTA_DM_API_SEARCH;
-/* data type for BTA_DM_API_DISCOVER_EVT */
+/* data type for BTA_DM_API_DISCOVER_EVT and BTA_DM_API_QUEUE_DISCOVER_EVT */
typedef struct {
BT_HDR_RIGID hdr;
RawAddress bd_addr;
@@ -356,7 +358,7 @@ typedef struct {
alarm_t* search_timer;
uint8_t service_index;
tBTA_DM_MSG* p_pending_search;
- tBTA_DM_MSG* p_pending_discovery;
+ fixed_queue_t* pending_discovery_queue;
bool wait_disc;
bool sdp_results;
bluetooth::Uuid uuid;
@@ -533,8 +535,9 @@ extern void bta_dm_search_result(tBTA_DM_MSG* p_data);
extern void bta_dm_discovery_cmpl(tBTA_DM_MSG* p_data);
extern void bta_dm_queue_search(tBTA_DM_MSG* p_data);
extern void bta_dm_queue_disc(tBTA_DM_MSG* p_data);
+extern void bta_dm_execute_queued_request();
+extern bool bta_dm_is_search_request_queued();
extern void bta_dm_search_clear_queue();
-extern void bta_dm_search_cancel_cmpl();
extern void bta_dm_search_cancel_notify();
extern void bta_dm_disc_rmt_name(tBTA_DM_MSG* p_data);
extern tBTA_DM_PEER_DEVICE* bta_dm_find_peer_device(
diff --git a/system/bta/dm/bta_dm_main.cc b/system/bta/dm/bta_dm_main.cc
index 5dd404b46f..523831b9da 100644
--- a/system/bta/dm/bta_dm_main.cc
+++ b/system/bta/dm/bta_dm_main.cc
@@ -82,6 +82,12 @@ bool bta_dm_search_sm_execute(BT_HDR_RIGID* p_msg) {
case BTA_DM_DISC_CLOSE_TOUT_EVT:
bta_dm_close_gatt_conn(message);
break;
+ case BTA_DM_API_QUEUE_SEARCH_EVT:
+ bta_dm_queue_search(message);
+ break;
+ case BTA_DM_API_QUEUE_DISCOVER_EVT:
+ bta_dm_queue_disc(message);
+ break;
}
break;
case BTA_DM_SEARCH_ACTIVE:
@@ -101,14 +107,20 @@ bool bta_dm_search_sm_execute(BT_HDR_RIGID* p_msg) {
case BTA_DM_DISC_CLOSE_TOUT_EVT:
bta_dm_close_gatt_conn(message);
break;
+ case BTA_DM_API_DISCOVER_EVT:
+ case BTA_DM_API_QUEUE_DISCOVER_EVT:
+ bta_dm_queue_disc(message);
+ break;
}
break;
case BTA_DM_SEARCH_CANCELLING:
switch (p_msg->event) {
case BTA_DM_API_SEARCH_EVT:
+ case BTA_DM_API_QUEUE_SEARCH_EVT:
bta_dm_queue_search(message);
break;
case BTA_DM_API_DISCOVER_EVT:
+ case BTA_DM_API_QUEUE_DISCOVER_EVT:
bta_dm_queue_disc(message);
break;
case BTA_DM_SDP_RESULT_EVT:
@@ -118,7 +130,7 @@ bool bta_dm_search_sm_execute(BT_HDR_RIGID* p_msg) {
bta_dm_search_set_state(BTA_DM_SEARCH_IDLE);
bta_dm_free_sdp_db();
bta_dm_search_cancel_notify();
- bta_dm_search_cancel_cmpl();
+ bta_dm_execute_queued_request();
break;
}
break;
@@ -136,6 +148,14 @@ bool bta_dm_search_sm_execute(BT_HDR_RIGID* p_msg) {
case BTA_DM_DISCOVERY_RESULT_EVT:
bta_dm_disc_result(message);
break;
+ case BTA_DM_API_SEARCH_EVT:
+ case BTA_DM_API_QUEUE_SEARCH_EVT:
+ bta_dm_queue_search(message);
+ break;
+ case BTA_DM_API_DISCOVER_EVT:
+ case BTA_DM_API_QUEUE_DISCOVER_EVT:
+ bta_dm_queue_disc(message);
+ break;
}
break;
}
diff --git a/system/bta/gatt/bta_gattc_act.cc b/system/bta/gatt/bta_gattc_act.cc
index cd9da7a949..783ab69f14 100644
--- a/system/bta/gatt/bta_gattc_act.cc
+++ b/system/bta/gatt/bta_gattc_act.cc
@@ -385,6 +385,16 @@ void bta_gattc_open(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
return;
}
+ tBTA_GATTC_RCB* p_clreg = p_clcb->p_rcb;
+ /* Re-enable notification registration for closed connection */
+ for (int i = 0; i < BTA_GATTC_NOTIF_REG_MAX; i++) {
+ if (p_clreg->notif_reg[i].in_use &&
+ p_clreg->notif_reg[i].remote_bda == p_clcb->bda &&
+ p_clreg->notif_reg[i].app_disconnected) {
+ p_clreg->notif_reg[i].app_disconnected = false;
+ }
+ }
+
/* a connected remote device */
if (GATT_GetConnIdIfConnected(
p_clcb->p_rcb->client_if, p_data->api_conn.remote_bda,
@@ -511,6 +521,16 @@ void bta_gattc_conn(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
if (p_clcb->p_srcb->mtu == 0) p_clcb->p_srcb->mtu = GATT_DEF_BLE_MTU_SIZE;
+ tBTA_GATTC_RCB* p_clreg = p_clcb->p_rcb;
+ /* Re-enable notification registration for closed connection */
+ for (int i = 0; i < BTA_GATTC_NOTIF_REG_MAX; i++) {
+ if (p_clreg->notif_reg[i].in_use &&
+ p_clreg->notif_reg[i].remote_bda == p_clcb->bda &&
+ p_clreg->notif_reg[i].app_disconnected) {
+ p_clreg->notif_reg[i].app_disconnected = false;
+ }
+ }
+
/* start database cache if needed */
if (p_clcb->p_srcb->gatt_database.IsEmpty() ||
p_clcb->p_srcb->state != BTA_GATTC_SERV_IDLE) {
@@ -604,6 +624,14 @@ void bta_gattc_close(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
bta_sys_conn_close(BTA_ID_GATTC, BTA_ALL_APP_ID, p_clcb->bda);
}
+ /* Disable notification registration for closed connection */
+ for (int i = 0; i < BTA_GATTC_NOTIF_REG_MAX; i++) {
+ if (p_clreg->notif_reg[i].in_use &&
+ p_clreg->notif_reg[i].remote_bda == p_clcb->bda) {
+ p_clreg->notif_reg[i].app_disconnected = true;
+ }
+ }
+
bta_gattc_clcb_dealloc(p_clcb);
if (p_data->hdr.event == BTA_GATTC_API_CLOSE_EVT) {
@@ -963,13 +991,28 @@ static void bta_gattc_write_cmpl(tBTA_GATTC_CLCB* p_clcb,
GATT_WRITE_OP_CB cb = p_clcb->p_q_cmd->api_write.write_cb;
void* my_cb_data = p_clcb->p_q_cmd->api_write.write_cb_data;
- osi_free_and_reset((void**)&p_clcb->p_q_cmd);
-
if (cb) {
- cb(p_clcb->bta_conn_id, p_data->status, p_data->p_cmpl->att_value.handle,
- p_data->p_cmpl->att_value.len, p_data->p_cmpl->att_value.value,
- my_cb_data);
+ if (p_data->status == 0 &&
+ p_clcb->p_q_cmd->api_write.write_type == BTA_GATTC_WRITE_PREPARE) {
+ LOG_DEBUG("Handling prepare write success response: handle 0x%04x",
+ p_data->p_cmpl->att_value.handle);
+ /* If this is successful Prepare write, lets provide to the callback the
+ * data provided by server */
+ cb(p_clcb->bta_conn_id, p_data->status, p_data->p_cmpl->att_value.handle,
+ p_data->p_cmpl->att_value.len, p_data->p_cmpl->att_value.value,
+ my_cb_data);
+ } else {
+ LOG_DEBUG("Handling write response type: %d: handle 0x%04x",
+ p_clcb->p_q_cmd->api_write.write_type,
+ p_data->p_cmpl->att_value.handle);
+ /* Otherwise, provide data which were intended to write. */
+ cb(p_clcb->bta_conn_id, p_data->status, p_data->p_cmpl->att_value.handle,
+ p_clcb->p_q_cmd->api_write.len, p_clcb->p_q_cmd->api_write.p_value,
+ my_cb_data);
+ }
}
+
+ osi_free_and_reset((void**)&p_clcb->p_q_cmd);
}
/** execute write complete */
diff --git a/system/bta/gatt/bta_gattc_int.h b/system/bta/gatt/bta_gattc_int.h
index 917ecc4860..1df5e53f52 100644
--- a/system/bta/gatt/bta_gattc_int.h
+++ b/system/bta/gatt/bta_gattc_int.h
@@ -230,6 +230,7 @@ typedef struct {
typedef struct {
bool in_use;
+ bool app_disconnected;
RawAddress remote_bda;
uint16_t handle;
} tBTA_GATTC_NOTIF_REG;
diff --git a/system/bta/gatt/bta_gattc_utils.cc b/system/bta/gatt/bta_gattc_utils.cc
index ed67729bc9..f49ae36e3c 100644
--- a/system/bta/gatt/bta_gattc_utils.cc
+++ b/system/bta/gatt/bta_gattc_utils.cc
@@ -352,7 +352,8 @@ bool bta_gattc_check_notif_registry(tBTA_GATTC_RCB* p_clreg,
for (i = 0; i < BTA_GATTC_NOTIF_REG_MAX; i++) {
if (p_clreg->notif_reg[i].in_use &&
p_clreg->notif_reg[i].remote_bda == p_srcb->server_bda &&
- p_clreg->notif_reg[i].handle == p_notify->handle) {
+ p_clreg->notif_reg[i].handle == p_notify->handle &&
+ !p_clreg->notif_reg[i].app_disconnected) {
VLOG(1) << "Notification registered!";
return true;
}
diff --git a/system/bta/include/bta_api.h b/system/bta/include/bta_api.h
index 447823a6a8..b98c8e4b5a 100644
--- a/system/bta/include/bta_api.h
+++ b/system/bta/include/bta_api.h
@@ -710,13 +710,15 @@ extern bool BTA_DmSetVisibility(bt_scan_mode_t mode);
* first performs an inquiry; for each device found from the
* inquiry it gets the remote name of the device. If
* parameter services is nonzero, service discovery will be
- * performed on each device for the services specified.
+ * performed on each device for the services specified. If the
+ * parameter is_bonding_or_sdp is true, the request will be
+ * queued until bonding or sdp completes
*
*
* Returns void
*
******************************************************************************/
-extern void BTA_DmSearch(tBTA_DM_SEARCH_CBACK* p_cback);
+extern void BTA_DmSearch(tBTA_DM_SEARCH_CBACK* p_cback, bool is_bonding_or_sdp);
/*******************************************************************************
*
@@ -744,7 +746,7 @@ extern void BTA_DmSearchCancel(void);
******************************************************************************/
extern void BTA_DmDiscover(const RawAddress& bd_addr,
tBTA_DM_SEARCH_CBACK* p_cback,
- tBT_TRANSPORT transport);
+ tBT_TRANSPORT transport, bool is_bonding_or_sdp);
/*******************************************************************************
*
diff --git a/system/btif/src/btif_dm.cc b/system/btif/src/btif_dm.cc
index e13fad3236..30e08cdfba 100644
--- a/system/btif/src/btif_dm.cc
+++ b/system/btif/src/btif_dm.cc
@@ -1917,10 +1917,16 @@ static void bta_energy_info_cb(tBTM_BLE_TX_TIME_MS tx_time,
void btif_dm_start_discovery(void) {
BTIF_TRACE_EVENT("%s", __func__);
+ if (bta_dm_is_search_request_queued()) {
+ LOG_INFO("%s skipping start discovery because a request is queued",
+ __func__);
+ return;
+ }
+
/* Will be enabled to true once inquiry busy level has been received */
btif_dm_inquiry_in_progress = false;
/* find nearby devices */
- BTA_DmSearch(btif_dm_search_devices_evt);
+ BTA_DmSearch(btif_dm_search_devices_evt, is_bonding_or_sdp());
}
/*******************************************************************************
@@ -2400,7 +2406,10 @@ void btif_dm_get_remote_services(RawAddress remote_addr, const int transport) {
BTIF_TRACE_EVENT("%s: transport=%d, remote_addr=%s", __func__, transport,
remote_addr.ToString().c_str());
- BTA_DmDiscover(remote_addr, btif_dm_search_services_evt, transport);
+ BTA_DmDiscover(remote_addr, btif_dm_search_services_evt, transport,
+ remote_addr != pairing_cb.bd_addr &&
+ remote_addr != pairing_cb.static_bdaddr &&
+ is_bonding_or_sdp());
}
void btif_dm_enable_service(tBTA_SERVICE_ID service_id, bool enable) {
diff --git a/system/btif/src/btif_gatt_client.cc b/system/btif/src/btif_gatt_client.cc
index 08e4431ff9..905179d560 100644
--- a/system/btif/src/btif_gatt_client.cc
+++ b/system/btif/src/btif_gatt_client.cc
@@ -106,6 +106,15 @@ extern const btgatt_callbacks_t* bt_gatt_callbacks;
/*******************************************************************************
* Constants & Macros
******************************************************************************/
+#define CLI_CBACK_WRAP_IN_JNI(P_CBACK, P_CBACK_WRAP) \
+ do { \
+ if (bt_gatt_callbacks && bt_gatt_callbacks->client->P_CBACK) { \
+ BTIF_TRACE_API("HAL bt_gatt_callbacks->client->%s", #P_CBACK); \
+ do_in_jni_thread(P_CBACK_WRAP); \
+ } else { \
+ ASSERTC(0, "Callback is NULL", 0); \
+ } \
+ } while (0)
#define CLI_CBACK_IN_JNI(P_CBACK, ...) \
do { \
@@ -534,8 +543,17 @@ static bt_status_t btif_gattc_read_char_descr(int conn_id, uint16_t handle,
void write_char_cb(uint16_t conn_id, tGATT_STATUS status, uint16_t handle,
uint16_t len, const uint8_t* value, void* data) {
- CLI_CBACK_IN_JNI(write_characteristic_cb, conn_id, status, handle, len,
- value);
+ std::vector<uint8_t> val(value, value + len);
+ CLI_CBACK_WRAP_IN_JNI(
+ write_characteristic_cb,
+ base::BindOnce(
+ [](write_characteristic_callback cb, uint16_t conn_id,
+ tGATT_STATUS status, uint16_t handle,
+ std::vector<uint8_t> moved_value) {
+ cb(conn_id, status, handle, moved_value.size(), moved_value.data());
+ },
+ bt_gatt_callbacks->client->write_characteristic_cb, conn_id, status,
+ handle, std::move(val)));
}
static bt_status_t btif_gattc_write_char(int conn_id, uint16_t handle,
@@ -554,7 +572,18 @@ static bt_status_t btif_gattc_write_char(int conn_id, uint16_t handle,
void write_descr_cb(uint16_t conn_id, tGATT_STATUS status, uint16_t handle,
uint16_t len, const uint8_t* value, void* data) {
- CLI_CBACK_IN_JNI(write_descriptor_cb, conn_id, status, handle, len, value);
+ std::vector<uint8_t> val(value, value + len);
+
+ CLI_CBACK_WRAP_IN_JNI(
+ write_descriptor_cb,
+ base::BindOnce(
+ [](write_descriptor_callback cb, uint16_t conn_id,
+ tGATT_STATUS status, uint16_t handle,
+ std::vector<uint8_t> moved_value) {
+ cb(conn_id, status, handle, moved_value.size(), moved_value.data());
+ },
+ bt_gatt_callbacks->client->write_descriptor_cb, conn_id, status,
+ handle, std::move(val)));
}
static bt_status_t btif_gattc_write_char_descr(int conn_id, uint16_t handle,
diff --git a/system/gd/hci/acl_manager/le_impl.h b/system/gd/hci/acl_manager/le_impl.h
index e9d1f0505d..dbef2f271f 100644
--- a/system/gd/hci/acl_manager/le_impl.h
+++ b/system/gd/hci/acl_manager/le_impl.h
@@ -669,7 +669,7 @@ struct le_impl : public bluetooth::hci::LeAddressManagerCallback {
OwnAddressType own_address_type =
static_cast<OwnAddressType>(le_address_manager_->GetCurrentAddress().GetAddressType());
uint16_t conn_interval_min = 0x0018;
- uint16_t conn_interval_max = 0x0030;
+ uint16_t conn_interval_max = 0x0028;
uint16_t conn_latency = 0x0000;
uint16_t supervision_timeout = 0x001f4;
ASSERT(check_connection_parameters(conn_interval_min, conn_interval_max, conn_latency, supervision_timeout));
diff --git a/system/gd/hci/le_address_manager.cc b/system/gd/hci/le_address_manager.cc
index 6d1806d809..28f51004a7 100644
--- a/system/gd/hci/le_address_manager.cc
+++ b/system/gd/hci/le_address_manager.cc
@@ -230,6 +230,11 @@ void LeAddressManager::ack_pause(LeAddressManagerCallback* callback) {
for (auto client : registered_clients_) {
if (client.second != ClientState::PAUSED) {
// make sure all client paused
+ if (client.second != ClientState::WAITING_FOR_PAUSE) {
+ LOG_DEBUG("Trigger OnPause for client that not paused and not waiting for pause");
+ client.second = ClientState::WAITING_FOR_PAUSE;
+ client.first->OnPause();
+ }
return;
}
}
@@ -421,9 +426,9 @@ void LeAddressManager::AddDeviceToResolvingList(
cached_commands_.push(std::move(enable));
if (registered_clients_.empty()) {
- handle_next_command();
+ handler_->BindOnceOn(this, &LeAddressManager::handle_next_command).Invoke();
} else {
- pause_registered_clients();
+ handler_->BindOnceOn(this, &LeAddressManager::pause_registered_clients).Invoke();
}
}
@@ -452,9 +457,9 @@ void LeAddressManager::RemoveDeviceFromResolvingList(
cached_commands_.push(std::move(enable));
if (registered_clients_.empty()) {
- handle_next_command();
+ handler_->BindOnceOn(this, &LeAddressManager::handle_next_command).Invoke();
} else {
- pause_registered_clients();
+ handler_->BindOnceOn(this, &LeAddressManager::pause_registered_clients).Invoke();
}
}
@@ -479,7 +484,7 @@ void LeAddressManager::ClearResolvingList() {
Command enable = {CommandType::SET_ADDRESS_RESOLUTION_ENABLE, std::move(enable_builder)};
cached_commands_.push(std::move(enable));
- pause_registered_clients();
+ handler_->BindOnceOn(this, &LeAddressManager::pause_registered_clients).Invoke();
}
template <class View>
diff --git a/system/test/mock/mock_bta_dm_act.cc b/system/test/mock/mock_bta_dm_act.cc
index 67030ccf5a..f77e90b9b5 100644
--- a/system/test/mock/mock_bta_dm_act.cc
+++ b/system/test/mock/mock_bta_dm_act.cc
@@ -92,7 +92,6 @@ struct bta_dm_rm_cback bta_dm_rm_cback;
struct bta_dm_rmt_name bta_dm_rmt_name;
struct bta_dm_sdp_result bta_dm_sdp_result;
struct bta_dm_search_cancel bta_dm_search_cancel;
-struct bta_dm_search_cancel_cmpl bta_dm_search_cancel_cmpl;
struct bta_dm_search_cancel_notify bta_dm_search_cancel_notify;
struct bta_dm_search_clear_queue bta_dm_search_clear_queue;
struct bta_dm_search_cmpl bta_dm_search_cmpl;
@@ -338,10 +337,6 @@ void bta_dm_search_cancel() {
mock_function_count_map[__func__]++;
test::mock::bta_dm_act::bta_dm_search_cancel();
}
-void bta_dm_search_cancel_cmpl() {
- mock_function_count_map[__func__]++;
- test::mock::bta_dm_act::bta_dm_search_cancel_cmpl();
-}
void bta_dm_search_cancel_notify() {
mock_function_count_map[__func__]++;
test::mock::bta_dm_act::bta_dm_search_cancel_notify();
diff --git a/system/test/mock/mock_bta_dm_api.cc b/system/test/mock/mock_bta_dm_api.cc
index bbb46abd9f..4cbab7ef4b 100644
--- a/system/test/mock/mock_bta_dm_api.cc
+++ b/system/test/mock/mock_bta_dm_api.cc
@@ -163,9 +163,10 @@ void BTA_DmConfirm(const RawAddress& bd_addr, bool accept) {
test::mock::bta_dm_api::BTA_DmConfirm(bd_addr, accept);
}
void BTA_DmDiscover(const RawAddress& bd_addr, tBTA_DM_SEARCH_CBACK* p_cback,
- tBT_TRANSPORT transport) {
+ tBT_TRANSPORT transport, bool is_bonding_or_sd) {
mock_function_count_map[__func__]++;
- test::mock::bta_dm_api::BTA_DmDiscover(bd_addr, p_cback, transport);
+ test::mock::bta_dm_api::BTA_DmDiscover(bd_addr, p_cback, transport,
+ is_bonding_or_sd);
}
bool BTA_DmGetConnectionState(const RawAddress& bd_addr) {
mock_function_count_map[__func__]++;
@@ -184,9 +185,9 @@ tBTA_STATUS BTA_DmRemoveDevice(const RawAddress& bd_addr) {
mock_function_count_map[__func__]++;
return test::mock::bta_dm_api::BTA_DmRemoveDevice(bd_addr);
}
-void BTA_DmSearch(tBTA_DM_SEARCH_CBACK* p_cback) {
+void BTA_DmSearch(tBTA_DM_SEARCH_CBACK* p_cback, bool is_bonding_or_sdp) {
mock_function_count_map[__func__]++;
- test::mock::bta_dm_api::BTA_DmSearch(p_cback);
+ test::mock::bta_dm_api::BTA_DmSearch(p_cback, is_bonding_or_sdp);
}
void BTA_DmSearchCancel(void) {
mock_function_count_map[__func__]++;
diff --git a/system/test/mock/mock_bta_dm_api.h b/system/test/mock/mock_bta_dm_api.h
index 3e64ff3679..d9dd9ba4ed 100644
--- a/system/test/mock/mock_bta_dm_api.h
+++ b/system/test/mock/mock_bta_dm_api.h
@@ -280,15 +280,15 @@ extern struct BTA_DmConfirm BTA_DmConfirm;
// Name: BTA_DmDiscover
// Params: const RawAddress& bd_addr, tBTA_DM_SEARCH_CBACK* p_cback,
-// tBT_TRANSPORT transport Return: void
+// tBT_TRANSPORT transport, bool is_bonding_or_sd Return: void
struct BTA_DmDiscover {
std::function<void(const RawAddress& bd_addr, tBTA_DM_SEARCH_CBACK* p_cback,
- tBT_TRANSPORT transport)>
+ tBT_TRANSPORT transport, bool is_bonding_or_sd)>
body{[](const RawAddress& bd_addr, tBTA_DM_SEARCH_CBACK* p_cback,
- tBT_TRANSPORT transport) {}};
+ tBT_TRANSPORT transport, bool is_bonding_or_sd) {}};
void operator()(const RawAddress& bd_addr, tBTA_DM_SEARCH_CBACK* p_cback,
- tBT_TRANSPORT transport) {
- body(bd_addr, p_cback, transport);
+ tBT_TRANSPORT transport, bool is_bonding_or_sd) {
+ body(bd_addr, p_cback, transport, is_bonding_or_sd);
};
};
extern struct BTA_DmDiscover BTA_DmDiscover;
@@ -340,12 +340,14 @@ struct BTA_DmRemoveDevice {
extern struct BTA_DmRemoveDevice BTA_DmRemoveDevice;
// Name: BTA_DmSearch
-// Params: tBTA_DM_SEARCH_CBACK* p_cback
+// Params: tBTA_DM_SEARCH_CBACK* p_cback, bool is_bonding_or_sdp
// Return: void
struct BTA_DmSearch {
- std::function<void(tBTA_DM_SEARCH_CBACK* p_cback)> body{
- [](tBTA_DM_SEARCH_CBACK* p_cback) {}};
- void operator()(tBTA_DM_SEARCH_CBACK* p_cback) { body(p_cback); };
+ std::function<void(tBTA_DM_SEARCH_CBACK* p_cback, bool is_bonding_or_sdp)>
+ body{[](tBTA_DM_SEARCH_CBACK* p_cback, bool is_bonding_or_sdp) {}};
+ void operator()(tBTA_DM_SEARCH_CBACK* p_cback, bool is_bonding_or_sdp) {
+ body(p_cback, is_bonding_or_sdp);
+ };
};
extern struct BTA_DmSearch BTA_DmSearch;