Added Support for messages

pull/1161/head
Thomas ICHÉ 2021-12-22 08:48:07 +01:00
parent d9d5926416
commit 63850e74b3
4 changed files with 56 additions and 3 deletions

View File

@ -4064,7 +4064,7 @@
{ {
"id": "hcclock", "id": "hcclock",
"name": "Hi-Contrast Clock", "name": "Hi-Contrast Clock",
"version": "0.02", "version": "0.03",
"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",

View File

@ -1,2 +1,3 @@
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)

View File

@ -5,6 +5,7 @@ A High-contrast, black-on-white or white-on-black clock displaying huge pixel di
## Usage ## Usage
* BTN 1 switches between the two modes : black-on-white or white-on-black * BTN 1 switches between the two modes : black-on-white or white-on-black
* BTN 3 opens the messages (if installed, and there are new messages)
* That's it! * That's it!
## Issues and Requests ## Issues and Requests

View File

@ -129,6 +129,7 @@ function updateTime()
g.setFontAlign(0, -1, 0); g.setFontAlign(0, -1, 0);
g.drawString(fmtDate(d,mo,y,hour), 120, 120); g.drawString(fmtDate(d,mo,y,hour), 120, 120);
} }
drawMessages();
} }
function drawDigits(x, value) function drawDigits(x, value)
@ -222,6 +223,55 @@ function flipColors()
setColorScheme(0); setColorScheme(0);
} }
//////////////////////////////////////////
//
// MESSAGE HANDLING()
//
let messages_installed = require("Storage").read("messages.app.js") != undefined;
function handleMessages()
{
if(messages_installed && hasMessages() > 0)
{
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;
}
let msg = atob("GBiBAAAAAAAAAAAAAAAAAAAAAB//+DAADDAADDAADDwAPD8A/DOBzDDn/DA//DAHvDAPvjAPvjAPvjAPvh///gf/vAAD+AAB8AAAAA==");
let had_messages = false;
function drawMessages()
{
if(!had_messages && hasMessages()) {
g.setColor(255,255,255);
g.drawImage(msg, 200, 206);
g.setFont("6x8", 2);
g.setFontAlign(0, -1, 0);
g.drawString(">", 224, 210);
had_messages = true;
}
else if (had_messages && !hasMessages())
{
g.setColor(255,0,0);
g.fillRect(200, 200, 240, 240);
had_messages = false;
}
}
////////////////////////////////////////// //////////////////////////////////////////
// //
// MAIN FUNCTION() // MAIN FUNCTION()
@ -238,6 +288,7 @@ setInterval(updateTime, interval);
// Handle Button Press // Handle Button Press
setWatch(flipColors, BTN1, true); setWatch(flipColors, BTN1, true);
setWatch(Bangle.showLauncher, BTN2, false); setWatch(Bangle.showLauncher, BTN2, false);
setWatch(handleMessages, BTN3, true);
// Handle redraw on LCD on / fullscreen notifications dismissed // Handle redraw on LCD on / fullscreen notifications dismissed
Bangle.on('lcdPower', (on) => { if(on) redraw(); }); Bangle.on('lcdPower', (on) => { if(on) redraw(); });