From ccdf14e3b6de2b70b55f74b75b5e997e6872958e Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Thu, 28 Mar 2024 20:30:17 +0100 Subject: [PATCH] messagesoverlay - Handle the auto clearing in lock events --- apps/messagesoverlay/lib.js | 40 +++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/apps/messagesoverlay/lib.js b/apps/messagesoverlay/lib.js index 83cbfd704..9432daa7b 100644 --- a/apps/messagesoverlay/lib.js +++ b/apps/messagesoverlay/lib.js @@ -419,7 +419,8 @@ let main = function(ovr, event) { LOG("Main", event, settings); if (!lockListener) { - lockListener = function (){ + lockListener = function (e){ + updateClearingTimeout(); drawBorder(); }; Bangle.on('lock', lockListener); @@ -445,6 +446,27 @@ let main = function(ovr, event) { let ovr; let clearingTimeout; +let updateClearingTimeout = ()=>{ + LOG("updateClearingTimeout"); + if (settings.autoclear >= 0) + return; + if (clearingTimeout) clearTimeout(clearingTimeout); + if (Bangle.isLocked()){ + clearingTimeout = setTimeout(()=>{ + LOG("setNewTimeut"); + let current = eventQueue.pop(); + if (eventQueue.length > 0){ + LOG("still got elements"); + updateClearingTimeout(); + } else { + cleanup(); + } + }, settings.autoclear * 1000); + } else { + clearingTimeout = undefined; + } +}; + exports.message = function(type, event) { LOG("Got message", type, event); // only handle some event types @@ -479,22 +501,6 @@ exports.message = function(type, event) { main(ovr, event); - - let updateClearingTimeout = ()=>{ - LOG("updateClearingTimeout"); - if (clearingTimeout) clearTimeout(clearingTimeout); - clearingTimeout = setTimeout(()=>{ - LOG("setNewTimeut"); - let current = eventQueue.pop(); - if (eventQueue.length > 0){ - LOG("still got elements"); - updateClearingTimeout(); - } else { - cleanup(); - } - }, settings.autoclear * 1000); - }; - updateClearingTimeout(); if (!isQuiet()) Bangle.setLCDPower(1);