From 984e639e971ec1963061353b06393caed4b7e27e Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sat, 31 Dec 2016 19:17:08 +0100 Subject: [PATCH] Pebble: push current weather to TimeStylePebble again when watchface gets started --- .../WeatherNotificationReceiver.java | 2 +- .../gadgetbridge/model/Weather.java | 19 +++++++++++++++++-- .../AppMessageHandlerTimeStylePebble.java | 11 ++++++++++- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/WeatherNotificationReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/WeatherNotificationReceiver.java index a02ac6c71..c6b39afde 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/WeatherNotificationReceiver.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/WeatherNotificationReceiver.java @@ -45,7 +45,7 @@ public class WeatherNotificationReceiver extends BroadcastReceiver { weatherSpec.tomorrowConditionCode = weather.forecastConditionCode; weatherSpec.tomorrowMaxTemp = weather.forecastHighTemp; weatherSpec.tomorrowMinTemp = weather.forecastLowTemp; - + Weather.getInstance().setWeatherSpec(weatherSpec); GBApplication.deviceService().onSendWeather(weatherSpec); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Weather.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Weather.java index 17c8ebc5e..979a6dc69 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Weather.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Weather.java @@ -4,8 +4,23 @@ import ru.gelin.android.weather.notification.ParcelableWeather2; public class Weather { private ParcelableWeather2 weather2 = null; - public ParcelableWeather2 getWeather2() {return weather2;} - public void setWeather2(ParcelableWeather2 weather2) {this.weather2 = weather2;} + private WeatherSpec weatherSpec = null; + + public ParcelableWeather2 getWeather2() { + return weather2; + } + + public void setWeather2(ParcelableWeather2 weather2) { + this.weather2 = weather2; + } + + public WeatherSpec getWeatherSpec() { + return weatherSpec; + } + + public void setWeatherSpec(WeatherSpec weatherSpec) { + this.weatherSpec = weatherSpec; + } private static final Weather weather = new Weather(); public static Weather getInstance() {return weather;} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerTimeStylePebble.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerTimeStylePebble.java index e5d494027..6651ed619 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerTimeStylePebble.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerTimeStylePebble.java @@ -10,6 +10,7 @@ import java.util.UUID; import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent; import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventSendBytes; +import nodomain.freeyourgadget.gadgetbridge.model.Weather; import nodomain.freeyourgadget.gadgetbridge.model.WeatherSpec; public class AppMessageHandlerTimeStylePebble extends AppMessageHandler { @@ -115,10 +116,18 @@ public class AppMessageHandlerTimeStylePebble extends AppMessageHandler { @Override public GBDeviceEvent[] handleMessage(ArrayList> pairs) { + // Just ACK GBDeviceEventSendBytes sendBytesAck = new GBDeviceEventSendBytes(); sendBytesAck.encodedBytes = mPebbleProtocol.encodeApplicationMessageAck(mUUID, mPebbleProtocol.last_id); return new GBDeviceEvent[]{sendBytesAck}; - // TODO: trigger update of weather? + } + + @Override + public GBDeviceEvent[] onAppStart() { + WeatherSpec weatherSpec = Weather.getInstance().getWeatherSpec(); + GBDeviceEventSendBytes sendBytes = new GBDeviceEventSendBytes(); + sendBytes.encodedBytes = encodeTimeStylePebbleWeather(weatherSpec); + return new GBDeviceEvent[]{sendBytes}; } @Override