BangleApps/apps/lunaclock/app.js

72 lines
18 KiB
JavaScript
Raw Normal View History

2023-07-27 19:51:03 +00:00
var MYIMG = {
width : 176, height : 176, bpp : 4,
buffer : require("heatshrink").decompress(atob("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
};
//var IMAGEWIDTH = 176;
//var IMAGEHEIGHT = 109;
2024-03-04 20:34:50 +00:00
//var IMAGEWIDTH = 176;
2023-07-27 19:51:03 +00:00
var IMAGEHEIGHT = 176;
Graphics.prototype.setFontcustom = function() {
// Actual height 58 (57 - 0)
return this.setFontCustom(
E.toString(require('heatshrink').decompress(atob('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
32,
atob("EA4RPC4uLQoZGhwaDxkOKCodHx4pLCMdHCMODx4mHyE0LSgrKiAfLCsZJDImPy4rJC8yHiYoLkEyLiQUFBM="),
58|65536
);
};
// timeout used to update every minute
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() {
//clock pos
var x = g.getWidth()/2;
var y = 105;
g.setColor("#000000"); //color of clock text
//draw clock
g.drawImage(MYIMG,0,g.getHeight()-IMAGEHEIGHT, 1);
//get time/date
var date = new Date();
var timeStr = require("locale").time(date,1);
var dateStr = require("locale").date(date).toUpperCase();
var dowStr = require("locale").dow(date).toUpperCase();
// draw time
g.setFontAlign(0,0).setFont("custom");
g.drawString(timeStr,x,y);
// draw date
g.setColor(1,1,1);
var dateFormatted = dowStr + ", " + dateStr;
g.setFont("6x8");
g.drawString(dateFormatted,g.getWidth()/2,g.getHeight() - 8);
Bangle.drawWidgets();
// queue draw in one minute
queueDraw();
}
g.setTheme({bg:"#000",fg:"#fff",dark:true}).clear();
draw();
Bangle.on('lcdPower',on=>{
if (on) {
draw();
} else {
if (drawTimeout) clearTimeout(drawTimeout);
drawTimeout = undefined;
}
});
Bangle.setUI("clock");
Bangle.loadWidgets();
Bangle.drawWidgets();