From f210b3b7321f228b2143f777f18f107160727f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Wed, 8 May 2024 21:41:38 +0100 Subject: [PATCH] Garmin: Fix overcounting of steps When going past midnight we were not resetting the number of steps, resulting in a negative value, which would cause the next sample to overcount. --- .../devices/garmin/GarminActivitySampleProvider.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminActivitySampleProvider.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminActivitySampleProvider.java index 44d10f2ce..084d9c034 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminActivitySampleProvider.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminActivitySampleProvider.java @@ -137,7 +137,11 @@ public class GarminActivitySampleProvider extends AbstractSampleProvider 0) { + if (!d1.equals(d2)) { + // went past midnight - reset steps + prevSteps = s2.getSteps() > 0 ? s2.getSteps() : 0; + } else if (s2.getSteps() > 0) { + // New steps sample for the current day - subtract the previous seen sample int bak = s2.getSteps(); s2.setSteps(s2.getSteps() - prevSteps); prevSteps = bak;