mirror of https://github.com/espruino/BangleApps
Added Support for messages
parent
d9d5926416
commit
63850e74b3
|
@ -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",
|
||||||
|
|
|
@ -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)
|
|
@ -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
|
||||||
|
|
|
@ -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(); });
|
||||||
|
|
Loading…
Reference in New Issue