diff --git a/apps/chimer/settings.js b/apps/chimer/settings.js index 8e2fccb61..5631b4332 100644 --- a/apps/chimer/settings.js +++ b/apps/chimer/settings.js @@ -9,7 +9,7 @@ var FILE = "chimer.json"; var settings = {}; const chimes = ["Off", "Buzz", "Beep", "Both"]; - const frequency = ["60", "30", "15"]; + const frequency = ["60", "30", "15", "1"]; var showMainMenu = () => { @@ -27,7 +27,7 @@ var showMainMenu = () => { }, "Frequency": { value: settings.freq, - min: 0, max: 2, + min: 0, max: 3, format: v => frequency[v], onchange: v => { settings.freq = v; diff --git a/apps/chimer/widget.js b/apps/chimer/widget.js index d7a98ecdb..046b0f4e8 100644 --- a/apps/chimer/widget.js +++ b/apps/chimer/widget.js @@ -3,13 +3,13 @@ var readSettings = () => { var settings = require("Storage").readJSON(FILE, 1) || { type: 1, - freq: 0, + freq: 2, repeat: 1, }; return settings; }; - var settings = {}; + var settings = readSettings(); function sleep(milliseconds) { const date = Date.now(); @@ -21,9 +21,9 @@ function sleep(milliseconds) { function chime() { for(let i = 0; i < settings.repeat; i++){ - if (settings.type == 1){ + if (settings.type === 1){ Bangle.buzz(100); - } else if(settings.type == 2){ + } else if(settings.type === 2){ Bangle.beep(); } else { return; @@ -33,12 +33,11 @@ function sleep(milliseconds) { //let lastHour = (new Date()).getHours(); // don't chime when (re)loaded at a whole hour h!==lastHour function check() { - settings = readSettings(); const now = new Date(), h = now.getHours(), m = now.getMinutes(), s = now.getSeconds(), ms = now.getMilliseconds(); - if (settings.freq == 1){ - if (m==0 || m==30) chime(); + if (settings.freq === 1){ + if (m===0 || m===30) chime(); lastHour = h; // check again in 30 minutes switch (true){ @@ -51,8 +50,8 @@ function sleep(milliseconds) { } setTimeout(check, msLeft); - }else if (settings.freq == 2){ - if (m==0 || m==15 || m==30 || m==45) chime(); + }else if (settings.freq === 2){ + if (m===0 || m===15 || m===30 || m===45) chime(); lastHour = h; // check again in 15 minutes switch (true){ @@ -70,9 +69,16 @@ function sleep(milliseconds) { break; } setTimeout(check, msLeft); + }else if (settings.freq === 3){ + chime(); + lastHour = h; + // check again in 1 minute + + var mLeft = 1, sLeft = (mLeft*60)-s, msLeft = (sLeft*1000)-ms; + setTimeout(check, msLeft); }else{ - if (m==0) chime(); + if (m===0) chime(); lastHour = h; // check again in 60 minutes var mLeft = 60-m, sLeft = (mLeft*60)-s, msLeft = (sLeft*1000)-ms;