From 89909c07464458e665260c4251348c625fa2d5ee Mon Sep 17 00:00:00 2001 From: Sabin Iacob Date: Mon, 1 Jun 2020 20:12:14 +0300 Subject: [PATCH 1/4] Add auto-snooze option to alarms --- apps.json | 2 +- apps/alarm/ChangeLog | 1 + apps/alarm/alarm.js | 4 ++++ apps/alarm/app.js | 9 ++++++++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index 5eb039b53..93b27a887 100644 --- a/apps.json +++ b/apps.json @@ -140,7 +140,7 @@ "name": "Default Alarm", "shortName":"Alarms", "icon": "app.png", - "version":"0.08", + "version":"0.09", "description": "Set and respond to alarms", "tags": "tool,alarm,widget", "storage": [ diff --git a/apps/alarm/ChangeLog b/apps/alarm/ChangeLog index b05d64676..5f6f004f4 100644 --- a/apps/alarm/ChangeLog +++ b/apps/alarm/ChangeLog @@ -6,3 +6,4 @@ 0.06: Change 'New Alarm' to 'Save', allow Deletion of Alarms 0.07: Don't overwrite existing settings on app update 0.08: Make alarm scheduling more reliable +0.09: Add per alarm auto-snooze option diff --git a/apps/alarm/alarm.js b/apps/alarm/alarm.js index 7f0027bc8..e61c5a452 100644 --- a/apps/alarm/alarm.js +++ b/apps/alarm/alarm.js @@ -38,6 +38,10 @@ function showAlarm(alarm) { Bangle.buzz(100).then(function() { if (buzzCount--) setTimeout(buzz, 3000); + else if(alarm.as) { // auto-snooze + buzzCount = 10; + setTimeout(buzz, 600000); + } }); },100); }); diff --git a/apps/alarm/app.js b/apps/alarm/app.js index 745a7e797..74482bb1f 100644 --- a/apps/alarm/app.js +++ b/apps/alarm/app.js @@ -8,6 +8,7 @@ var alarms = require("Storage").readJSON("alarm.json",1)||[]; msg : "Eat chocolate", last : 0, // last day of the month we alarmed on - so we don't alarm twice in one day! rp : true, // repeat + as : true, // auto snooze } ];*/ @@ -50,6 +51,7 @@ function editAlarm(alarmIndex) { mins = Math.round((a.hr-hrs)*60); en = a.on; repeat = a.rp; + as = a.as; } const menu = { '': { 'title': 'Alarms' }, @@ -70,6 +72,11 @@ function editAlarm(alarmIndex) { value: en, format: v=>v?"Yes":"No", onchange: v=>repeat=v + }, + 'Auto snooze': { + value: en, + format: v=>v?"Yes":"No", + onchange: v=>as=v } }; function getAlarm() { @@ -81,7 +88,7 @@ function editAlarm(alarmIndex) { // Save alarm return { on : en, hr : hr, - last : day, rp : repeat + last : day, rp : repeat, as: as }; } menu["> Save"] = function() { From b1f3e5e1254413c3583ad80a884befe792499a16 Mon Sep 17 00:00:00 2001 From: Sabin Iacob Date: Mon, 1 Jun 2020 20:22:04 +0300 Subject: [PATCH 2/4] restore the alarm hour after snoozing --- apps/alarm/alarm.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/alarm/alarm.js b/apps/alarm/alarm.js index e61c5a452..7c510b428 100644 --- a/apps/alarm/alarm.js +++ b/apps/alarm/alarm.js @@ -24,9 +24,14 @@ function showAlarm(alarm) { }).then(function(sleep) { buzzCount = 0; if (sleep) { + alarm.ohr = alarm.hr; alarm.hr += 10/60; // 10 minutes } else { alarm.last = (new Date()).getDate(); + if (alarm.ohr) { + alarm.hr = alarm.ohr; + delete alarm.ohr; + } if (!alarm.rp) alarm.on = false; } require("Storage").write("alarm.json",JSON.stringify(alarms)); From 07bcd7528b065a40dfff704311b0cea8e42c3d7c Mon Sep 17 00:00:00 2001 From: Sabin Iacob Date: Mon, 1 Jun 2020 20:26:41 +0300 Subject: [PATCH 3/4] only save the original hour on the first snooze --- apps/alarm/alarm.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/alarm/alarm.js b/apps/alarm/alarm.js index 7c510b428..db98cc4a0 100644 --- a/apps/alarm/alarm.js +++ b/apps/alarm/alarm.js @@ -24,7 +24,7 @@ function showAlarm(alarm) { }).then(function(sleep) { buzzCount = 0; if (sleep) { - alarm.ohr = alarm.hr; + if(!alarm.ohr) alarm.ohr = alarm.hr; alarm.hr += 10/60; // 10 minutes } else { alarm.last = (new Date()).getDate(); From 6cf4124290c9acd8e2cd9d4070a62697c273b3dd Mon Sep 17 00:00:00 2001 From: Sabin Iacob Date: Mon, 1 Jun 2020 20:32:53 +0300 Subject: [PATCH 4/4] make original time checking more robust, we want this to work for alarms triggering at 00:00 --- apps/alarm/alarm.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/alarm/alarm.js b/apps/alarm/alarm.js index db98cc4a0..28261110a 100644 --- a/apps/alarm/alarm.js +++ b/apps/alarm/alarm.js @@ -24,11 +24,11 @@ function showAlarm(alarm) { }).then(function(sleep) { buzzCount = 0; if (sleep) { - if(!alarm.ohr) alarm.ohr = alarm.hr; + if(alarm.ohr===undefined) alarm.ohr = alarm.hr; alarm.hr += 10/60; // 10 minutes } else { alarm.last = (new Date()).getDate(); - if (alarm.ohr) { + if (alarm.ohr!==undefined) { alarm.hr = alarm.ohr; delete alarm.ohr; }