From 632fbe36aeb0389802f96c64924a3ccab5816406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20Arguill=C3=A8re?= Date: Sat, 13 Apr 2024 13:40:57 +0200 Subject: [PATCH] when a message is shown from user input, do not set an unread timeout --- apps/messagegui/ChangeLog | 2 +- apps/messagegui/app.js | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/apps/messagegui/ChangeLog b/apps/messagegui/ChangeLog index 769590dea..7320d8ec6 100644 --- a/apps/messagegui/ChangeLog +++ b/apps/messagegui/ChangeLog @@ -105,4 +105,4 @@ 0.76: Swipe up/down on a shown message to show the next newer/older message. 0.77: Messages can now use international fonts if they are installed 0.78: Fix: When user taps on a new message, clear the unread timeout -0.79: Fix: Reset the unread timeout each time a new message is shown +0.79: Fix: Reset the unread timeout each time a new message is shown. When the message is read from user input, do not set an unread timeout. diff --git a/apps/messagegui/app.js b/apps/messagegui/app.js index 5868b40c9..a2c01faa6 100644 --- a/apps/messagegui/app.js +++ b/apps/messagegui/app.js @@ -87,7 +87,7 @@ var onMessagesModified = function(type,msg) { } if (msg && msg.id=="nav" && msg.t=="modify" && active!="map") return; // don't show an updated nav message if we're just in the menu - showMessage(msg&&msg.id); + showMessage(msg&&msg.id, false); }; Bangle.on("message", onMessagesModified); @@ -254,16 +254,16 @@ function showMessageScroller(msg) { g.setFont(bodyFont).setFontAlign(0,-1).drawString(lines[idx], r.x+r.w/2, r.y); }, select : function(idx) { if (idx>=lines.length-2) - showMessage(msg.id); + showMessage(msg.id, true); }, - back : () => showMessage(msg.id) + back : () => showMessage(msg.id, true) }); } function showMessageSettings(msg) { active = "settings"; var menu = {"":{"title":/*LANG*/"Message"}, - "< Back" : () => showMessage(msg.id), + "< Back" : () => showMessage(msg.id, true), /*LANG*/"View Message" : () => { showMessageScroller(msg); }, @@ -304,8 +304,8 @@ function showMessageSettings(msg) { E.showMenu(menu); } -function showMessage(msgid) { - resetReloadTimeout(); +function showMessage(msgid, persist) { + if(!persist) resetReloadTimeout(); let idx = MESSAGES.findIndex(m=>m.id==msgid); var msg = MESSAGES[idx]; if (updateLabelsInterval) { @@ -410,8 +410,8 @@ function showMessage(msgid) { Bangle.swipeHandler = (lr,ud) => { if (lr>0 && posHandler) posHandler(); if (lr<0 && negHandler) negHandler(); - if (ud>0 && idx0) showMessage(MESSAGES[idx-1].id); + if (ud>0 && idx0) showMessage(MESSAGES[idx-1].id, true); }; Bangle.on("swipe", Bangle.swipeHandler); g.reset().clearRect(Bangle.appRect); @@ -448,7 +448,7 @@ function checkMessages(options) { // If we have a new message, show it if (options.showMsgIfUnread && newMessages.length) { delete newMessages[0].show; // stop us getting stuck here if we're called a second time - showMessage(newMessages[0].id); + showMessage(newMessages[0].id, true); // buzz after showMessage, so being busy during layout doesn't affect the buzz pattern if (global.BUZZ_ON_NEW_MESSAGE) { // this is set if we entered the messages app by loading `messagegui.new.js` @@ -461,7 +461,7 @@ function checkMessages(options) { } // no new messages: show playing music? Only if we have playing music, or state=="show" (set by messagesmusic) if (options.openMusic && MESSAGES.some(m=>m.id=="music" && ((m.track && m.state=="play") || m.state=="show"))) - return showMessage('music'); + return showMessage('music', true); // no new messages - go to clock? if (options.clockIfAllRead && newMessages.length==0) return load(); @@ -510,7 +510,7 @@ function checkMessages(options) { }, select : idx => { if (idx < MESSAGES.length) - showMessage(MESSAGES[idx].id); + showMessage(MESSAGES[idx].id, true); }, back : () => load() }); @@ -537,7 +537,6 @@ require("messages").toggleWidget(false); Bangle.drawWidgets(); setTimeout(() => { - resetReloadTimeout(); // only openMusic on launch if music is new, or state=="show" (set by messagesmusic) var musicMsg = MESSAGES.find(m => m.id === "music"); checkMessages({