messagesoverlay - Handle the auto clearing in lock events

master
Martin Boonk 2024-03-28 20:30:17 +01:00
parent 78c0481770
commit ccdf14e3b6
1 changed files with 23 additions and 17 deletions

View File

@ -419,7 +419,8 @@ let main = function(ovr, event) {
LOG("Main", event, settings); LOG("Main", event, settings);
if (!lockListener) { if (!lockListener) {
lockListener = function (){ lockListener = function (e){
updateClearingTimeout();
drawBorder(); drawBorder();
}; };
Bangle.on('lock', lockListener); Bangle.on('lock', lockListener);
@ -445,6 +446,27 @@ let main = function(ovr, event) {
let ovr; let ovr;
let clearingTimeout; 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) { exports.message = function(type, event) {
LOG("Got message", type, event); LOG("Got message", type, event);
// only handle some event types // only handle some event types
@ -479,22 +501,6 @@ exports.message = function(type, event) {
main(ovr, 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(); updateClearingTimeout();
if (!isQuiet()) Bangle.setLCDPower(1); if (!isQuiet()) Bangle.setLCDPower(1);