forked from FOSS/BangleApps
63 lines
2.1 KiB
JavaScript
63 lines
2.1 KiB
JavaScript
// 68k Mac Finder desktop themed clock
|
|
// by Giles Booth @blogmywiki
|
|
// improvements by Peer David
|
|
|
|
var img = require("heatshrink").decompress(atob("2GwgP4C6cf8AVTg/ACqcDwADBDCMBCoICCCqACEj8zAwXwmcYgEGswYHhxwBjEDGocwCoVgQxHwCoMzjwVBwPzngrCnlmDAsfNoIVBIQMBwZBEAAIVIjwVD8YVNIIc/FY9+CpcwCo9gCo0PQYUzmIVGo1is1ACokGNoaDC+PzhkAg+Gnl/aiIA/AD//AClVACmqACgr/Fd2vVqP+FYNUbKMNFYOsCqMOFa+t/f/35LC/AODK43uFYUCgGACAUB/IFDFZP6gArEsArTgFhz9w+ArRsOZzOYFaQVCFan4FaiFHFZuIFaeYQZbbVf5LbK1gVRhwrX15MGABX+K/4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Ff4r/Fe+v/4AQ/wrBq4VR/orBAClVACgr/Ff4r/AAmr6or/q/6Fae/A="));
|
|
|
|
var font = atob("f3/gMB/7+AAAACA///AAAAAAQcHhsZ+LhAAAgUhsPh38eAAADAoJCI///BAA8XhkMhn8eAAAPz/0Mhn4eAAAgEAh8f+HgAAAb3/kMh/7eAAAeH5hML/z8AAAAAADYbAAAAAA");
|
|
|
|
var drawTimeout;
|
|
|
|
// schedule a draw for the next minute
|
|
function queueDraw() {
|
|
if (drawTimeout) clearTimeout(drawTimeout);
|
|
drawTimeout = setTimeout(function() {
|
|
drawTimeout = undefined;
|
|
draw();
|
|
}, 60000 - (Date.now() % 60000));
|
|
}
|
|
|
|
|
|
function draw() {
|
|
queueDraw();
|
|
|
|
// Fix theme to "light"
|
|
g.setTheme({bg:"#fff", fg:"#000", dark:false}).clear();
|
|
g.reset();
|
|
g.drawImage(img,0,0);
|
|
|
|
g.setFontCustom(font, 48, 8, 1033);
|
|
g.setFontAlign(0, -1, 0);
|
|
g.setColor(0,0,0);
|
|
var d = new Date();
|
|
var dt = require("locale").time(d, 1);
|
|
var hh = dt.split(":")[0];
|
|
var mm = dt.split(":")[1];
|
|
g.drawString(hh, 52, 65, true);
|
|
g.drawString(mm, 132, 65, true);
|
|
g.drawString(':', 93,65);
|
|
const dd = ("0"+(new Date()).getDate()).substr(-2);
|
|
const mo = ("0"+((new Date()).getMonth()+1)).substr(-2);
|
|
const yy = ("0"+((new Date()).getFullYear())).substr(-2);
|
|
g.setFontCustom(font, 48, 8, 521);
|
|
g.drawString(dd + ':' + mo + ':' + yy, 88, 120, true);
|
|
}
|
|
|
|
|
|
// handle switch display on by pressing BTN1
|
|
Bangle.on('lcdPower',on=>{
|
|
if (on) {
|
|
draw(); // draw immediately, queue redraw
|
|
} else { // stop draw timer
|
|
if (drawTimeout) clearTimeout(drawTimeout);
|
|
drawTimeout = undefined;
|
|
}
|
|
});
|
|
|
|
Bangle.setUI("clock");
|
|
|
|
// Load widgets but hide them
|
|
Bangle.loadWidgets();
|
|
require("widget_utils").swipeOn(); // hide widgets, make them visible with a swipe
|
|
draw();
|