From d30e7c4e2c4cb7b12b3d2a76265a460a2027656f Mon Sep 17 00:00:00 2001 From: Winston Lowe Date: Sat, 31 Jan 2026 14:55:55 -0800 Subject: [PATCH] Prevent disconnection handling when already disconnected, curing a race condition. --- lib/connector/meshcore_connector.dart | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/connector/meshcore_connector.dart b/lib/connector/meshcore_connector.dart index 1bab130..d5a36e3 100644 --- a/lib/connector/meshcore_connector.dart +++ b/lib/connector/meshcore_connector.dart @@ -706,7 +706,7 @@ class MeshCoreConnector extends ChangeNotifier { try { _connectionSubscription = device.connectionState.listen((state) { - if (state == BluetoothConnectionState.disconnected) { + if (state == BluetoothConnectionState.disconnected && isConnected) { _handleDisconnection(); } }); @@ -959,12 +959,7 @@ class MeshCoreConnector extends ChangeNotifier { if (!isConnected) return; if (_batteryRequested && !force) return; _batteryRequested = true; - try { - await sendFrame(buildGetBattAndStorageFrame()); - } catch (e) { - // Connection likely lost - trigger disconnection handling - _handleDisconnection(); - } + await sendFrame(buildGetBattAndStorageFrame()); } void _startBatteryPolling() {