From c4f2468de17ff20daa68863d6b6a32580f6bf287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Mon, 4 Aug 2025 20:15:27 +0100 Subject: [PATCH] Mi Band 10: Fix swimming workout parsing --- .../xiaomi/activity/XiaomiActivityParser.java | 12 +++++------- .../xiaomi/activity/impl/WorkoutSummaryParser.java | 3 +++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/XiaomiActivityParser.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/XiaomiActivityParser.java index 4a44cfdb84..0a91d218b0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/XiaomiActivityParser.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/XiaomiActivityParser.java @@ -120,14 +120,12 @@ public abstract class XiaomiActivityParser { private static XiaomiActivityParser createForSports(final XiaomiActivityFileId fileId) { assert fileId.getType() == XiaomiActivityFileId.Type.SPORTS; - switch (fileId.getDetailType()) { - case SUMMARY: - return new WorkoutSummaryParser(); - case GPS_TRACK: - return new WorkoutGpsParser(); - } + return switch (fileId.getDetailType()) { + case SUMMARY -> new WorkoutSummaryParser(); + case GPS_TRACK -> new WorkoutGpsParser(); + default -> null; + }; - return null; } public static boolean validData(final byte[] header, final int i) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/impl/WorkoutSummaryParser.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/impl/WorkoutSummaryParser.java index 423b3d65c4..ea15d65d81 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/impl/WorkoutSummaryParser.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/impl/WorkoutSummaryParser.java @@ -618,6 +618,9 @@ public class WorkoutSummaryParser extends XiaomiActivityParser implements Activi case 7: headerSize = 5; break; + case 8: + headerSize = 8; + break; default: LOG.warn("Unable to parse pool swimming summary version {}", fileId.getVersion()); return null;