Merge pull request #2082 from rigrig/messages-load-function
Add `getMessages` and `status` to `messages` library, use in appsmaster
commit
3e09813143
|
|
@ -269,7 +269,7 @@ function actions(v){
|
|||
}
|
||||
|
||||
// Get Messages status
|
||||
var messages = require("Storage").readJSON("messages.json",1)||[];
|
||||
var messages_installed = require("Storage").list(/^messages$/).length > 0;
|
||||
|
||||
//var BTconnected = NRF.getSecurityStatus().connected;
|
||||
//NRF.on('connect',BTconnected = NRF.getSecurityStatus().connected);
|
||||
|
|
@ -318,7 +318,7 @@ function drawWidgeds() {
|
|||
var x2M = x1M + 25;
|
||||
var y2M = y2B;
|
||||
|
||||
if (messages.some(m=>m.new)) {
|
||||
if (messages_installed && require("messages").status() == "new") {
|
||||
g.setColor(g.theme.fg);
|
||||
g.fillRect(x1M,y1M,x2M,y2M);
|
||||
g.setColor(g.theme.bg);
|
||||
|
|
|
|||
|
|
@ -1,2 +1,3 @@
|
|||
0.01: Initial version for upload
|
||||
0.02: better theme support, configurable colors, small improvements
|
||||
0.02: Better theme support, configurable colors, small improvements
|
||||
0.03: Use `messages` library to check for new messages
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{ "id": "7x7dotsclock",
|
||||
"name": "7x7 Dots Clock",
|
||||
"shortName":"7x7 Dots Clock",
|
||||
"version":"0.02",
|
||||
"version":"0.03",
|
||||
"description": "A clock with a big 7x7 dots Font",
|
||||
"icon": "dotsfontclock.png",
|
||||
"tags": "clock",
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
0.01: Base code
|
||||
0.02: Saved settings when switching color scheme
|
||||
0.03: Added Button 3 opening messages (if app is installed)
|
||||
0.03: Added Button 3 opening messages (if app is installed)
|
||||
0.04: Use `messages` library to check for new messages
|
||||
|
|
@ -228,27 +228,18 @@ function flipColors()
|
|||
// MESSAGE HANDLING()
|
||||
//
|
||||
|
||||
let messages_installed = require("Storage").read("messages.app.js") != undefined;
|
||||
let messages_installed = require("Storage").list(/^messages$/).length > 0;
|
||||
|
||||
function handleMessages()
|
||||
{
|
||||
if(messages_installed && hasMessages() > 0)
|
||||
{
|
||||
E.showMessage("Loading Messages...");
|
||||
load("messages.app.js");
|
||||
}
|
||||
if(!hasMessages()) return;
|
||||
E.showMessage("Loading Messages...");
|
||||
load("messages.app.js");
|
||||
}
|
||||
|
||||
function hasMessages()
|
||||
{
|
||||
if(!messages_installed)
|
||||
return false;
|
||||
|
||||
var messages = require("Storage").readJSON("messages.json",1)||[];
|
||||
if (messages.some(m=>m.new))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
return messages_installed && require("messages").status() === 'new';
|
||||
}
|
||||
|
||||
let msg = atob("GBiBAAAAAAAAAAAAAAAAAAAAAB//+DAADDAADDAADDwAPD8A/DOBzDDn/DA//DAHvDAPvjAPvjAPvjAPvh///gf/vAAD+AAB8AAAAA==");
|
||||
|
|
@ -256,20 +247,21 @@ let had_messages = false;
|
|||
|
||||
function drawMessages()
|
||||
{
|
||||
if(!had_messages && hasMessages()) {
|
||||
const has_messages = hasMessages();
|
||||
if(has_messages === had_messages) return;
|
||||
if(has_messages) {
|
||||
g.setColor(255,255,255);
|
||||
g.drawImage(msg, 184, 212);
|
||||
g.setFont("6x8", 2);
|
||||
g.setFontAlign(0, -1, 0);
|
||||
g.drawString(">", 224, 216);
|
||||
had_messages = true;
|
||||
}
|
||||
else if (had_messages && !hasMessages())
|
||||
else
|
||||
{
|
||||
g.setColor(0,0,0);
|
||||
g.fillRect(180, 210, 240, 240);
|
||||
had_messages = false;
|
||||
}
|
||||
had_messages = has_messages;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "hcclock",
|
||||
"name": "Hi-Contrast Clock",
|
||||
"version": "0.03",
|
||||
"version": "0.04",
|
||||
"description": "Hi-Contrast Clock : A simple yet very bold clock that aims to be readable in high luninosity environments. Uses big 10x5 pixel digits. Use BTN 1 to switch background and foreground colors.",
|
||||
"icon": "hcclock-icon.png",
|
||||
"type": "clock",
|
||||
|
|
|
|||
|
|
@ -63,4 +63,5 @@
|
|||
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: Option to disable auto-open of messages
|
||||
0.50: Add `getMessages` and `status` functions to library
|
||||
Option to disable auto-open of messages
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -100,6 +100,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,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