From 9acb13f10615bfd4814ca2dea9bc9d2db4d8cb83 Mon Sep 17 00:00:00 2001 From: Rohit Sangwan Date: Thu, 5 Dec 2024 15:56:46 +0530 Subject: [PATCH] Fix Android cleanup on gatt disconnect (#109) --- .../kotlin/com/navideck/universal_ble/UniversalBleHelper.kt | 6 +++--- .../kotlin/com/navideck/universal_ble/UniversalBlePlugin.kt | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/android/src/main/kotlin/com/navideck/universal_ble/UniversalBleHelper.kt b/android/src/main/kotlin/com/navideck/universal_ble/UniversalBleHelper.kt index 592b77e..466defe 100644 --- a/android/src/main/kotlin/com/navideck/universal_ble/UniversalBleHelper.kt +++ b/android/src/main/kotlin/com/navideck/universal_ble/UniversalBleHelper.kt @@ -178,9 +178,9 @@ fun SparseArray.toList(): List> { fun BluetoothGatt.getCharacteristic( service: String, characteristic: String, -): BluetoothGattCharacteristic? = - getService(UUID.fromString(service)).getCharacteristic(UUID.fromString(characteristic)) - +): BluetoothGattCharacteristic? { + return getService(UUID.fromString(service))?.getCharacteristic(UUID.fromString(characteristic)) +} fun subscriptionFailedError(error: String? = null): Result { return Result.failure( diff --git a/android/src/main/kotlin/com/navideck/universal_ble/UniversalBlePlugin.kt b/android/src/main/kotlin/com/navideck/universal_ble/UniversalBlePlugin.kt index 7304980..521e048 100644 --- a/android/src/main/kotlin/com/navideck/universal_ble/UniversalBlePlugin.kt +++ b/android/src/main/kotlin/com/navideck/universal_ble/UniversalBlePlugin.kt @@ -716,7 +716,6 @@ class UniversalBlePlugin : UniversalBlePlatformChannel, BluetoothGattCallback(), private fun cleanConnection(gatt: BluetoothGatt) { knownGatts.remove(gatt) gatt.disconnect() - gatt.close() readResultFutureList.removeAll { if (it.deviceId == gatt.device.address) { @@ -885,6 +884,8 @@ class UniversalBlePlugin : UniversalBlePlatformChannel, BluetoothGattCallback(), gatt.device.address, false, status.parseHciErrorCode() ) {} } + Log.d(TAG, "Closing gatt for ${gatt.device.name}") + gatt.close() } }