2023-01-13 22:11:09 +00:00
|
|
|
WIDGETS["lockunlock"] = {
|
2023-02-25 21:56:34 +00:00
|
|
|
area: (() => {
|
|
|
|
const settings = require("Storage")
|
|
|
|
.readJSON("lockunlock.settings.json", true) || {};
|
|
|
|
return settings.location || "tl";
|
|
|
|
})(),
|
2023-01-13 22:11:09 +00:00
|
|
|
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);
|
|
|
|
}
|
2022-11-30 09:55:02 +00:00
|
|
|
});
|