widmessages 0.06: Fix bug that meant that only one widget was shown (now 3 unless changed in Settings->Apps->Messages->Widget messages)

pull/3261/head
Gordon Williams 2024-03-14 10:19:35 +00:00
parent 5d5c307b9d
commit 3e83eaa6d8
3 changed files with 9 additions and 13 deletions

View File

@ -4,3 +4,4 @@
0.03: Fix messages not showing if UI auto-open is disabled
0.04: Now shows message icons again (#2416)
0.05: Match draw() API e.g. to allow wid_edit to alter this widget
0.06: Fix bug that meant that only one widget was shown (now 3 unless changed in Settings->Apps->Messages->Widget messages)

View File

@ -1,7 +1,7 @@
{
"id": "widmessages",
"name": "Message Widget",
"version": "0.05",
"version": "0.06",
"description": "Widget showing new messages",
"icon": "app.png",
"type": "widget",

View File

@ -1,13 +1,5 @@
(() => {
if ((require("Storage").readJSON("messages.settings.json", true) || {}).maxMessages===0) return;
function filterMessages(msgs) {
return msgs.filter(msg => msg.new && msg.id != "music")
.map(m => m.src) // we only need this for icon/color
.filter((msg, i, arr) => arr.findIndex(nmsg => msg.src == nmsg.src) == i);
}
// NOTE when adding a custom "essages" widget:
if ((require("Storage").readJSON("messages.settings.json", true) || {}).maxMessages!==0) {
// NOTE when adding a custom "messages" widget:
// the name still needs to be "messages": the library calls WIDGETS["messages'].hide()/show()
// see e.g. widmsggrid
WIDGETS["messages"] = {
@ -48,6 +40,9 @@
if (this.hidden) return;
if (type==="music") return;
if (msg.id && !msg.new && msg.t!=="remove") return;
let filterMessages = msgs => msgs.filter(msg => msg.new && msg.id != "music")
.filter((msg, i, arr) => arr.findIndex(nmsg => msg.src == nmsg.src) == i) // only include one of each type
.map(m => m.src); // we only need this for icon/color;
this.srcs = filterMessages(require("messages").getMessages(msg));
const settings = Object.assign({maxMessages:3},require('Storage').readJSON("messages.settings.json", true) || {});
this.width = 24 * E.clip(this.srcs.length, 0, settings.maxMessages);
@ -66,11 +61,11 @@
Bangle.drawWidgets();
}
}, show() {
delete this.hidden
delete this.hidden;
this.onMsg("show", {}); // reload messages+redraw
}
};
Bangle.on("message", WIDGETS["messages"].onMsg.bind(WIDGETS["messages"]));
WIDGETS["messages"].onMsg("init", {}); // abuse type="init" to prevent Bangle.drawWidgets();
})();
}