BangleApps/apps/widmeda/widget.js

48 lines
1.5 KiB
JavaScript
Raw Normal View History

(() => {
function getAlertText() {
const medicalinfo = require("medicalinfo").load();
const alertText = ((Array.isArray(medicalinfo.medicalAlert)) && (medicalinfo.medicalAlert[0])) ? medicalinfo.medicalAlert[0] : "";
return (g.wrapString(alertText, g.getWidth()).length === 1) ? alertText : "MEDICAL ALERT";
}
// Top right star of life logo
WIDGETS["widmedatr"] = {
area: "tr",
width: 24,
draw: function () {
g.reset();
g.setColor("#f00");
g.drawImage(atob("FhYBAAAAA/AAD8AAPwAc/OD/P8P8/x/z/n+/+P5/wP58A/nwP5/x/v/n/P+P8/w/z/Bz84APwAA/AAD8AAAAAA=="), this.x + 1, this.y + 1);
}
};
// Bottom medical alert text
WIDGETS["widmedabl"] = {
area: "bl",
width: Bangle.CLOCK ? Bangle.appRect.w : 0,
draw: function () {
// Only show the widget on clocks
if (!Bangle.CLOCK) return;
g.reset();
g.setBgColor(g.theme.dark ? "#fff" : "#f00");
g.setColor(g.theme.dark ? "#f00" : "#fff");
g.setFont("Vector", 16);
g.setFontAlign(0, 0);
g.clearRect(this.x, this.y, this.x + this.width - 1, this.y + 23);
const alertText = getAlertText();
g.drawString(alertText, this.width / 2, this.y + (23 / 2));
}
};
Bangle.on("touch", (_, c) => {
const bl = WIDGETS.widmedabl;
const tr = WIDGETS.widmedatr;
if ((bl && c.x >= bl.x && c.x < bl.x + bl.width && c.y >= bl.y && c.y <= bl.y + 24)
|| (tr && c.x >= tr.x && c.x < tr.x + tr.width && c.y >= tr.y && c.y <= tr.y + 24)) {
load("medicalinfo.app.js");
}
});
})();