From ba082f670c5661894a83c4bb666fcea555d85aec Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Tue, 19 Dec 2023 12:30:24 +0000 Subject: [PATCH] widdst 0.05: Tweaks to ensure Gadgetbridge can't overwrite timezone on 2v19.106 and later --- apps/widdst/ChangeLog | 3 ++- apps/widdst/boot.js | 26 +++++++++++++------------- apps/widdst/metadata.json | 2 +- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/apps/widdst/ChangeLog b/apps/widdst/ChangeLog index c0b9aafc6..d1ad50fe2 100644 --- a/apps/widdst/ChangeLog +++ b/apps/widdst/ChangeLog @@ -1,4 +1,5 @@ 0.01: Initial version 0.02: Checks for correct firmware; E.setDST(...) moved to boot.js 0.03: Convert Yes/No On/Off in settings to checkboxes -0.04: Give the boot file the highest priority to ensure it runs before sched (fix #2663) \ No newline at end of file +0.04: Give the boot file the highest priority to ensure it runs before sched (fix #2663) +0.05: Tweaks to ensure Gadgetbridge can't overwrite timezone on 2v19.106 and later \ No newline at end of file diff --git a/apps/widdst/boot.js b/apps/widdst/boot.js index b0a844532..0e90eafa4 100644 --- a/apps/widdst/boot.js +++ b/apps/widdst/boot.js @@ -1,15 +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); - } +if (E.setDST) { + let 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); + /* on 2v19.106 and later, E.setTimeZone overwrites E.setDST so we + manually disable E.setTimeZone here to stop Gadgetbridge resetting the timezone */ + E.setTimeZone = function(){}; + } 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 913bc0658..006e03416 100644 --- a/apps/widdst/metadata.json +++ b/apps/widdst/metadata.json @@ -1,6 +1,6 @@ { "id": "widdst", "name": "Daylight Saving", - "version":"0.04", + "version":"0.05", "description": "Widget to set daylight saving rules. Requires Espruino 2v15 or later - see the instructions below for more information.", "icon": "icon.png", "type": "widget",