widhid: only register swipe/activation handler when connected

master
Rob Pilling 2023-05-09 07:38:56 +01:00
parent cb03f2837c
commit 6cca01db0b
2 changed files with 18 additions and 7 deletions

View File

@ -9,7 +9,7 @@
var dragging = false; var dragging = false;
var activeTimeout; var activeTimeout;
var waitForRelease = true; var waitForRelease = true;
Bangle.on("swipe", function (_lr, ud) { var onSwipe = (function (_lr, ud) {
if (Bangle.CLKINFO_FOCUS) if (Bangle.CLKINFO_FOCUS)
return; return;
if (!activeTimeout && ud > 0) { if (!activeTimeout && ud > 0) {
@ -95,6 +95,8 @@
redraw(); redraw();
}, 3000); }, 3000);
}; };
var redraw = function () { return setTimeout(Bangle.drawWidgets, 50); };
var connected = NRF.getSecurityStatus().connected;
WIDGETS["hid"] = { WIDGETS["hid"] = {
area: "tr", area: "tr",
sortorder: -20, sortorder: -20,
@ -105,15 +107,18 @@
? require("heatshrink").decompress(atob("jEYxH+AEfH44XXAAYXXDKIXZDYp3pC/6KHUMwWHC/4XvUy4YGdqoA/AFoA==")) ? require("heatshrink").decompress(atob("jEYxH+AEfH44XXAAYXXDKIXZDYp3pC/6KHUMwWHC/4XvUy4YGdqoA/AFoA=="))
: require("heatshrink").decompress(atob("jEYxH+AEcdjoXXAAYXXDKIXZDYp3pC/6KHUMwWHC/4XvUy4YGdqoA/AFoA==")), this.x + 2, this.y + 2); : require("heatshrink").decompress(atob("jEYxH+AEcdjoXXAAYXXDKIXZDYp3pC/6KHUMwWHC/4XvUy4YGdqoA/AFoA==")), this.x + 2, this.y + 2);
}, },
width: NRF.getSecurityStatus().connected ? 24 : 0, width: connected ? 24 : 0,
}; };
var redraw = function () { return setTimeout(Bangle.drawWidgets, 50); }; if (connected)
Bangle.on("swipe", onSwipe);
NRF.on("connect", function () { NRF.on("connect", function () {
WIDGETS["hid"].width = 24; WIDGETS["hid"].width = 24;
Bangle.on("swipe", onSwipe);
redraw(); redraw();
}); });
NRF.on("disconnect", function () { NRF.on("disconnect", function () {
WIDGETS["hid"].width = 0; WIDGETS["hid"].width = 0;
Bangle.removeListener("swipe", onSwipe);
redraw(); redraw();
}); });
var sendHid = function (code) { var sendHid = function (code) {

View File

@ -11,14 +11,14 @@
let activeTimeout: number | undefined; let activeTimeout: number | undefined;
let waitForRelease = true; let waitForRelease = true;
Bangle.on("swipe", (_lr, ud) => { const onSwipe = ((_lr, ud) => {
if((Bangle as BangleExt).CLKINFO_FOCUS) return; if((Bangle as BangleExt).CLKINFO_FOCUS) return;
if(!activeTimeout && ud! > 0){ if(!activeTimeout && ud! > 0){
listen(); listen();
Bangle.buzz(20); Bangle.buzz(20);
} }
}); }) satisfies SwipeCallback;
const onDrag = (e => { const onDrag = (e => {
if((Bangle as BangleExt).CLKINFO_FOCUS) return; if((Bangle as BangleExt).CLKINFO_FOCUS) return;
@ -96,6 +96,9 @@
}, 3000); }, 3000);
}; };
const redraw = () => setTimeout(Bangle.drawWidgets, 50);
const connected = NRF.getSecurityStatus().connected;
WIDGETS["hid"] = { WIDGETS["hid"] = {
area: "tr", area: "tr",
sortorder: -20, sortorder: -20,
@ -109,17 +112,20 @@
this.y! + 2 this.y! + 2
); );
}, },
width: NRF.getSecurityStatus().connected ? 24 : 0, width: connected ? 24 : 0,
}; };
const redraw = () => setTimeout(Bangle.drawWidgets, 50); if(connected)
Bangle.on("swipe", onSwipe);
NRF.on("connect", () => { NRF.on("connect", () => {
WIDGETS["hid"]!.width = 24; WIDGETS["hid"]!.width = 24;
Bangle.on("swipe", onSwipe);
redraw(); redraw();
}); });
NRF.on("disconnect", () => { NRF.on("disconnect", () => {
WIDGETS["hid"]!.width = 0; WIDGETS["hid"]!.width = 0;
Bangle.removeListener("swipe", onSwipe);
redraw(); redraw();
}); });