From 2f940d901e6425693b184b420000bb6f9624a8f7 Mon Sep 17 00:00:00 2001 From: deirdreobyrne Date: Mon, 11 Jul 2022 14:37:09 +0100 Subject: [PATCH] Checks firmware; E.setDST(...) moved to boot.js --- apps/widdst/ChangeLog | 1 + apps/widdst/boot.js | 15 +++++++++++++++ apps/widdst/metadata.json | 3 ++- apps/widdst/widget.js | 30 ++++++++++-------------------- 4 files changed, 28 insertions(+), 21 deletions(-) create mode 100644 apps/widdst/boot.js diff --git a/apps/widdst/ChangeLog b/apps/widdst/ChangeLog index ec66c5568..e350137ee 100644 --- a/apps/widdst/ChangeLog +++ b/apps/widdst/ChangeLog @@ -1 +1,2 @@ 0.01: Initial version +0.02: Checks for correct firmware; E.setDST(...) moved to boot.js diff --git a/apps/widdst/boot.js b/apps/widdst/boot.js new file mode 100644 index 000000000..b0a844532 --- /dev/null +++ b/apps/widdst/boot.js @@ -0,0 +1,15 @@ +(() => { + + if (E.setDST) { + var dstSettings = require('Storage').readJSON('widdst.json',1)||{}; + if (dstSettings.has_dst) { + E.setDST(60*dstSettings.dst_size, 60*dstSettings.tz, dstSettings.dst_start.dow_number, dstSettings.dst_start.dow, + dstSettings.dst_start.month, dstSettings.dst_start.day_offset, 60*dstSettings.dst_start.at, + dstSettings.dst_end.dow_number, dstSettings.dst_end.dow, dstSettings.dst_end.month, dstSettings.dst_end.day_offset, + 60*dstSettings.dst_end.at); + } else { + E.setDST(0,0,0,0,0,0,0,0,0,0,0,0); + } + } + +})() diff --git a/apps/widdst/metadata.json b/apps/widdst/metadata.json index 16cc6c94f..f280c96eb 100644 --- a/apps/widdst/metadata.json +++ b/apps/widdst/metadata.json @@ -1,6 +1,6 @@ { "id": "widdst", "name": "Daylight Saving", - "version":"0.01", + "version":"0.02", "description": "Widget to set daylight saving rules. Requires Espruino 2v14.49 or later - see the instructions below for more information.", "icon": "icon.png", "type": "widget", @@ -9,6 +9,7 @@ "readme": "README.md", "storage": [ {"name":"widdst.wid.js","url":"widget.js"}, + {"name":"widdst.boot.js","url":"boot.js"}, {"name":"widdst.settings.js","url":"settings.js"} ], "data": [{"name":"widdst.json"}] diff --git a/apps/widdst/widget.js b/apps/widdst/widget.js index f9a5b7f81..f690cc68f 100644 --- a/apps/widdst/widget.js +++ b/apps/widdst/widget.js @@ -40,26 +40,16 @@ clear(); } } - - function setDst() { - var dstSettings = require('Storage').readJSON('widdst.json',1)||{}; - if (dstSettings.has_dst) { - E.setDST(60*dstSettings.dst_size, 60*dstSettings.tz, dstSettings.dst_start.dow_number, dstSettings.dst_start.dow, - dstSettings.dst_start.month, dstSettings.dst_start.day_offset, 60*dstSettings.dst_start.at, - dstSettings.dst_end.dow_number, dstSettings.dst_end.dow, dstSettings.dst_end.month, dstSettings.dst_end.day_offset, - 60*dstSettings.dst_end.at); - } else { - E.setDST(0,0,0,0,0,0,0,0,0,0,0,0); - } + + // Register ourselves + if (E.setDST) { + WIDGETS["widdst"] = { + area: "tl", + width: 0, + draw: draw + }; + } else { + E.showAlert("Firmware update needed to support Daylight Saving Time"); } - setDst(); - - // Register ourselves - WIDGETS["widdst"] = { - area: "tl", - width: 0, - draw: draw - }; - })()