From c29555cc53de06d10650c1c47d2bcbff0308bea3 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Fri, 25 Apr 2025 12:12:49 +0100 Subject: [PATCH] alarms: prevent timers (queued from main menu) from firing immediately --- apps/alarm/ChangeLog | 2 +- apps/alarm/app.js | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/apps/alarm/ChangeLog b/apps/alarm/ChangeLog index 27e28b2f8..c325b06cf 100644 --- a/apps/alarm/ChangeLog +++ b/apps/alarm/ChangeLog @@ -55,4 +55,4 @@ to select an alarm in the main menu. 0.50: Bangle.js 2: Long touch of alarm in main menu toggle it on/off. Touching the icon on the right will do the same. -0.51: Fix long-touch to enable alarm/timer not updating time (fix #3804) \ No newline at end of file +0.51: Fix long-touch to enable alarm/timer not updating time (fix #3804) diff --git a/apps/alarm/app.js b/apps/alarm/app.js index 1e0611611..5d0b20ddd 100644 --- a/apps/alarm/app.js +++ b/apps/alarm/app.js @@ -87,11 +87,10 @@ function showMainMenu(scroll, group, scrollback) { }; const getGroups = settings.showGroup && !group; const groups = getGroups ? {} : undefined; - var showAlarm; const getIcon = (e)=>{return e.on ? (e.timer ? iconTimerOn : iconAlarmOn) : (e.timer ? iconTimerOff : iconAlarmOff);}; alarms.forEach((e, index) => { - showAlarm = !settings.showGroup || (group ? e.group === group : !e.group); + const showAlarm = !settings.showGroup || (group ? e.group === group : !e.group); if(showAlarm) { const label = trimLabel(getLabel(e),40); menu[label] = { @@ -316,7 +315,7 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate, scroll, group) { } function prepareAlarmForSave(alarm, alarmIndex, time, date, temp) { - alarm.t = require("time_utils").encodeTime(time); + if(time != null) alarm.t = require("time_utils").encodeTime(time); alarm.last = alarm.t < require("time_utils").getCurrentTimeMillis() ? new Date().getDate() : 0; if(date) alarm.date = date.toLocalISOString().slice(0,10); @@ -548,8 +547,10 @@ function showEditTimerMenu(selectedTimer, timerIndex) { } function prepareTimerForSave(timer, timerIndex, time, temp) { - timer.timer = require("time_utils").encodeTime(time); - timer.t = (require("time_utils").getCurrentTimeMillis() + timer.timer) % 86400000; + if (time != null) { + timer.timer = require("time_utils").encodeTime(time); + timer.t = (require("time_utils").getCurrentTimeMillis() + timer.timer) % 86400000; + } timer.last = 0; if (!temp) {