From 649e20ad04fc038303fe1c15ab2f7ab524364553 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joa=CC=83o=20Paulo=20Barraca?= Date: Sat, 24 Dec 2016 00:05:51 +0000 Subject: [PATCH] HPlus: Ignore duplicated messages from band --- .../gadgetbridge/devices/hplus/HPlusConstants.java | 1 + .../service/devices/hplus/HPlusSupport.java | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) 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 7f8ac3ba7..f69bb4536 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 @@ -72,6 +72,7 @@ public final class HPlusConstants { public static final byte DATA_STATS = 0x33; public static final byte DATA_STEPS = 0x36; + public static final byte DATA_SLEEP = 0x1A; public static final byte COMMAND_ACTION_INCOMING_SOCIAL = 0x31; 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 ece3eb066..c3704ffec 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 @@ -61,6 +61,8 @@ public class HPlusSupport extends AbstractBTLEDeviceSupport { private BluetoothGattCharacteristic ctrlCharacteristic = null; private BluetoothGattCharacteristic measureCharacteristic = null; + private byte[] lastDataStats = null; + private final GBDeviceEventVersionInfo versionCmd = new GBDeviceEventVersionInfo(); private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @@ -108,7 +110,6 @@ public class HPlusSupport extends AbstractBTLEDeviceSupport { setInitValues(builder); setCurrentDate(builder); setCurrentTime(builder); - syncPreferences(builder); builder.notify(getCharacteristic(HPlusConstants.UUID_CHARACTERISTIC_MEASURE), true); @@ -449,6 +450,7 @@ public class HPlusSupport extends AbstractBTLEDeviceSupport { @Override public void onSetTime() { TransactionBuilder builder = new TransactionBuilder("time"); + setCurrentDate(builder); setCurrentTime(builder); } @@ -651,6 +653,7 @@ public class HPlusSupport extends AbstractBTLEDeviceSupport { //builder = performInitialized("incomingCallText"); builder.queue(getQueue()); + //TODO: Use WaitAction try { Thread.sleep(200); } catch (InterruptedException e) { @@ -728,6 +731,7 @@ public class HPlusSupport extends AbstractBTLEDeviceSupport { String message = ""; + //TODO: Create StringUtils.pad and StringUtils.truncate if (title != null) { if (title.length() > 17) { message = title.substring(0, 17); @@ -951,6 +955,13 @@ public class HPlusSupport extends AbstractBTLEDeviceSupport { LOG.error("Invalid Stats Message Length " + data.length); return false; } + + //Ignore duplicate packets + if(data.equals(lastDataStats)) + return true; + + lastDataStats = data.clone(); + double distance = ((int) data[4] * 256 + data[3]) / 100.0; int x = (int) data[6] * 256 + data[5];