From d621b1d8f8874a9f80266efc722675aa497a4975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Mon, 16 Feb 2026 22:24:03 +0000 Subject: [PATCH] Mi Band 9 Active: Add hack for daily activity parsing --- .../devices/xiaomi/activity/impl/DailyDetailsParser.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/impl/DailyDetailsParser.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/impl/DailyDetailsParser.java index 35d1969940..a35678b00b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/impl/DailyDetailsParser.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/activity/impl/DailyDetailsParser.java @@ -39,6 +39,7 @@ import nodomain.freeyourgadget.gadgetbridge.entities.User; import nodomain.freeyourgadget.gadgetbridge.entities.XiaomiActivitySample; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; +import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; import nodomain.freeyourgadget.gadgetbridge.service.devices.xiaomi.activity.XiaomiActivityFileId; import nodomain.freeyourgadget.gadgetbridge.service.devices.xiaomi.activity.XiaomiActivityParser; import nodomain.freeyourgadget.gadgetbridge.util.GB; @@ -85,6 +86,7 @@ public class DailyDetailsParser extends XiaomiActivityParser { timestamp.setTime(fileId.getTimestamp()); final List samples = new ArrayList<>(); + final boolean isMb9a = gbDevice.getType() == DeviceType.MIBAND9ACTIVE; while (buf.position() < buf.limit()) { complexParser.reset(); @@ -164,6 +166,10 @@ public class DailyDetailsParser extends XiaomiActivityParser { // TODO } } + if (isMb9a) { + // FIXME this is very hacky, but I can't understand why we miss 1 byte per sample on the mb9a + buf.get(); + } if (version >= 4) { // TODO: light value (short)