From 70b89fbe2f320c7e78dff492727e35dc59c42811 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Tue, 10 Oct 2023 10:50:07 +0100 Subject: [PATCH] backswipe: ignore `undefined` handlers `undefined` handlers are created when we [remove listeners] part-way through the array. This fixes `backswipe` for all firmwares, but leaves the door open for a potential firmware change. [remove listeners]: https://github.com/bobrippling/Espruino/blob/0f16231a4369bb2d154b9fab5a0d806122cddb39/src/jswrap_object.c#L1035-L1035 --- apps/backswipe/ChangeLog | 1 + apps/backswipe/boot.js | 2 +- apps/backswipe/metadata.json | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/backswipe/ChangeLog b/apps/backswipe/ChangeLog index 1e5479d6e..54ffebfc7 100644 --- a/apps/backswipe/ChangeLog +++ b/apps/backswipe/ChangeLog @@ -1,2 +1,3 @@ 0.01: New App! 0.02: Don't fire if the app uses swipes already. +0.03: Only count defined handlers in the handler array. diff --git a/apps/backswipe/boot.js b/apps/backswipe/boot.js index e46f902eb..d5d54cd59 100644 --- a/apps/backswipe/boot.js +++ b/apps/backswipe/boot.js @@ -26,7 +26,7 @@ if (Bangle["#on"+eventType] === undefined) { return 0; } else if (Bangle["#on"+eventType] instanceof Array) { - return Bangle["#on"+eventType].length; + return Bangle["#on"+eventType].filter(x=>x).length; } else if (Bangle["#on"+eventType] !== undefined) { return 1; } diff --git a/apps/backswipe/metadata.json b/apps/backswipe/metadata.json index c7cb2185f..add609a0f 100644 --- a/apps/backswipe/metadata.json +++ b/apps/backswipe/metadata.json @@ -1,7 +1,7 @@ { "id": "backswipe", "name": "Back Swipe", "shortName":"BackSwipe", - "version":"0.02", + "version":"0.03", "description": "Service that allows you to use an app's back button using left to right swipe gesture", "icon": "app.png", "tags": "back,gesture,swipe",