sched 0.31: Ensure we reschedule alarms after setTimeZone has been called (fix #3791)

master
Gordon Williams 2025-03-31 17:04:06 +01:00
parent df2bae663b
commit ebbe4206e6
3 changed files with 6 additions and 1 deletions

View File

@ -31,3 +31,4 @@
0.28: Added an icon for disabled events
0.29: Improve clkinfo startup time by 10ms
0.30: Fix possible bug in toggling an alarm to on, from clkinfo
0.31: Ensure we reschedule alarms after setTimeZone has been called (fix #3791)

View File

@ -4,6 +4,7 @@
clearTimeout(Bangle.SCHED);
delete Bangle.SCHED;
}
delete E.setTimeZone; // delete any modified setTimeZone we added below
var alarms = require('Storage').readJSON('sched.json',1)||[];
var time = new Date();
var currentTime = (time.getHours()*3600000)+(time.getMinutes()*60000)+(time.getSeconds()*1000);
@ -25,6 +26,9 @@
normally.
If active[0].js is defined, just run that code as-is and not alarm.js */
Bangle.SCHED = setTimeout(active[0].js||'load("sched.js")',t);
// Override setTimeZone to ensure we reschedule alarms after it has been called - fix #3791
var tz = E.setTimeZone;
E.setTimeZone = function(z) { tz(z);eval(require("Storage").read("sched.boot.js")); };
} else { // check for new alarms at midnight (so day of week works)
Bangle.SCHED = setTimeout('eval(require("Storage").read("sched.boot.js"))', 86400000 - currentTime);
}

View File

@ -1,7 +1,7 @@
{
"id": "sched",
"name": "Scheduler",
"version": "0.30",
"version": "0.31",
"description": "Scheduling library for alarms and timers",
"icon": "app.png",
"type": "scheduler",