diff --git a/apps/qalarm/ChangeLog b/apps/qalarm/ChangeLog index b9be6039d..850735ddb 100644 --- a/apps/qalarm/ChangeLog +++ b/apps/qalarm/ChangeLog @@ -4,3 +4,4 @@ Fix app icon Change menu order so 'back' is at the top 0.04: Fix alarm not activating sometimes. +0.05: Include library for other apps. \ No newline at end of file diff --git a/apps/qalarm/lib.js b/apps/qalarm/lib.js new file mode 100644 index 000000000..1cb602456 --- /dev/null +++ b/apps/qalarm/lib.js @@ -0,0 +1,81 @@ +Bangle.loadWidgets(); + +let alarms = require("Storage").readJSON("qalarm.json", 1) || []; + +/** + * LIBRARY + */ +function alarmExists(alarmIndex){ + return alarmIndex > 0 && alarmIndex < alarms.length; +} + +function isAlarmStarted(alarmIndex){ + if(!alarmExists(alarmIndex)){ + return false; + } + + let time = new Date(); + let t = getCurrentTime(); + a = alarms[alarmIndex]; + return a.on && + a.t <= t && + a.last != time.getDate() && + (a.timer || a.daysOfWeek[time.getDay()]); +} + +function getAlarmMin(alarmIndex){ + if(!isAlarmStarted(alarmIndex)){ + return 0; + } + + let t = getCurrentTime(); + let a = alarms[alarmIndex] ; + return a.t - t * 60; + } + +function _reload(){ + require("Storage").write("qalarm.json", JSON.stringify(alarms)); + eval(require("Storage").read("qalarmcheck.js")); + if (WIDGETS["qalarm"]) WIDGETS["qalarm"].reload(); +} + +function editTimer(alarmIndex, hrs, mins, secs){ + var a = { + timer: 300, + on: true, + rp: false, + as: false, + hard: false, + }; + a.timer = hrs * 3600 + mins * 60 + secs; + a.t = (getCurrentTime() + alarm.timer * 1000) % 86400000; + + if(alarmExists(a)){ + alarms[alarmIndex] = a; + } else { + alarmIndex = alarms.length; + alarms.push(a) + } + + _reload(); + return alarmIndex; +} + + +function deleteAlarm(alarmIndex){ + if(!alarmExists(alarmIndex)){ + return; + } + + alarms.splice(alarmIndex, 1); + + _reload(); +} + + +// Export functions +exports.alarmExists = alarmExists; +exports.isAlarmStarted = isAlarmStarted; +exports.getAlarmMin = getAlarmMin; +exports.editTimer = editTimer; +exports.deleteAlarm = deleteAlarm; \ No newline at end of file diff --git a/apps/qalarm/metadata.json b/apps/qalarm/metadata.json index 326ba33a7..1ab4f4192 100644 --- a/apps/qalarm/metadata.json +++ b/apps/qalarm/metadata.json @@ -3,11 +3,12 @@ "name": "Q Alarm and Timer", "shortName": "Q Alarm", "icon": "app.png", - "version": "0.04", + "version": "0.05", "description": "Alarm and timer app with days of week and 'hard' option.", "tags": "tool,alarm,widget", "supports": ["BANGLEJS", "BANGLEJS2"], "storage": [ + { "name": "qalarm", "url": "lib.js" }, { "name": "qalarm.app.js", "url": "app.js" }, { "name": "qalarm.boot.js", "url": "boot.js" }, { "name": "qalarm.js", "url": "qalarm.js" },