mirror of https://github.com/espruino/BangleApps
messages: Add `getMessages` and `status` functions to library
Apps/widgets should use the library instead of opening "messages.json" For #2081pull/2082/head
parent
f3f8313442
commit
143bbf858d
|
@ -63,3 +63,4 @@
|
|||
0.47: Add new Icons (Nextbike, Mattermost, etc.)
|
||||
0.48: When getting new message from the clock, only buzz once the messages app is loaded
|
||||
0.49: Change messages icon (to fit within 24px) and ensure widget renders icons centrally
|
||||
0.50: Add `getMessages` and `status` functions to library
|
|
@ -48,7 +48,7 @@ we should start a timeout for settings.unreadTimeout to return
|
|||
to the clock. */
|
||||
var unreadTimeout;
|
||||
/// List of all our messages
|
||||
var MESSAGES = require("Storage").readJSON("messages.json",1)||[];
|
||||
var MESSAGES = require("messages").getMessages();
|
||||
if (!Array.isArray(MESSAGES)) MESSAGES=[];
|
||||
var onMessagesModified = function(msg) {
|
||||
// TODO: if new, show this new one
|
||||
|
|
|
@ -102,6 +102,32 @@ exports.clearAll = function(event) {
|
|||
WIDGETS.messages.update(messages);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {array} All messages
|
||||
*/
|
||||
exports.getMessages = function() {
|
||||
if ("undefined"!=typeof MESSAGES) return MESSAGES; // loaded/managed by app
|
||||
return require("Storage").readJSON("messages.json",1)||[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if there are any messages
|
||||
* @returns {string} "new"/"old"/"none"
|
||||
*/
|
||||
exports.status = function() {
|
||||
try {
|
||||
let status= "none";
|
||||
for(const m of exports.getMessages()) {
|
||||
if (["music", "map"].includes(m.id)) continue;
|
||||
if (m.new) return "new";
|
||||
status = "old";
|
||||
}
|
||||
return status;
|
||||
} catch(e) {
|
||||
return "none"; // don't bother e.g. the widget with errors
|
||||
}
|
||||
};
|
||||
|
||||
exports.getMessageImage = function(msg) {
|
||||
/*
|
||||
* icons should be 24x24px or less with 1bpp colors and 'Transparency to Color'
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "messages",
|
||||
"name": "Messages",
|
||||
"version": "0.49",
|
||||
"version": "0.50",
|
||||
"description": "App to display notifications from iOS and Gadgetbridge/Android",
|
||||
"icon": "app.png",
|
||||
"type": "app",
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
(() => {
|
||||
|
||||
function getMessages() {
|
||||
if ("undefined"!=typeof MESSAGES) return MESSAGES;
|
||||
return require("Storage").readJSON("messages.json",1)||[];
|
||||
}
|
||||
|
||||
function filterMessages(msgs) {
|
||||
return msgs.filter(msg => msg.new && msg.id != "music")
|
||||
.map(m => m.src) // we only need this for icon/color
|
||||
|
@ -82,6 +77,5 @@ WIDGETS["messages"]={area:"tl", width:0, draw:function(recall) {
|
|||
message but then the watch was never viewed. In that case we don't
|
||||
want to buzz but should still show that there are unread messages. */
|
||||
if (global.MESSAGES===undefined)
|
||||
WIDGETS["messages"].update(getMessages(), true);
|
||||
|
||||
WIDGETS["messages"].update(require("messages").getMessages(), true);
|
||||
})();
|
||||
|
|
Loading…
Reference in New Issue