From 258023a05df7e40d3ff1dce90c9d14b6fa2a2118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Wed, 12 Jul 2023 23:27:14 +0100 Subject: [PATCH] Zepp OS: Fix reminder creation Regression introduced by 9d3c48041408ad5deec80acfd5d94a2473165d3a --- .../huami/zeppos/services/ZeppOsRemindersService.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsRemindersService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsRemindersService.java index a21a98265..e836bfc84 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsRemindersService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/zeppos/services/ZeppOsRemindersService.java @@ -139,9 +139,11 @@ public class ZeppOsRemindersService extends AbstractZeppOsService { return; } - // Send the reminders, skipping the reserved slots for calendar events + // Send the reminders for (int i = 0; i < reminders.size(); i++) { LOG.debug("Sending reminder at position {}", i); + + sendReminderToDevice(builder, i, reminders.get(i)); } // Delete the remaining slots, skipping the sent reminders @@ -223,13 +225,15 @@ public class ZeppOsRemindersService extends AbstractZeppOsService { } private void decodeAndUpdateReminders(final byte[] payload) { - final int numReminders = payload[1]; + final int numReminders = payload[1] & 0xff; if (payload.length < 3 + numReminders * 11) { LOG.warn("Unexpected payload length of {} for {} reminders", payload.length, numReminders); return; } + LOG.debug("Got {} reminders from band", numReminders); + int i = 3; while (i < payload.length) { if (payload.length - i < 11) { @@ -252,7 +256,7 @@ public class ZeppOsRemindersService extends AbstractZeppOsService { i += reminderText.length() + 1; - LOG.info("Reminder {}, {}, {}, {}", reminderPosition, String.format("0x%04x", reminderFlags), reminderDate, reminderText); + LOG.info("Reminder[{}]: {}, {}, {}", reminderPosition, String.format("0x%04x", reminderFlags), reminderDate, reminderText); } if (i != payload.length) { LOG.error("Unexpected reminders payload trailer, {} bytes were not consumed", payload.length - i);