1
0
Fork 0

messagesoverlay - Autoclear messages after timeout

master
Martin Boonk 2023-08-29 21:04:09 +02:00
parent 650add7c84
commit fbe1cf0fce
1 changed files with 25 additions and 1 deletions

View File

@ -23,6 +23,8 @@ let settings = {
fontMedium:"Vector:14",
fontBig:"Vector:20",
fontLarge:"Vector:30",
timeout: 10,
reemit: true
};
let eventQueue = [];
@ -230,10 +232,11 @@ let next = function(ovr) {
if (eventQueue.length == 0) {
LOG("no element in queue - closing");
cleanup();
return;
return false;
}
showMessage(ovr, eventQueue[0]);
return true;
};
let callBuzzTimer = null;
@ -427,6 +430,7 @@ let main = function(ovr, event) {
};
let ovr;
let clearingTimeout;
exports.message = function(type, event) {
LOG("Got message", type, event);
@ -434,6 +438,7 @@ exports.message = function(type, event) {
if(!(type=="text" || type == "call")) return;
if(type=="text" && event.id == "nav") return;
if(event.handled) return;
if(event.messagesoverlayignore) return;
bpp = 4;
if (process.memory().free < LOW_MEM)
@ -460,6 +465,25 @@ exports.message = function(type, event) {
ovr.theme = { fg:0, bg:1, fg2:1, bg2:0, fgH:1, bgH:0 };
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.timeout * 1000);
};
updateClearingTimeout();
if (!isQuiet()) Bangle.setLCDPower(1);
event.handled = true;
g = _g;