1
0
Fork 0
BangleApps/apps/qalarm/lib.js

109 lines
2.4 KiB
JavaScript

let alarms = require("Storage").readJSON("qalarm.json", 1) || [];
/**
* LIBRARY
*/
function getCurrentTime() {
let time = new Date();
return (
time.getHours() * 3600000 +
time.getMinutes() * 60000 +
time.getSeconds() * 1000
);
}
function getAlarmIndex(idx){
for(var i=0; i<alarms.length; i++){
if(alarms[i].idx == idx){
return i;
}
}
return -1;
}
function alarmExists(idx){
var alarmIndex = getAlarmIndex(idx);
var exists = alarmIndex >= 0 && alarmIndex < alarms.length;
return exists;
}
function isAlarmStarted(idx){
if(!alarmExists(idx)){
return false;
}
var alarmIndex = getAlarmIndex(idx);
var time = new Date();
var t = getCurrentTime();
a = alarms[alarmIndex];
return a.on &&
t <= a.t &&
a.last != time.getDate() &&
(a.timer || a.daysOfWeek[time.getDay()]);
}
function getTimerMin(idx){
if(!isAlarmStarted(idx)){
return 0;
}
var alarmIndex = getAlarmIndex(idx);
var a = alarms[alarmIndex] ;
var diff = a.t - getCurrentTime();
// let hrs = Math.floor(t / 3600000);
var mins = Math.round((diff / 60000) % 60);
// return hrs + ":" + ("0" + mins).substr(-2);
return mins;
}
function reloadQalarm(){
require("Storage").write("qalarm.json", JSON.stringify(alarms));
eval(require("Storage").read("qalarmcheck.js"));
if (WIDGETS["qalarm"]) WIDGETS["qalarm"].reload();
}
function editTimer(idx, hrs, mins, secs){
var alarmIndex = getAlarmIndex(idx);
var a = {
idx: idx,
on: true,
rp: false,
as: false,
hard: false,
};
a.timer = hrs * 3600 + mins * 60 + secs;
a.t = (getCurrentTime() + a.timer * 1000) % 86400000;
if(alarmExists(idx)){
alarms[alarmIndex] = a;
} else {
alarms.push(a)
alarmIndex = alarms.length-1;
}
reloadQalarm();
}
function deleteAlarm(idx){
var alarmIndex = getAlarmIndex(idx);
if(!alarmExists(idx)){
return;
}
alarms.splice(alarmIndex, 1);
reloadQalarm();
}
// Export functions
exports.alarmExists = alarmExists;
exports.isAlarmStarted = isAlarmStarted;
exports.deleteAlarm = deleteAlarm;
exports.timerExists = alarmExists;
exports.isTimerStarted = isAlarmStarted;
exports.getTimerMin = getTimerMin;
exports.editTimer = editTimer;
exports.deleteTimer = deleteAlarm;