when a message is shown from user input, do not set an unread timeout

pull/3354/head
Paul Arguillère 2024-04-13 13:40:57 +02:00
parent 49680793e0
commit 632fbe36ae
2 changed files with 12 additions and 13 deletions

View File

@ -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.

View File

@ -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 && idx<MESSAGES.length-1) showMessage(MESSAGES[idx+1].id);
if (ud<0 && idx>0) showMessage(MESSAGES[idx-1].id);
if (ud>0 && idx<MESSAGES.length-1) showMessage(MESSAGES[idx+1].id, true);
if (ud<0 && idx>0) 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({