From 1ddea9268d08edaf4b71c587e6db37017ea55c8b Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Mon, 4 Sep 2017 23:19:53 +0200 Subject: [PATCH 1/3] Amazfit Bip: request GPS fw version earlier (to avoid recreation of DeviceAttributes because fw2 is sometimes available and sometimes not.) --- .../gadgetbridge/service/devices/miband2/MiBand2Support.java | 5 ++++- .../service/devices/miband2/operations/InitOperation.java | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java index 321a256be..290744227 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java @@ -1309,8 +1309,11 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { public void phase2Initialize(TransactionBuilder builder) { LOG.info("phase2Initialize..."); - enableFurtherNotifications(builder, true); requestBatteryInfo(builder); + } + + public void phase3Initialize(TransactionBuilder builder) { + LOG.info("phase3Initialize..."); setDateDisplay(builder); setTimeFormat(builder); setWearLocation(builder); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/InitOperation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/InitOperation.java index e07f8a992..e1a5bd7ce 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/InitOperation.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/operations/InitOperation.java @@ -117,7 +117,9 @@ public class InitOperation extends AbstractBTLEOperation { TransactionBuilder builder = createTransactionBuilder("Authenticated, now initialize phase 2"); builder.add(new SetDeviceStateAction(getDevice(), GBDevice.State.INITIALIZING, getContext())); getSupport().requestDeviceInfo(builder); + getSupport().enableFurtherNotifications(builder, true); getSupport().phase2Initialize(builder); + getSupport().phase3Initialize(builder); getSupport().setInitialized(builder); getSupport().performImmediately(builder); } else { From e44eb03698675e3379ce3a6cdb34b28ce194f3b8 Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Mon, 4 Sep 2017 23:23:51 +0200 Subject: [PATCH 2/3] Amazfit Bip: avoid sending weather info when not initialized --- .../devices/amazfitbip/AmazfitBipSupport.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/amazfitbip/AmazfitBipSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/amazfitbip/AmazfitBipSupport.java index 95d4288d8..57fb1941e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/amazfitbip/AmazfitBipSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/amazfitbip/AmazfitBipSupport.java @@ -140,15 +140,18 @@ public class AmazfitBipSupport extends MiBand2Support { @Override public void onSendWeather(WeatherSpec weatherSpec) { + if (gbDevice.getFirmwareVersion() == null) { + LOG.warn("Device not initialized yet, so not sending weather info"); + return; + } + try { TransactionBuilder builder = performInitialized("Sending weather forecast"); boolean supportsConditionString = false; - if (gbDevice.getFirmwareVersion() != null) { - Version version = new Version(gbDevice.getFirmwareVersion()); - if (version.compareTo(new Version("0.0.8.74")) >= 0) { - supportsConditionString = true; - } + Version version = new Version(gbDevice.getFirmwareVersion()); + if (version.compareTo(new Version("0.0.8.74")) >= 0) { + supportsConditionString = true; } final byte NR_DAYS = 2; From a93ace255b3c6c03e01613ad501d376e907344bc Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Mon, 4 Sep 2017 23:39:40 +0200 Subject: [PATCH 3/3] Don't crash, don't queue a transaction twice! Fixes #794 --- .../gadgetbridge/service/devices/miband2/MiBand2Support.java | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java index 290744227..80143973f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband2/MiBand2Support.java @@ -1064,7 +1064,6 @@ public class MiBand2Support extends AbstractBTLEDeviceSupport { queueAlarm(alarm, builder, characteristic); iteration++; } - builder.queue(getQueue()); } return this; }