From 491d36e73abbcd238322fac354f4dbb6871e6739 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Thu, 17 Apr 2025 18:23:38 +0100 Subject: [PATCH] sched: prevent timers from firing immediately --- apps/sched/ChangeLog | 3 ++- apps/sched/lib.js | 3 +++ apps/sched/metadata.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/sched/ChangeLog b/apps/sched/ChangeLog index efe4d8e15..3f9906778 100644 --- a/apps/sched/ChangeLog +++ b/apps/sched/ChangeLog @@ -31,4 +31,5 @@ 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) \ No newline at end of file +0.31: Ensure we reschedule alarms after setTimeZone has been called (fix #3791) +0.32: clkinfo ensures an alarm won't trigger immediately (copying `alarm`'s behaviour) diff --git a/apps/sched/lib.js b/apps/sched/lib.js index e11448a18..a0085d820 100644 --- a/apps/sched/lib.js +++ b/apps/sched/lib.js @@ -46,6 +46,9 @@ exports.resetTimer = function(alarm, time) { time = time || new Date(); var currentTime = (time.getHours()*3600000)+(time.getMinutes()*60000)+(time.getSeconds()*1000); alarm.t = (currentTime + alarm.timer) % 86400000; + alarm.last = "timer" in alarm || alarm.t >= require("time_utils").getCurrentTimeMillis() + ? 0 + : new Date().getDate(); }; /// Get time until the given alarm (object). Return undefined if alarm not enabled, or if 86400000 or more, alarm could be *more* than a day in the future exports.getTimeToAlarm = function(alarm, time) { diff --git a/apps/sched/metadata.json b/apps/sched/metadata.json index 8a52068c1..07785749a 100644 --- a/apps/sched/metadata.json +++ b/apps/sched/metadata.json @@ -1,7 +1,7 @@ { "id": "sched", "name": "Scheduler", - "version": "0.31", + "version": "0.32", "description": "Scheduling library for alarms and timers", "icon": "app.png", "type": "scheduler",