BangleApps/apps/coretemp/widget.js

59 lines
1.5 KiB
JavaScript

(() => {
var settings = {};
var CORESensorStatus = false;
// draw your widget
function draw() {
if (!settings.widget)
return;
g.reset();
g.setFont("6x8", 1).setFontAlign(0, 0);
g.setFontAlign(0, 0);
g.clearRect(this.x, this.y, this.x + 23, this.y + 23);
if (CORESensorStatus) {
g.setColor("#0f0"); // green
} else {
g.setColor(g.theme.dark ? "#333" : "#CCC"); // off = grey
}
g.drawImage(
atob("FBSCAAAAADwAAAPw/8AAP/PD8AP/wwDwD//PAPAP/APA8D/AA//wP8AA/8A/AAAAPP8AAAD8/wAAAPz/AAAA/D8AAAAAP8AAA/A/8AAP8A/8AD/wD///z8AD///PAAA///AAAAP/wAA="),
this.x + (24 - 12) / 2, this.y + 1);
g.setColor(-1);
}
// Called by sensor app to update status
function reload() {
settings = require("Storage").readJSON("coretemp.json", 1) || {};
if (!settings.widget) {
delete WIDGETS["coretemp"];
return;
}
if (settings.enabled) {
WIDGETS["coretemp"].width = 24;
} else {
WIDGETS["CORESensor"].width = 0;
}
}
if (Bangle.hasOwnProperty("isCORESensorConnected")) {
setInterval(function () {
if (Bangle.isCORESensorConnected() != CORESensorStatus) {
CORESensorStatus = Bangle.isCORESensorConnected();
WIDGETS["coretemp"].draw();
}
}, 10000); //runs every 10 seconds
}
// add the widget
WIDGETS["coretemp"] = {
area: "tl",
width: 24,
draw: draw,
reload: function () {
reload();
Bangle.drawWidgets(); // relayout all widgets
}
};
// load settings, set correct widget width
reload();
})()