From d7286c451b34229929b9b1898d19c06b08855a74 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Tue, 14 May 2024 21:53:48 +0100 Subject: [PATCH] multitimer: preserve original `uiRemove` e.g. a `showMenu()`'s `setUI` call --- apps/multitimer/ChangeLog | 1 + apps/multitimer/app.js | 2 ++ apps/multitimer/metadata.json | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/multitimer/ChangeLog b/apps/multitimer/ChangeLog index 0facd0a26..a37b12a60 100644 --- a/apps/multitimer/ChangeLog +++ b/apps/multitimer/ChangeLog @@ -10,3 +10,4 @@ 0.09: Minor code improvements 0.10: Handle missing alarm data, e.g. when our reset is fired from non-multitimer alarms +0.11: Preserve setUI removal callbacks, e.g. those of showMenu diff --git a/apps/multitimer/app.js b/apps/multitimer/app.js index 31da18796..91745310f 100644 --- a/apps/multitimer/app.js +++ b/apps/multitimer/app.js @@ -691,10 +691,12 @@ function setUI() { // E.showMenu/E.showScroller/E.showAlert call setUI, so we register onDrag() separately // and tack on uiRemove after the fact to avoid interfering Bangle.on("drag", onDrag); + const origRemove = Bangle.uiRemove; Bangle.uiRemove = () => { Bangle.removeListener("drag", onDrag); Object.values(timerInt1).forEach(clearTimeout); Object.values(timerInt2).forEach(clearTimeout); + if (origRemove) origRemove(); }; } diff --git a/apps/multitimer/metadata.json b/apps/multitimer/metadata.json index b1cdcb34d..7f44698a9 100644 --- a/apps/multitimer/metadata.json +++ b/apps/multitimer/metadata.json @@ -1,7 +1,7 @@ { "id": "multitimer", "name": "Multi Timer", - "version": "0.10", + "version": "0.11", "description": "Set timers and chronographs (stopwatches) and watch them count down in real time. Pause, create, edit, and delete timers and chronos, and add custom labels/messages. Also sets alarms.", "icon": "app.png", "screenshots": [