messagesoverlay - Fix trying to draw on empty queue

pull/3307/head
Martin Boonk 2024-04-03 19:58:25 +02:00
parent 1ddbb79913
commit a6b92215fa
1 changed files with 9 additions and 8 deletions

View File

@ -166,7 +166,7 @@ let showMessage = function(ovr, msg) {
msg.new = false;
if (!buzzing){
buzzing = true;
Bangle.buzz().then(()=>{setTimeout(()=>{buzzing = false;},2000)});
Bangle.buzz().then(()=>{setTimeout(()=>{buzzing = false;},2000);});
}
Bangle.setLCDPower(1);
}
@ -304,7 +304,7 @@ let drawMessage = function(ovr, msg) {
r += Math.max(metrics.height, metrics.maxImageHeight);
});
return r;
}
};
ovr.setColor(ovr.theme.fg);
ovr.setBgColor(ovr.theme.bg);
@ -484,7 +484,9 @@ let updateClearingTimeout = ()=>{
LOG("Set new clearing timeout");
clearingTimeout = setTimeout(()=>{
LOG("setNewTimeout");
drawMessage(ovr, eventQueue.pop());
let event = eventQueue.pop();
if (event)
drawMessage(ovr, event);
if (eventQueue.length > 0){
LOG("still got elements");
updateClearingTimeout();
@ -498,7 +500,7 @@ let updateClearingTimeout = ()=>{
};
exports.message = function(type, event) {
LOG("Got message", type);
LOG("Got message", type, event);
// only handle some event types
if(!(type=="text" || type == "call")) return;
if(type=="text" && event.id == "nav") return;
@ -528,7 +530,6 @@ exports.message = function(type, event) {
ovr.theme = { fg:0, bg:1, fg2:1, bg2:0, fgH:1, bgH:0 };
ovr.clear();
main(ovr, event);
updateClearingTimeout();