1
0
Fork 0
BangleApps/apps/widlockunlock/widget.js

46 lines
1.1 KiB
JavaScript

WIDGETS["lockunlock"] = {
area: (() => {
const settings = require("Storage")
.readJSON("lockunlock.settings.json", true) || {};
return settings.location || "tl";
})(),
sortorder: 10,
width: 14,
draw: w => {
g.reset()
.drawImage(
atob(Bangle.isLocked()
? "DBGBAAAA8DnDDCBCBP////////n/n/n//////z/A"
: "DBGBAAAA8BnDDCBABP///8A8A8Y8Y8Y8A8A//z/A"),
w.x + 1,
w.y + 3
);
},
};
Bangle.on("lock", () => Bangle.drawWidgets());
Bangle.on('touch', (_btn, xy) => {
const oversize = 5;
const w = WIDGETS.lockunlock;
const x = xy.x;
const y = xy.y;
if(w.x - oversize <= x && x < w.x + 14 + oversize
&& w.y - oversize <= y && y < w.y + 24 + oversize)
{
Bangle.setLocked(true);
const backlightTimeout = Bangle.getOptions().backlightTimeout; // ms
// seems to be a race/if we don't give the firmware enough time,
// it won't timeout the backlight and we'll restore it in our setTimeout below
Bangle.setOptions({ backlightTimeout: 100 });
setTimeout(() => {
Bangle.setOptions({ backlightTimeout });
}, 300);
}
});