diff --git a/apps/widalarmeta/ChangeLog b/apps/widalarmeta/ChangeLog index 4bcf6ec69..2b74766c8 100644 --- a/apps/widalarmeta/ChangeLog +++ b/apps/widalarmeta/ChangeLog @@ -8,3 +8,4 @@ 0.05: Convert Yes/No On/Off in settings to checkboxes 0.06: Remember next alarm to reduce calculation amount Redraw only every hour when no alarm in next 24h +0.07: Fix when no alarms are present diff --git a/apps/widalarmeta/metadata.json b/apps/widalarmeta/metadata.json index a3d2e8adb..6b3d8978b 100644 --- a/apps/widalarmeta/metadata.json +++ b/apps/widalarmeta/metadata.json @@ -2,7 +2,7 @@ "id": "widalarmeta", "name": "Alarm & Timer ETA", "shortName": "Alarm ETA", - "version": "0.06", + "version": "0.07", "description": "A widget that displays the time to the next Alarm or Timer in hours and minutes, maximum 24h (configurable).", "icon": "widget.png", "type": "widget", diff --git a/apps/widalarmeta/widget.js b/apps/widalarmeta/widget.js index 750ae5d98..0104eb3b1 100644 --- a/apps/widalarmeta/widget.js +++ b/apps/widalarmeta/widget.js @@ -9,13 +9,15 @@ function getNextAlarm(date) { const alarms = (require("Storage").readJSON("sched.json",1) || []).filter(alarm => alarm.on && alarm.hidden !== true); WIDGETS["widalarmeta"].numActiveAlarms = alarms.length; - const times = alarms.map(alarm => require("sched").getTimeToAlarm(alarm, date) || Number.POSITIVE_INFINITY); - const eta = times.length > 0 ? Math.min.apply(null, times) : 0; - if (eta !== Number.POSITIVE_INFINITY) { - const idx = times.indexOf(eta); - const alarm = alarms[idx]; - delete alarm.msg; delete alarm.id; delete alarm.data; // free some memory - return alarm; + if (alarms.length > 0) { + const times = alarms.map(alarm => require("sched").getTimeToAlarm(alarm, date) || Number.POSITIVE_INFINITY); + const eta = Math.min.apply(null, times); + if (eta !== Number.POSITIVE_INFINITY) { + const idx = times.indexOf(eta); + const alarm = alarms[idx]; + delete alarm.msg; delete alarm.id; delete alarm.data; // free some memory + return alarm; + } } } // getNextAlarm