summaryrefslogtreecommitdiffstats
path: root/connected-device-lib/src
diff options
context:
space:
mode:
authorDan Harms <danharms@google.com>2020-02-11 16:04:36 -0800
committerDan Harms <danharms@google.com>2020-02-11 16:09:54 -0800
commite43ed45133707be0fc9702f223c7e1f97996c013 (patch)
tree82f17a30e81350b841b7bfad49e2aaeb5d0eb5cb /connected-device-lib/src
parent685df9d1b4aa70d9bad2928b209534614e387a99 (diff)
downloadplatform_packages_apps_Car_libs-e43ed45133707be0fc9702f223c7e1f97996c013.tar.gz
platform_packages_apps_Car_libs-e43ed45133707be0fc9702f223c7e1f97996c013.tar.bz2
platform_packages_apps_Car_libs-e43ed45133707be0fc9702f223c7e1f97996c013.zip
Prevent multiple callbacks from being registered
Causing incorrect behavior after associating again. Fixes: 149118712 Test: Re-associating succeeds multiple times in a row Change-Id: Ibc38192648b883b0db3514067c14b9e6d9a3c277
Diffstat (limited to 'connected-device-lib/src')
-rw-r--r--connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java2
-rw-r--r--connected-device-lib/src/com/android/car/connecteddevice/ble/CarBleCentralManager.java1
-rw-r--r--connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java2
3 files changed, 4 insertions, 1 deletions
diff --git a/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java b/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java
index 87787aa2..69251790 100644
--- a/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java
+++ b/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java
@@ -337,8 +337,8 @@ public class ConnectedDeviceManager {
mStorage.removeAssociatedDeviceForActiveUser(deviceId);
InternalConnectedDevice device = mConnectedDevices.get(deviceId);
if (device != null) {
- removeConnectedDevice(deviceId, device.mCarBleManager);
device.mCarBleManager.disconnectDevice(deviceId);
+ removeConnectedDevice(deviceId, device.mCarBleManager);
}
logd(TAG, "Successfully removed associated device " + deviceId + ".");
}
diff --git a/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBleCentralManager.java b/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBleCentralManager.java
index 54435dfc..a9168a8d 100644
--- a/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBleCentralManager.java
+++ b/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBleCentralManager.java
@@ -121,6 +121,7 @@ public class CarBleCentralManager extends CarBleManager {
@Override
public void disconnectDevice(String deviceId) {
+ logd(TAG, "Request to disconnect from device " + deviceId + ".");
BleDevice device = getConnectedDevice(deviceId);
if (device == null) {
return;
diff --git a/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java b/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java
index 32bc19cb..4c9383c3 100644
--- a/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java
+++ b/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java
@@ -161,6 +161,7 @@ public class CarBlePeripheralManager extends CarBleManager {
logd(TAG, "Successfully started advertising for device " + deviceId + ".");
}
};
+ mBlePeripheralManager.unregisterCallback(mAssociationPeripheralCallback);
mBlePeripheralManager.registerCallback(mReconnectPeripheralCallback);
startAdvertising(deviceId, mAdvertiseCallback, /* includeDeviceName = */ false);
}
@@ -190,6 +191,7 @@ public class CarBlePeripheralManager extends CarBleManager {
adapter.setName(nameForAssociation);
logd(TAG, "Changing bluetooth adapter name from " + mOriginalBluetoothName + " to "
+ nameForAssociation + ".");
+ mBlePeripheralManager.unregisterCallback(mReconnectPeripheralCallback);
mBlePeripheralManager.registerCallback(mAssociationPeripheralCallback);
mAdvertiseCallback = new AdvertiseCallback() {
@Override