mirror of https://github.com/espruino/BangleApps
49 lines
1.8 KiB
JavaScript
49 lines
1.8 KiB
JavaScript
var timerclkTimerTimeout;
|
|
var timerclkAlarmTimeout;
|
|
function timerclkCheckTimers() {
|
|
if (timerclkTimerTimeout) clearTimeout(timerclkTimerTimeout);
|
|
var timers = require('Storage').readJSON('timerclk.timer.json',1)||[];
|
|
timers = timers.filter(e=>e.start);
|
|
if (timers.length) {
|
|
timers = timers.sort((a,b)=>{
|
|
var at = a.timeAdd;
|
|
if (a.start) at += Date.now()-a.start;
|
|
at = a.period-at;
|
|
var bt = b.timeAdd;
|
|
if (b.start) bt += Date.now()-b.start;
|
|
bt = b.period-bt;
|
|
return at-bt;
|
|
});
|
|
if (!require('Storage').read("timerclk.timer.alert.js")) {
|
|
console.log("No timer app!");
|
|
} else {
|
|
var time = timers[0].timeAdd;
|
|
if (timers[0].start) time += Date.now()-timers[0].start;
|
|
time = timers[0].time - time;
|
|
if (time<1000) t=1000;
|
|
if (timerclkTimerTimeout) clearTimeout(timerclkTimerTimeout);
|
|
timerclkTimerTimeout = setTimeout(() => load("timerclk.timer.alert.js"),time);
|
|
}
|
|
}
|
|
}
|
|
function timerclkCheckAlarms() {
|
|
if (timerclkAlarmTimeout) clearTimeout(timerclkAlarmTimeout);
|
|
var alarms = require('Storage').readJSON('timerclk.alarm.json',1)||[];
|
|
var currentTime = require("timerclk.lib.js").getCurrentTime();
|
|
alarms = alarms.filter(e=>e.on);
|
|
if (alarms.length) {
|
|
alarms = alarms.sort((a,b)=>(a.time-b.time)+(a.last-b.last)*86400000);
|
|
if (!require('Storage').read("timerclk.alarm.alert.js")) {
|
|
console.log("No alarm app!");
|
|
} else {
|
|
var time = alarms[0].time-currentTime;
|
|
if (alarms[0].last == new Date().getDate() || time < 0) time += 86400000;
|
|
if (time<1000) t=1000;
|
|
if (timerclkAlarmTimeout) clearTimeout(timerclkAlarmTimeout);
|
|
timerclkAlarmTimeout = setTimeout(() => load("timerclk.alarm.alert.js"),time);
|
|
}
|
|
}
|
|
}
|
|
timerclkCheckTimers();
|
|
timerclkCheckAlarms();
|