From a5678392f5f3d830e344f2e2286e0d05b3e650e1 Mon Sep 17 00:00:00 2001 From: geeksville Date: Sun, 30 Aug 2020 12:01:38 -0700 Subject: [PATCH] fix autobug - if gatt is closed while we are shutting down it is not an error --- .../com/geeksville/mesh/service/BluetoothInterface.kt | 9 ++++++--- .../java/com/geeksville/mesh/service/SafeBluetooth.kt | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/service/BluetoothInterface.kt b/app/src/main/java/com/geeksville/mesh/service/BluetoothInterface.kt index a2abf1634..6aa081938 100644 --- a/app/src/main/java/com/geeksville/mesh/service/BluetoothInterface.kt +++ b/app/src/main/java/com/geeksville/mesh/service/BluetoothInterface.kt @@ -409,9 +409,12 @@ class BluetoothInterface(val service: RadioInterfaceService, val address: String } } } catch (ex: BLEException) { - scheduleReconnect( - "Unexpected error discovering services, forcing disconnect $ex" - ) + if (s.gatt == null) + warn("GATT was closed while discovering, assume we are shutting down") + else + scheduleReconnect( + "Unexpected error discovering services, forcing disconnect $ex" + ) } } } diff --git a/app/src/main/java/com/geeksville/mesh/service/SafeBluetooth.kt b/app/src/main/java/com/geeksville/mesh/service/SafeBluetooth.kt index 1c56ad35a..69ff4de7e 100644 --- a/app/src/main/java/com/geeksville/mesh/service/SafeBluetooth.kt +++ b/app/src/main/java/com/geeksville/mesh/service/SafeBluetooth.kt @@ -613,7 +613,8 @@ class SafeBluetooth(private val context: Context, private val device: BluetoothD private fun queueDiscoverServices(cont: Continuation, timeout: Long = 0) { queueWork("discover", cont, timeout) { - gatt?.discoverServices() ?: throw BLEException("GATT is null") + gatt?.discoverServices() + ?: false // throw BLEException("GATT is null") - if we return false here it is probably because the device is being torn down } }