From caaed8fc5ea39f6c7981ec8715398a7cb6098350 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Sun, 16 Jun 2024 19:56:12 +0100 Subject: [PATCH] widdst: ensure DST is applied when leaving settings --- apps/widdst/ChangeLog | 3 ++- apps/widdst/metadata.json | 2 +- apps/widdst/settings.js | 13 ++++++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/widdst/ChangeLog b/apps/widdst/ChangeLog index d1ad50fe2..cedeaa5b4 100644 --- a/apps/widdst/ChangeLog +++ b/apps/widdst/ChangeLog @@ -2,4 +2,5 @@ 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) -0.05: Tweaks to ensure Gadgetbridge can't overwrite timezone on 2v19.106 and later \ No newline at end of file +0.05: Tweaks to ensure Gadgetbridge can't overwrite timezone on 2v19.106 and later +0.06: If fastload is present, ensure DST changes are still applied when leaving settings diff --git a/apps/widdst/metadata.json b/apps/widdst/metadata.json index 006e03416..495f06086 100644 --- a/apps/widdst/metadata.json +++ b/apps/widdst/metadata.json @@ -1,6 +1,6 @@ { "id": "widdst", "name": "Daylight Saving", - "version":"0.05", + "version":"0.06", "description": "Widget to set daylight saving rules. Requires Espruino 2v15 or later - see the instructions below for more information.", "icon": "icon.png", "type": "widget", diff --git a/apps/widdst/settings.js b/apps/widdst/settings.js index 7363aa6bf..0017cc499 100644 --- a/apps/widdst/settings.js +++ b/apps/widdst/settings.js @@ -33,8 +33,11 @@ at: 0 }; + var writtenSettings = false; + function writeSettings() { require('Storage').writeJSON("widdst.json", settings); + writtenSettings = true; } function writeSubMenuSettings() { @@ -136,7 +139,15 @@ "": { "Title": /*LANG*/"Daylight Saving" }, - "< Back": () => back(), + "< Back": () => { + if(writtenSettings && global._load){ + // disable fastload to ensure settings are applied + // when we exit the settings app + global.load = global._load; + delete global._load; + } + back(); + }, /*LANG*/"Enabled": { value: !!settings.has_dst, onchange: v => {