widlockunlock: convert to typescript

master
Rob Pilling 2023-02-25 21:58:12 +00:00
parent 92fd9133fb
commit 6a21608322
2 changed files with 77 additions and 42 deletions

View File

@ -1,45 +1,34 @@
"use strict";
WIDGETS["lockunlock"] = { WIDGETS["lockunlock"] = {
area: (() => { area: (function () {
const settings = require("Storage") var _a;
var settings = require("Storage")
.readJSON("lockunlock.settings.json", true) || {}; .readJSON("lockunlock.settings.json", true) || {};
return settings.location || "tl"; return (_a = settings.location) !== null && _a !== void 0 ? _a : "tl";
})(), })(),
sortorder: 10, sortorder: 10,
width: 14, width: 14,
draw: w => { draw: function (w) {
g.reset() g.reset()
.drawImage( .drawImage(atob(Bangle.isLocked()
atob(Bangle.isLocked()
? "DBGBAAAA8DnDDCBCBP////////n/n/n//////z/A" ? "DBGBAAAA8DnDDCBCBP////////n/n/n//////z/A"
: "DBGBAAAA8BnDDCBABP///8A8A8Y8Y8Y8A8A//z/A"), : "DBGBAAAA8BnDDCBABP///8A8A8Y8Y8Y8A8A//z/A"), w.x + 1, w.y + 3);
w.x + 1,
w.y + 3
);
}, },
}; };
Bangle.on("lock", () => Bangle.drawWidgets()); Bangle.on("lock", function () { return Bangle.drawWidgets(); });
Bangle.on("touch", function (_btn, e) {
Bangle.on('touch', (_btn, xy) => { var oversize = 5;
const oversize = 5; if (!e)
return;
const w = WIDGETS.lockunlock; var x = e.x, y = e.y;
var w = WIDGETS["lockunlock"];
const x = xy.x;
const y = xy.y;
if (w.x - oversize <= x && x < w.x + 14 + oversize if (w.x - oversize <= x && x < w.x + 14 + oversize
&& w.y - oversize <= y && y < w.y + 24 + oversize) && w.y - oversize <= y && y < w.y + 24 + oversize) {
{
Bangle.setLocked(true); Bangle.setLocked(true);
var backlightTimeout_1 = Bangle.getOptions().backlightTimeout;
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 }); Bangle.setOptions({ backlightTimeout: 100 });
setTimeout(function () {
setTimeout(() => { Bangle.setOptions({ backlightTimeout: backlightTimeout_1 });
Bangle.setOptions({ backlightTimeout });
}, 300); }, 300);
} }
}); });

View File

@ -0,0 +1,46 @@
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, e) => {
const oversize = 5;
if (!e) return;
const { x, y } = e;
const w = WIDGETS["lockunlock"]!;
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(); // 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);
}
});