diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/HPlusConstants.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/HPlusConstants.java index c13d9280a..40713a897 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/HPlusConstants.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/hplus/HPlusConstants.java @@ -121,6 +121,9 @@ public final class HPlusConstants { public static final byte DATA_DAY_SUMMARY_ALT = 0x39; public static final byte DATA_SLEEP = 0x1A; public static final byte DATA_VERSION = 0x18; + public static final byte DATA_VERSION1 = 0x2E; + + public static final byte DATA_UNKNOWN = 0x4d; public static final String PREF_HPLUS_SCREENTIME = "hplus_screentime"; public static final String PREF_HPLUS_ALLDAYHR = "hplus_alldayhr"; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/hplus/HPlusHandlerThread.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/hplus/HPlusHandlerThread.java index 28668f2e0..b4387696c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/hplus/HPlusHandlerThread.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/hplus/HPlusHandlerThread.java @@ -496,8 +496,15 @@ class HPlusHandlerThread extends GBDeviceIoThread { * @return boolean indicating success or fail */ public boolean processVersion(byte[] data) { - int major = data[2] & 0xFF; - int minor = data[1] & 0xFF; + int major, minor; + + if(data.length == 11){ + major = data[10] & 0xFF; + minor = data[9] & 0xFF; + }else { + major = data[2] & 0xFF; + minor = data[1] & 0xFF; + } getDevice().setFirmwareVersion(major + "." + minor); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/hplus/HPlusSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/hplus/HPlusSupport.java index 8a73fdf10..1ed344680 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/hplus/HPlusSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/hplus/HPlusSupport.java @@ -838,6 +838,7 @@ public class HPlusSupport extends AbstractBTLEDeviceSupport { switch (data[0]) { case HPlusConstants.DATA_VERSION: + case HPlusConstants.DATA_VERSION1: return syncHelper.processVersion(data); case HPlusConstants.DATA_STATS: @@ -856,9 +857,11 @@ public class HPlusSupport extends AbstractBTLEDeviceSupport { case HPlusConstants.DATA_DAY_SUMMARY: case HPlusConstants.DATA_DAY_SUMMARY_ALT: return syncHelper.processIncomingDaySlotData(data); - + case HPlusConstants.DATA_UNKNOWN: + return true; default: - LOG.info("Unhandled characteristic change: " + characteristicUUID + " code: " + data[0]); + + LOG.info("Unhandled characteristic change: " + characteristicUUID + " code: " + Arrays.toString(data)); return true; } }