From 1be42a4d84e1cfe30353f8a929ddd044f79f42f9 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Tue, 5 May 2020 13:30:28 +0200 Subject: [PATCH] ZeTime: Try to fix weather conditions on newer firmwares --- CHANGELOG.md | 1 + .../service/devices/zetime/ZeTimeDeviceSupport.java | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f80ead321..b185afbba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ * Amazfit GTR: Allow setting menu itdem like GTS * ZeTime: Support setting the watch language * ZeTime: Support rejecting calls +* ZeTime: Try to fix weather conditions on newer firmwares #### Version 0.43.3 * Fossil Hybrid HR: Initial support for activity tracking (no sleep yet) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zetime/ZeTimeDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zetime/ZeTimeDeviceSupport.java index ba4e59a2d..99d512fad 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zetime/ZeTimeDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zetime/ZeTimeDeviceSupport.java @@ -620,6 +620,7 @@ public class ZeTimeDeviceSupport extends AbstractBTLEDeviceSupport { @Override public void onSendWeather(WeatherSpec weatherSpec) { + String release = versionCmd.fwVersion.substring(8, 12); String buildnumber = versionCmd.fwVersion.substring(versionCmd.fwVersion.length() - 4); byte[] weather = new byte[weatherSpec.location.getBytes(StandardCharsets.UTF_8).length + 26]; // 26 bytes for weatherdata and overhead weather[0] = ZeTimeConstants.CMD_PREAMBLE; @@ -632,8 +633,8 @@ public class ZeTimeDeviceSupport extends AbstractBTLEDeviceSupport { weather[7] = (byte) (weatherSpec.todayMinTemp - 273); weather[8] = (byte) (weatherSpec.todayMaxTemp - 273); - if (buildnumber.compareTo("B4.1") >= 0) // if using firmware 1.7 Build 41 and above use newer icons - { + // if using firmware 1.7 Build 41 and above use newer icons + if (release.compareTo("R1.7") > 0 || (release.compareTo("R1.7") == 0 && buildnumber.compareTo("B4.1") >= 0)) { weather[9] = Weather.mapToZeTimeCondition(weatherSpec.currentConditionCode); } else { weather[9] = Weather.mapToZeTimeConditionOld(weatherSpec.currentConditionCode);