mirror of https://github.com/espruino/BangleApps
[sleeplogalarm] Setup widget and app.png
parent
716b2e454a
commit
a07747ca25
Binary file not shown.
Before Width: | Height: | Size: 698 B After Width: | Height: | Size: 7.9 KiB |
|
@ -10,7 +10,8 @@
|
||||||
"supports": ["BANGLEJS2"],
|
"supports": ["BANGLEJS2"],
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"storage": [
|
"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"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ exports = function(now, tNow) {
|
||||||
var settings = Object.assign({
|
var settings = Object.assign({
|
||||||
from: 4, // 0400
|
from: 4, // 0400
|
||||||
to: 8, // 0800
|
to: 8, // 0800
|
||||||
earlier: 6E4 * 30,
|
earlier: 30,
|
||||||
msgAsPrefix: true,
|
msgAsPrefix: true,
|
||||||
disableOnAlarm: false, // !!! not available if alarm is at the next day
|
disableOnAlarm: false, // !!! not available if alarm is at the next day
|
||||||
msg: "...\n",
|
msg: "...\n",
|
||||||
|
@ -12,7 +12,7 @@ exports = function(now, tNow) {
|
||||||
}, require("Storage").readJSON("sleeplogalarm.settings.json", true) || {});
|
}, require("Storage").readJSON("sleeplogalarm.settings.json", true) || {});
|
||||||
|
|
||||||
// calculate then date
|
// calculate then date
|
||||||
var then = new Date(now + settings.earlier);
|
var then = new Date(now + settings.earlier * 6E4);
|
||||||
|
|
||||||
// load library
|
// load library
|
||||||
var sched = require("sched");
|
var sched = require("sched");
|
||||||
|
|
|
@ -7,37 +7,45 @@ if (typeof (global.sleeplog || {}).onChange === "object" &&
|
||||||
enabled: true,
|
enabled: true,
|
||||||
hide: false,
|
hide: false,
|
||||||
drawRange: true,
|
drawRange: true,
|
||||||
|
color: g.theme.dark ? 65504 : 31, // yellow or blue
|
||||||
from: 4, // 0400
|
from: 4, // 0400
|
||||||
to: 8, // 0800
|
to: 8, // 0800
|
||||||
earlier: 6E4 * 30
|
earlier: 30
|
||||||
}, require("Storage").readJSON("sleeplogalarm.settings.json", true) || {});
|
}, require("Storage").readJSON("sleeplogalarm.settings.json", true) || {});
|
||||||
|
|
||||||
// abort if not enabled in settings
|
// abort if not enabled in settings
|
||||||
if (!settings.enabled) return;
|
if (!settings.enabled) return;
|
||||||
|
|
||||||
// setup widget depending on settings
|
// insert neccessary settings into widget
|
||||||
WIDGETS.sleeplogalarm = {
|
WIDGETS.sleeplogalarm = {
|
||||||
area: "tl",
|
area: "tl",
|
||||||
width: 0,
|
width: 0,
|
||||||
|
drawRange: settings.drawRange,
|
||||||
|
color: settings.color,
|
||||||
from: settings.from,
|
from: settings.from,
|
||||||
to: settings.to,
|
to: settings.to,
|
||||||
earlier: settings.earlier,
|
earlier: settings.earlier,
|
||||||
draw: function() {
|
draw: ()=>{}
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 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
|
// set widget width and draw
|
||||||
WIDGETS.sleeplogalarm.width = settings.hide ? 0 : settings.drawRange ? 24 : 8;
|
|
||||||
WIDGETS.sleeplogalarm.draw();
|
WIDGETS.sleeplogalarm.draw();
|
||||||
|
|
||||||
// add sleeplogalarm function to onChange
|
// 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
|
// abort if not changed from deep sleep to light sleep or awake
|
||||||
if (data.prevStatus !== 4 || !(data.status === 3 || data.status === 2)) return;
|
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);
|
var tNow = (now.getHours() * 3600000) + (now.getMinutes() * 60000) + (now.getSeconds() * 1000);
|
||||||
|
|
||||||
// abort if now is outside the possible alarm range
|
// abort if now is outside the possible alarm range
|
||||||
if (tNow + WIDGETS.sleeplogalarm.earlier < WIDGETS.sleeplogalarm.from * 36E5 ||
|
if (tNow + WIDGETS.sleeplogalarm.earlier * 6E4 < WIDGETS.sleeplogalarm.from * 36E5 ||
|
||||||
tNow + WIDGETS.sleeplogalarm.earlier >= WIDGETS.sleeplogalarm.to * 36E5) return;
|
tNow + WIDGETS.sleeplogalarm.earlier * 6E4 >= WIDGETS.sleeplogalarm.to * 36E5) return;
|
||||||
|
|
||||||
// execute trigger function
|
// execute trigger function
|
||||||
require("sleeplogalarm.trigger.js")(now, tNow);
|
require("sleeplogalarm.trigger.js")(now, tNow);
|
||||||
});
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue