mirror of https://github.com/espruino/BangleApps
58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
|
if (timerclkAlarmTimeout) clearInterval(timerclkAlarmTimeout);
|
||
|
var timerclk = require("timerclk.lib.js");
|
||
|
var settings = require('Storage').readJSON("timerclk.json", true) || {};
|
||
|
settings = Object.assign({
|
||
|
"vibrate":10
|
||
|
}, settings.alarm||{});
|
||
|
|
||
|
function showAlarm(alarm) {
|
||
|
Bangle.loadWidgets();
|
||
|
Bangle.drawWidgets();
|
||
|
Bangle.setLocked(false);
|
||
|
E.showPrompt("Alarm!",{
|
||
|
title:"ALARM!",
|
||
|
buttons : {/*LANG*/"Ok":true}
|
||
|
}).then(function(ok) {
|
||
|
buzzCount = 0;
|
||
|
if (ok) {
|
||
|
alarm.last = new Date().getDate();
|
||
|
}
|
||
|
require("Storage").write("timerclk.alarm.json",JSON.stringify(alarms));
|
||
|
load();
|
||
|
});
|
||
|
function vibrate(counter) {
|
||
|
VIBRATE.write(1);
|
||
|
setTimeout(() => VIBRATE.write(0), 100);
|
||
|
if (--counter) setTimeout(() => vibrate(counter), 250);
|
||
|
}
|
||
|
function buzz() {
|
||
|
if ((require('Storage').readJSON('setting.json',1)||{}).quiet>1) return; // total silence
|
||
|
vibrate(4);
|
||
|
if (buzzCount--)
|
||
|
setTimeout(buzz, 3000);
|
||
|
else { // auto-snooze
|
||
|
buzzCount = settings.vibrate;
|
||
|
setTimeout(buzz, 600000);
|
||
|
}
|
||
|
}
|
||
|
var buzzCount = settings.vibrate;
|
||
|
buzz();
|
||
|
}
|
||
|
|
||
|
// Check for alarms
|
||
|
console.log("checking for alarms...");
|
||
|
var alarms = require("Storage").readJSON("timerclk.alarm.json",1)||[];
|
||
|
var active = alarms.filter(e=>e.on);
|
||
|
if (active.length) {
|
||
|
// if there's an alarm, show it
|
||
|
active = active.sort((a,b)=>(a.time-b.time)+(a.last-b.last)*86400000);
|
||
|
if (active[0].last != new Date().getDate()) {
|
||
|
showAlarm(active[0]);
|
||
|
} else {
|
||
|
setTimeout(load, 100);
|
||
|
}
|
||
|
} else {
|
||
|
// otherwise just go back to default app
|
||
|
setTimeout(load, 100);
|
||
|
}
|