37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
{
|
|
const loadWillReset = () => Bangle.load === load || !Bangle.uiRemove;
|
|
|
|
exports.handleMessage = function(type, msg) {
|
|
if (!Bangle.MESSAGES || !Bangle.MESSAGES.length) Bangle.MESSAGES = require("messages").getMessages(msg);
|
|
msg.show = true;
|
|
msg.type = type;
|
|
if (msg.t === "add") {
|
|
require("messages").apply(msg, Bangle.MESSAGES);
|
|
} else if (msg.t === "modify" || type === "call") {
|
|
Bangle.MESSAGES = Bangle.MESSAGES.filter(m => m.id != msg.id); // remove old version of message
|
|
Bangle.MESSAGES.unshift(msg); // put modified message at start of list
|
|
}
|
|
if (msg.t === "remove") {
|
|
Bangle.MESSAGES = Bangle.MESSAGES.filter(m => m.id != msg.id);
|
|
require("messages").write(Bangle.MESSAGES); // write removal to flash
|
|
}
|
|
}
|
|
|
|
exports.messageListener = function(type, msg) {
|
|
let inApp = false;
|
|
if (msg.handled) return;
|
|
if (global.__FILE__ === "messagecenter.app.js") inApp = true;
|
|
exports.handleMessage(type, msg);
|
|
if (!inApp) {
|
|
if (loadWillReset()) require("messages").write(Bangle.MESSAGES);
|
|
if (msg.t !== "remove") Bangle.load("messagecenter.notify.js"); // don't load app if we are just removing a message
|
|
} else { // in app
|
|
Bangle.emit("breakingnews", type, msg);
|
|
}
|
|
}; // messageListener
|
|
|
|
exports.open = function(_msg) {
|
|
Bangle.load("messagecenter.app.js");
|
|
};
|
|
};
|