From d93e0259637ad82219a45c7f296455f4f5cd98ec Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Thu, 18 Nov 2021 23:02:47 +0100 Subject: [PATCH] BLE sensors: clear data when disconnected. Part of #1027. --- .../services/sensors/BluetoothConnectionManager.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java b/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java index a8f93ea4a..3479512c3 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java @@ -69,6 +69,8 @@ public abstract class BluetoothConnectionManager { case BluetoothProfile.STATE_DISCONNECTED: Log.d(TAG, "Disconnected from sensor: " + gatt.getDevice()); + + clearData(); break; } } @@ -130,14 +132,18 @@ public abstract class BluetoothConnectionManager { observer.onChanged(sensorData); } + private synchronized void clearData() { + observer.onDisconnecting(createEmptySensorData(bluetoothGatt.getDevice().getAddress())); + } + + synchronized void disconnect() { if (bluetoothGatt == null) { Log.w(TAG, "Cannot disconnect if not connected."); return; } bluetoothGatt.close(); - observer.onDisconnecting(createEmptySensorData(bluetoothGatt.getDevice().getAddress())); - + clearData(); bluetoothGatt = null; }