From e0937a942b216dd41fa574a39ed2186f34603398 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 9 Mar 2022 13:39:19 +0000 Subject: [PATCH] messages 0.25: Fix widget memory usage issues if message received and watch repeatedly calls Bangle.drawWidgets (fix #1550) --- apps/gbridge/metadata.json | 2 +- apps/messages/ChangeLog | 3 ++- apps/messages/metadata.json | 2 +- apps/messages/widget.js | 7 ++++++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/apps/gbridge/metadata.json b/apps/gbridge/metadata.json index 0c46aa852..db7119758 100644 --- a/apps/gbridge/metadata.json +++ b/apps/gbridge/metadata.json @@ -2,7 +2,7 @@ "id": "gbridge", "name": "Gadgetbridge", "version": "0.26", - "description": "(NOT RECOMMENDED) Displays Gadgetbridge notifications from Android. Please use the 'Android' Bangle.js app instead.", + "description": "(NOT RECOMMENDED) Displays Gadgetbridge notifications from Android. Please use the 'Android Integration' Bangle.js app instead.", "icon": "app.png", "type": "widget", "tags": "tool,system,android,widget", diff --git a/apps/messages/ChangeLog b/apps/messages/ChangeLog index bd40868a5..02492d5ea 100644 --- a/apps/messages/ChangeLog +++ b/apps/messages/ChangeLog @@ -35,5 +35,6 @@ Allow repeat to be switched Off, so there is no buzzing repetition. Also gave the widget a pixel more room to the right 0.23: Change message colors to match current theme instead of using green - Now attempt to use Large/Big/Medium fonts, and allow minimum font size to be configured + Now attempt to use Large/Big/Medium fonts, and allow minimum font size to be configured 0.24: Remove left-over debug statement +0.25: Fix widget memory usage issues if message received and watch repeatedly calls Bangle.drawWidgets (fix #1550) diff --git a/apps/messages/metadata.json b/apps/messages/metadata.json index 0387c1972..ff6a078a5 100644 --- a/apps/messages/metadata.json +++ b/apps/messages/metadata.json @@ -1,7 +1,7 @@ { "id": "messages", "name": "Messages", - "version": "0.24", + "version": "0.25", "description": "App to display notifications from iOS and Gadgetbridge/Android", "icon": "app.png", "type": "app", diff --git a/apps/messages/widget.js b/apps/messages/widget.js index d9363573a..ad8d58c40 100644 --- a/apps/messages/widget.js +++ b/apps/messages/widget.js @@ -1,5 +1,10 @@ WIDGETS["messages"]={area:"tl", width:0, iconwidth:24, draw:function() { + // If we had a setTimeout queued from the last time we were called, remove it + if (WIDGETS["messages"].i) { + clearTimeout(WIDGETS["messages"].i); + delete WIDGETS["messages"].i; + } Bangle.removeListener('touch', this.touch); if (!this.width) return; var c = (Date.now()-this.t)/1000; @@ -11,7 +16,7 @@ draw:function() { this.l = Date.now(); WIDGETS["messages"].buzz(); // buzz every 4 seconds } - setTimeout(()=>WIDGETS["messages"].draw(), 1000); + WIDGETS["messages"].i=setTimeout(()=>WIDGETS["messages"].draw(), 1000); if (process.env.HWVERSION>1) Bangle.on('touch', this.touch); },show:function(quiet) { WIDGETS["messages"].t=Date.now(); // first time