From 038fb1a21b01509b708e6016b9684a329cf9aa20 Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Fri, 21 Oct 2022 17:04:53 +0200 Subject: [PATCH] gpstrek - Actually remove listeners on stopping background service --- apps/gpstrek/app.js | 4 +++- apps/gpstrek/widget.js | 22 +++++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/apps/gpstrek/app.js b/apps/gpstrek/app.js index 4db9a945d..242d0c81b 100644 --- a/apps/gpstrek/app.js +++ b/apps/gpstrek/app.js @@ -331,7 +331,9 @@ function onSwipe(dir){ function setButtons(){ let options = { mode: "custom", - swipe: onSwipe + swipe: onSwipe, + btn: nextScreen, + touch: nextScreen }; Bangle.setUI(options); } diff --git a/apps/gpstrek/widget.js b/apps/gpstrek/widget.js index 8d9831e06..4423d7602 100644 --- a/apps/gpstrek/widget.js +++ b/apps/gpstrek/widget.js @@ -23,10 +23,6 @@ function onGPS(fix) { if(fix.fix) state.currentPos = fix; } -Bangle.on('accel', function(e) { - state.acc = e; -}); - function onMag(e) { if (!state.compassHeading) state.compassHeading = e.heading; @@ -73,12 +69,17 @@ function onPressure(e) { } } +function onAcc (e){ + state.acc = e; +} + function start(bg){ Bangle.on('GPS', onGPS); Bangle.on("HRM", onPulse); Bangle.on("mag", onMag); Bangle.on("step", onStep); Bangle.on("pressure", onPressure); + Bangle.on('accel', onAcc); Bangle.setGPSPower(1, "gpstrek"); Bangle.setHRMPower(1, "gpstrek"); @@ -96,8 +97,19 @@ function stop(bg){ if (bg){ if (state.active) bgChanged = true; state.active = false; - saveState(); + } else if (!state.active) { + Bangle.setGPSPower(0, "gpstrek"); + Bangle.setHRMPower(0, "gpstrek"); + Bangle.setCompassPower(0, "gpstrek"); + Bangle.setBarometerPower(0, "gpstrek"); + Bangle.removeListener('GPS', onGPS); + Bangle.removeListener("HRM", onPulse); + Bangle.removeListener("mag", onMag); + Bangle.removeListener("step", onStep); + Bangle.removeListener("pressure", onPressure); + Bangle.removeListener('accel', onAcc); } + saveState(); Bangle.drawWidgets(); }