diff --git a/apps/widhid/wid.js b/apps/widhid/wid.js index 13ccddd5f..68da78906 100644 --- a/apps/widhid/wid.js +++ b/apps/widhid/wid.js @@ -9,7 +9,7 @@ var dragging = false; var activeTimeout; var waitForRelease = true; - Bangle.on("swipe", function (_lr, ud) { + var onSwipe = (function (_lr, ud) { if (Bangle.CLKINFO_FOCUS) return; if (!activeTimeout && ud > 0) { @@ -95,6 +95,8 @@ redraw(); }, 3000); }; + var redraw = function () { return setTimeout(Bangle.drawWidgets, 50); }; + var connected = NRF.getSecurityStatus().connected; WIDGETS["hid"] = { area: "tr", sortorder: -20, @@ -105,15 +107,18 @@ ? require("heatshrink").decompress(atob("jEYxH+AEfH44XXAAYXXDKIXZDYp3pC/6KHUMwWHC/4XvUy4YGdqoA/AFoA==")) : 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 () { WIDGETS["hid"].width = 24; + Bangle.on("swipe", onSwipe); redraw(); }); NRF.on("disconnect", function () { WIDGETS["hid"].width = 0; + Bangle.removeListener("swipe", onSwipe); redraw(); }); var sendHid = function (code) { diff --git a/apps/widhid/wid.ts b/apps/widhid/wid.ts index ed6c7b02e..3235f48b5 100644 --- a/apps/widhid/wid.ts +++ b/apps/widhid/wid.ts @@ -11,14 +11,14 @@ let activeTimeout: number | undefined; let waitForRelease = true; - Bangle.on("swipe", (_lr, ud) => { + const onSwipe = ((_lr, ud) => { if((Bangle as BangleExt).CLKINFO_FOCUS) return; if(!activeTimeout && ud! > 0){ listen(); Bangle.buzz(20); } - }); + }) satisfies SwipeCallback; const onDrag = (e => { if((Bangle as BangleExt).CLKINFO_FOCUS) return; @@ -96,6 +96,9 @@ }, 3000); }; + const redraw = () => setTimeout(Bangle.drawWidgets, 50); + + const connected = NRF.getSecurityStatus().connected; WIDGETS["hid"] = { area: "tr", sortorder: -20, @@ -109,17 +112,20 @@ 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", () => { WIDGETS["hid"]!.width = 24; + Bangle.on("swipe", onSwipe); redraw(); }); NRF.on("disconnect", () => { WIDGETS["hid"]!.width = 0; + Bangle.removeListener("swipe", onSwipe); redraw(); });