From 96d07bb58af5092d11fe8429928815a0d8a8c6f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Sat, 25 Jan 2025 23:03:53 +0000 Subject: [PATCH] Garmin: Fix workouts step count 1 cycle = 2 steps. This is most likely true for other activities, but we do not currently have a clear split (eg. strokes in rowing matches cycles, but not in swimming). --- .../devices/garmin/GarminWorkoutParser.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminWorkoutParser.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminWorkoutParser.java index 9d12e134e..7802c65a9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminWorkoutParser.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/GarminWorkoutParser.java @@ -181,7 +181,12 @@ public class GarminWorkoutParser implements ActivitySummaryParser { summaryData.add(SWOLF_AVG, session.getAvgSwolf(), UNIT_NONE); } if (session.getTotalCycles() != null) { - summaryData.addTotal(session.getTotalCycles(), cycleUnit); + if (cycleUnit == ActivityKind.CycleUnit.STEPS) { + summaryData.addTotal(session.getTotalCycles() * 2, cycleUnit); + } else { + // FIXME some of the rest might also need adjusting... + summaryData.addTotal(session.getTotalCycles(), cycleUnit); + } } if (session.getTotalCalories() != null) { summaryData.add(CALORIES_BURNT, session.getTotalCalories(), UNIT_KCAL); @@ -217,10 +222,20 @@ public class GarminWorkoutParser implements ActivitySummaryParser { summaryData.add(STRESS_AVG, session.getAvgStress(), UNIT_NONE); } if (session.getAverageCadence() != null) { - summaryData.addCadenceAvg(session.getAverageCadence(), cycleUnit); + if (cycleUnit == ActivityKind.CycleUnit.STEPS) { + summaryData.addCadenceAvg(session.getAverageCadence() * 2, cycleUnit); + } else { + // FIXME some of the rest might also need adjusting... + summaryData.addCadenceAvg(session.getAverageCadence(), cycleUnit); + } } if (session.getMaxCadence() != null) { - summaryData.addCadenceMax(session.getMaxCadence(), cycleUnit); + if (cycleUnit == ActivityKind.CycleUnit.STEPS) { + summaryData.addCadenceMax(session.getMaxCadence() * 2, cycleUnit); + } else { + // FIXME some of the rest might also need adjusting... + summaryData.addCadenceMax(session.getMaxCadence(), cycleUnit); + } } if (session.getTotalAscent() != null) { summaryData.add(ASCENT_DISTANCE, session.getTotalAscent(), UNIT_METERS);