diff options
| author | Dan Harms <danharms@google.com> | 2020-02-11 16:04:36 -0800 |
|---|---|---|
| committer | Dan Harms <danharms@google.com> | 2020-02-11 16:09:54 -0800 |
| commit | e43ed45133707be0fc9702f223c7e1f97996c013 (patch) | |
| tree | 82f17a30e81350b841b7bfad49e2aaeb5d0eb5cb /connected-device-lib/src | |
| parent | 685df9d1b4aa70d9bad2928b209534614e387a99 (diff) | |
| download | platform_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')
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 |
