From f36caafc54fc3c0d204b5c8c46cb44df9f7bbe8f Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Sat, 4 Jul 2015 22:22:59 +0200 Subject: [PATCH] Fixed syncing activity data (#45) Bytes 1-6 represent the date/time, so we should not try to check for this. Thanks a lot, Daniele! --- .../java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java | 3 +++ .../freeyourgadget/gadgetbridge/miband/MiBandSupport.java | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java index 2058b61f..c309d529 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java @@ -144,6 +144,7 @@ public class GBDevice implements Parcelable { if (mBusyTask != null) { LOG.warn("Attempt to mark device as busy with: " + task + ", but is already busy with: " + mBusyTask); } + LOG.info("Mark device as busy: " + mBusyTask); mBusyTask = task; } @@ -153,7 +154,9 @@ public class GBDevice implements Parcelable { public void unsetBusyTask() { if (mBusyTask == null) { LOG.error("Attempt to mark device as not busy anymore, but was not busy before."); + return; } + LOG.info("Mark device as NOT busy anymore: " + mBusyTask); mBusyTask = null; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java index 12597601..5c980ef6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java @@ -693,8 +693,11 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport { } private boolean isActivityDataSyncFinished(byte[] value) { + // byte 0 is the kind of message + // byte 1 to 6 represent a timestamp + // byte 7 to 8 represent the amount of data left (0 = done) if (value.length == 9) { - if (value[0] == 0xa && value[1] == 0xf && value[2] == 5 && value[7] == 0 && value[8] == 0) { + if (value[0] == 0xa && value[7] == 0 && value[8] == 0) { return true; } }