hcclock: Use `messages` library to check for new messages

Instead of opening "messages.json" directly
For #2081
master
Richard de Boer 2022-08-09 16:00:09 +02:00
parent f088fed7fe
commit b93e2dd913
No known key found for this signature in database
3 changed files with 13 additions and 20 deletions

View File

@ -1,3 +1,4 @@
0.01: Base code 0.01: Base code
0.02: Saved settings when switching color scheme 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

View File

@ -228,27 +228,18 @@ function flipColors()
// MESSAGE HANDLING() // MESSAGE HANDLING()
// //
let messages_installed = require("Storage").read("messages.app.js") != undefined; let messages_installed = require("Storage").list(/^messages$/).length > 0;
function handleMessages() function handleMessages()
{ {
if(messages_installed && hasMessages() > 0) if(!hasMessages()) return;
{
E.showMessage("Loading Messages..."); E.showMessage("Loading Messages...");
load("messages.app.js"); load("messages.app.js");
} }
}
function hasMessages() function hasMessages()
{ {
if(!messages_installed) return messages_installed && require("messages").status() === 'new';
return false;
var messages = require("Storage").readJSON("messages.json",1)||[];
if (messages.some(m=>m.new))
return true;
else
return false;
} }
let msg = atob("GBiBAAAAAAAAAAAAAAAAAAAAAB//+DAADDAADDAADDwAPD8A/DOBzDDn/DA//DAHvDAPvjAPvjAPvjAPvh///gf/vAAD+AAB8AAAAA=="); let msg = atob("GBiBAAAAAAAAAAAAAAAAAAAAAB//+DAADDAADDAADDwAPD8A/DOBzDDn/DA//DAHvDAPvjAPvjAPvjAPvh///gf/vAAD+AAB8AAAAA==");
@ -256,20 +247,21 @@ let had_messages = false;
function drawMessages() 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.setColor(255,255,255);
g.drawImage(msg, 184, 212); g.drawImage(msg, 184, 212);
g.setFont("6x8", 2); g.setFont("6x8", 2);
g.setFontAlign(0, -1, 0); g.setFontAlign(0, -1, 0);
g.drawString(">", 224, 216); g.drawString(">", 224, 216);
had_messages = true;
} }
else if (had_messages && !hasMessages()) else
{ {
g.setColor(0,0,0); g.setColor(0,0,0);
g.fillRect(180, 210, 240, 240); g.fillRect(180, 210, 240, 240);
had_messages = false;
} }
had_messages = has_messages;
} }
////////////////////////////////////////// //////////////////////////////////////////

View File

@ -1,7 +1,7 @@
{ {
"id": "hcclock", "id": "hcclock",
"name": "Hi-Contrast Clock", "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.", "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", "icon": "hcclock-icon.png",
"type": "clock", "type": "clock",