diff --git a/apps/mtnclock/ChangeLog b/apps/mtnclock/ChangeLog index 92d3ce9b3f..ccbbca8508 100644 --- a/apps/mtnclock/ChangeLog +++ b/apps/mtnclock/ChangeLog @@ -2,3 +2,4 @@ 0.02: Get weather from weather.json 0.03: Address unexpected undefined when reading weather.json 0.04: Adding settings and the ability to show the widgets bar +0.05: Fix the widgets disappearing on weather update diff --git a/apps/mtnclock/app.js b/apps/mtnclock/app.js index 4e67a8954b..7b852e0ee7 100644 --- a/apps/mtnclock/app.js +++ b/apps/mtnclock/app.js @@ -202,8 +202,6 @@ g.clear(); } } -var i = 0; - function setWeather() { var a = {}; //clear day/night is default weather @@ -270,7 +268,7 @@ function setWeather() { //night-drizzle if ((data.code >= 300 && data.code < 600) || (data.code >= 200 && data.code <= 202) || (data.code >= 230 && data.code <= 232)) a.rain1 = 0xC618; //night-rain - if ((data.code >= 500 && data.code < 600) || (data.code >= 200 && data.code <= 202)) rain2 = 1; + if ((data.code >= 500 && data.code < 600) || (data.code >= 200 && data.code <= 202)) a.rain2 = 1; } } else if ((data.code >= 700) && (data.code < 800)) { @@ -331,24 +329,36 @@ function readWeather() { var weatherJson = require("Storage").readJSON('weather.json', 1); // save updated weather data if available and it has been an hour since last updated if (weatherJson && weatherJson.weather && weatherJson.weather.time && (data.time === undefined || (data.time + 3600000) < weatherJson.weather.time)) { - data = { + newSettings = { time: weatherJson.weather.time, temp: weatherJson.weather.temp, code: weatherJson.weather.code }; - require("Storage").writeJSON('mtnclock.json', data); + require("Storage").writeJSON( + 'mtnclock.json', + Object.assign( + readJson('mtnclock.json'), + newSettings, + ); + ) } } const _GB = global.GB; global.GB = (event) => { if (event.t==="weather") { - data = { + newSettings = { temp: event.temp, code: event.code, time: Date.now() }; - require("Storage").writeJSON('mtnclock.json', data); + require("Storage").writeJSON( + 'mtnclock.json', + Object.assign( + readJson('mtnclock.json'), + newSettings, + ); + ) setWeather(); } if (_GB) setTimeout(_GB, 0, event); diff --git a/apps/mtnclock/metadata.json b/apps/mtnclock/metadata.json index d265575831..a8c572a958 100644 --- a/apps/mtnclock/metadata.json +++ b/apps/mtnclock/metadata.json @@ -2,7 +2,7 @@ "id": "mtnclock", "name": "Mountain Pass Clock", "shortName": "Mtn Clock", - "version": "0.04", + "version": "0.05", "description": "A clock that changes scenery based on time and weather.", "readme":"README.md", "icon": "app.png", @@ -23,4 +23,4 @@ {"name":"mtnclock.img","url":"app-icon.js","evaluate":true} ], "data": [{"name":"mtnclock.json"}] -} \ No newline at end of file +}