diff --git a/apps/sleeplogalarm/app.png b/apps/sleeplogalarm/app.png index bb7f11f67..6efb22a3f 100644 Binary files a/apps/sleeplogalarm/app.png and b/apps/sleeplogalarm/app.png differ diff --git a/apps/sleeplogalarm/metadata.json b/apps/sleeplogalarm/metadata.json index 7b3c15818..3ea566acb 100644 --- a/apps/sleeplogalarm/metadata.json +++ b/apps/sleeplogalarm/metadata.json @@ -10,7 +10,8 @@ "supports": ["BANGLEJS2"], "readme": "README.md", "storage": [ - {"name": "sleeplogalarm.wid.js", "url": "widget.js"}, - {"name": "sleeplogalarm.settings.js", "url": "settings.js"} + {"name": "sleeplogalarm.settings.js", "url": "settings.js"}, + {"name": "sleeplogalarm.trigger.js", "url": "trigger.js"}, + {"name": "sleeplogalarm.wid.js", "url": "widget.js"} ] } diff --git a/apps/sleeplogalarm/trigger.js b/apps/sleeplogalarm/trigger.js index d80a86f3d..54135b649 100644 --- a/apps/sleeplogalarm/trigger.js +++ b/apps/sleeplogalarm/trigger.js @@ -3,7 +3,7 @@ exports = function(now, tNow) { var settings = Object.assign({ from: 4, // 0400 to: 8, // 0800 - earlier: 6E4 * 30, + earlier: 30, msgAsPrefix: true, disableOnAlarm: false, // !!! not available if alarm is at the next day msg: "...\n", @@ -12,7 +12,7 @@ exports = function(now, tNow) { }, require("Storage").readJSON("sleeplogalarm.settings.json", true) || {}); // calculate then date - var then = new Date(now + settings.earlier); + var then = new Date(now + settings.earlier * 6E4); // load library var sched = require("sched"); @@ -36,7 +36,7 @@ exports = function(now, tNow) { // return if no alarm is found if (!alarm) return; - // disable early triggered alarm if set and now and then on the same day + // disable early triggered alarm if set and now and then on the same day if (settings.disableOnAlarm && now.getDate() === then.getDate()) { // add indexes to find alarm to temporary disable allAlarms = allAlarms.map((a, idx) => { diff --git a/apps/sleeplogalarm/widget.js b/apps/sleeplogalarm/widget.js index a7190768c..34453497b 100644 --- a/apps/sleeplogalarm/widget.js +++ b/apps/sleeplogalarm/widget.js @@ -7,37 +7,45 @@ if (typeof (global.sleeplog || {}).onChange === "object" && enabled: true, hide: false, drawRange: true, + color: g.theme.dark ? 65504 : 31, // yellow or blue from: 4, // 0400 to: 8, // 0800 - earlier: 6E4 * 30 + earlier: 30 }, require("Storage").readJSON("sleeplogalarm.settings.json", true) || {}); // abort if not enabled in settings if (!settings.enabled) return; - // setup widget depending on settings + // insert neccessary settings into widget WIDGETS.sleeplogalarm = { area: "tl", width: 0, + drawRange: settings.drawRange, + color: settings.color, from: settings.from, to: settings.to, earlier: settings.earlier, - draw: function() { - if (this.width) g.reset().setColor(1, 1, 0).drawImage(atob(""), this.x, this.y + this.width - 8); - if (this.width > 8) { - g.setFont().setFontAllign(); - g.drwaString(this.from, this.x + 6, this.y); - g.drwaString(this.to, this.x + 18, this.y); - } - } + draw: ()=>{} }; + // setup widget depending if not hidden + if (!settings.hide) { + WIDGETS.sleeplogalarm.width = 8; + WIDGETS.sleeplogalarm.draw = function() { + g.reset().setColor(this.color).drawImage(atob("BwoBD8SSSP4EEEDg"), this.x + 1, this.y); + if (this.drawRange) { + require("Font4x5Numeric").add(Graphics); + g.setFont("4x5Numeric").drawString(this.from, this.x + 1, this.y + 12); + g.setFontAlign(1, 1).drawString(this.to, this.x + this.width + 1, this.y + 23); + } + }; + } + // set widget width and draw - WIDGETS.sleeplogalarm.width = settings.hide ? 0 : settings.drawRange ? 24 : 8; WIDGETS.sleeplogalarm.draw(); // add sleeplogalarm function to onChange - sleeplog.onChange.push(function(data) { + sleeplog.onChange.sleeplogalarm = function(data) { // abort if not changed from deep sleep to light sleep or awake if (data.prevStatus !== 4 || !(data.status === 3 || data.status === 2)) return; @@ -46,10 +54,10 @@ if (typeof (global.sleeplog || {}).onChange === "object" && var tNow = (now.getHours() * 3600000) + (now.getMinutes() * 60000) + (now.getSeconds() * 1000); // abort if now is outside the possible alarm range - if (tNow + WIDGETS.sleeplogalarm.earlier < WIDGETS.sleeplogalarm.from * 36E5 || - tNow + WIDGETS.sleeplogalarm.earlier >= WIDGETS.sleeplogalarm.to * 36E5) return; + if (tNow + WIDGETS.sleeplogalarm.earlier * 6E4 < WIDGETS.sleeplogalarm.from * 36E5 || + tNow + WIDGETS.sleeplogalarm.earlier * 6E4 >= WIDGETS.sleeplogalarm.to * 36E5) return; // execute trigger function require("sleeplogalarm.trigger.js")(now, tNow); - }); + }; }