From 6d4d92fd8828290d8b1521c28d9d448a7528480b Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Mon, 17 Sep 2018 23:01:01 +0200 Subject: [PATCH] Live Activity: don't enable notifications every second This caused the BLE queue to fill up more and more. --- .../service/devices/huami/HuamiSupport.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java index a90a174e8..aa3fafceb 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java @@ -179,6 +179,7 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { private boolean isMusicAppStarted = false; private MusicSpec bufferMusicSpec = null; private MusicStateSpec bufferMusicStateSpec = null; + private boolean heartRateNotifyEnabled; public HuamiSupport() { this(LOG); @@ -207,6 +208,7 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { @Override protected TransactionBuilder initializeDevice(TransactionBuilder builder) { try { + heartRateNotifyEnabled = false; boolean authenticate = needsAuth; needsAuth = false; byte authFlags = HuamiService.AUTH_BYTE; @@ -871,9 +873,12 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { } try { TransactionBuilder builder = performInitialized("Enable realtime heart rate measurement"); - BluetoothGattCharacteristic heartrateCharacteristic = getCharacteristic(GattCharacteristic.UUID_CHARACTERISTIC_HEART_RATE_MEASUREMENT); - if (heartrateCharacteristic != null) { - builder.notify(heartrateCharacteristic, enable); + if (heartRateNotifyEnabled != enable) { + BluetoothGattCharacteristic heartrateCharacteristic = getCharacteristic(GattCharacteristic.UUID_CHARACTERISTIC_HEART_RATE_MEASUREMENT); + if (heartrateCharacteristic != null) { + builder.notify(heartrateCharacteristic, enable); + heartRateNotifyEnabled = enable; + } } if (enable) { builder.write(characteristicHRControlPoint, stopHeartMeasurementManual);