mirror of https://github.com/espruino/BangleApps
widmessages 0.06: Fix bug that meant that only one widget was shown (now 3 unless changed in Settings->Apps->Messages->Widget messages)
parent
5d5c307b9d
commit
3e83eaa6d8
|
@ -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)
|
|
@ -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",
|
||||
|
|
|
@ -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();
|
||||
})();
|
||||
}
|
Loading…
Reference in New Issue