From 2dbf70cb7757224baef8f527ce1b909e5077c77e Mon Sep 17 00:00:00 2001 From: "Martin.JM" Date: Sun, 28 Jul 2024 20:33:31 +0200 Subject: [PATCH] Huawei: Fix for weather - Also the sunrise/set cannot be zero - We could send a single forecast more when exactly 7 are provided - It seems like the watches may require exactly 8 days to be sent for the forecast - one of which is for today --- .../gadgetbridge/devices/huawei/packets/Weather.java | 4 ++-- .../devices/huawei/requests/SendWeatherForecastRequest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/packets/Weather.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/packets/Weather.java index fe138b179..f03acfca4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/packets/Weather.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/packets/Weather.java @@ -628,9 +628,9 @@ public class Weather { dayTlv.put(0x15, dayData.lowTemperature); } if (settings.sunRiseSetSupported) { - if (dayData.sunriseTime != null) + if (dayData.sunriseTime != null && dayData.sunriseTime != 0) dayTlv.put(0x16, dayData.sunriseTime); - if (dayData.sunsetTime != null) + if (dayData.sunsetTime != null && dayData.sunsetTime != 0) dayTlv.put(0x17, dayData.sunsetTime); if (dayData.moonRiseTime != null && dayData.moonRiseTime != 0) dayTlv.put(0x1a, dayData.moonRiseTime); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendWeatherForecastRequest.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendWeatherForecastRequest.java index 84c30ba05..11b225392 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendWeatherForecastRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huawei/requests/SendWeatherForecastRequest.java @@ -40,7 +40,7 @@ public class SendWeatherForecastRequest extends Request { @Override protected List createRequest() throws RequestCreationException { int hourlyCount = Math.min(weatherSpec.hourly.size(), 24); - int dayCount = Math.min(weatherSpec.forecasts.size(), 8); + int dayCount = Math.min(weatherSpec.forecasts.size() + 1, 8); // We add today as well ArrayList timeDataArrayList = new ArrayList<>(hourlyCount); ArrayList dayDataArrayList = new ArrayList<>(dayCount);