forked from FOSS/BangleApps
61 lines
5.7 KiB
JavaScript
61 lines
5.7 KiB
JavaScript
const h = g.getHeight();
|
|
const w = g.getWidth();
|
|
|
|
// from fonts.google.com
|
|
Graphics.prototype.setFontLato = function(scale) {
|
|
// Actual height 50 (53 - 4)
|
|
this.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAP4AAAAAAAAD/gAAAAAAAAf8AAAAAAAAD/gAAAAAAAAP4AAAAAAAAB/AAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAfAAAAAAAAAf4AAAAAAAAP/AAAAAAAAP/wAAAAAAAH/4AAAAAAAH/8AAAAAAAH/8AAAAAAAD/+AAAAAAAD/+AAAAAAAB//AAAAAAAB//AAAAAAAA//gAAAAAAA//gAAAAAAAf/gAAAAAAAf/wAAAAAAAP/wAAAAAAAP/4AAAAAAAH/4AAAAAAAB/8AAAAAAAAf8AAAAAAAAD+AAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAf///gAAAAAf////gAAAAH/////AAAAD/////8AAAA//////wAAAP/4AB//AAAD/wAAA/8AAA/wAAAA/wAAH8AAAAD+AAB/AAAAAP4AAPwAAAAA/AAB8AAAAAD4AAPgAAAAAfAAD8AAAAAD8AAfgAAAAAfgAD8AAAAAD8AAfgAAAAAfgAD8AAAAAD8AAPgAAAAAfAAB+AAAAAH4AAPwAAAAA/AAA/AAAAAPwAAH+AAAAH+AAAf8AAAB/gAAD/4AAB/8AAAP//gf//AAAA//////wAAAB/////4AAAAH////+AAAAAP////AAAAAAP///AAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADgAAAAAAAAA+AAAAAAAAAPwAAAD4AAAD+AAAAfAAAA/gAAAD4AAAP4AAAAfAAAD+AAAAD4AAA/wAAAAfAAAH8AAAAD4AAB/AAAAAfAAAfwAAAAD4AAH8AAAAAfAAB///////4AAP///////AAB///////4AAP///////AAB///////4AAP///////AAAAAAAAAD4AAAAAAAAAfAAAAAAAAAD4AAAAAAAAAfAAAAAAAAAD4AAAAAAAAAfAAAAAAAAAD4AAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAHAAAAD4AAAH4AAAA/AAAB/AAAAP4AAA/4AAAD/AAAP/AAAA/4AAD/4AAAP/AAAf4AAAD/4AAH8AAAA//AAA/AAAAP74AAPwAAAD+fAAB+AAAA/n4AAPgAAAP4/AAD8AAAD+H4AAfgAAA/g/AAD8AAAP4H4AAfgAAD+A/AAD8AAA/gH4AAfgAAP4A/AAB8AAH+AH4AAPwAB/gA/AAB/AA/4AH4AAH8Af+AA/AAA////gAH4AAD///wAA/AAAP//8AAH4AAA///AAA/AAAD//gAAH4AAAH/wAAA/AAAAHwAAAD4AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAA8AAAAAPAAAP4AAAAP4AAB/gAAAD/AAAP/AAAA/4AAB/4AAAP/AAAD/gAAD/wAAAH+AAA/wAAAAfwAAH8AAAAB/AAB/AAAAAH4AAPwAAAAAfAAB8AAAAAD8AAPgADwAAfgAD8AAeAAD8AAfgADwAAfgAD8AAfAAD8AAfgAH4AAfgAD8AA/AAD8AAPgAH4AAfAAB+AB/gAH4AAPwAP8AA/AAB/AD/wAPwAAH+B+/AH+AAA///3+D/gAAD//8f//8AAAP//D///AAAA//wP//wAAAB/8A//8AAAAD8AB/+AAAAAAAAD+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAH4AAAAAAAAD/AAAAAAAAA/4AAAAAAAAP/AAAAAAAAH/4AAAAAAAB//AAAAAAAAf74AAAAAAAP+fAAAAAAAD/D4AAAAAAA/wfAAAAAAAf8D4AAAAAAH+AfAAAAAAD/gD4AAAAAA/4AfAAAAAAP8AD4AAAAAH/AAfAAAAAB/gAD4AAAAAf4AAfAAAAAP+AAD4AAAAD/AAAfAAAAA/wAAD4AAAAP///////AAB///////4AAP///////AAB///////4AAP///////AAB///////4AAAAAAAfAAAAAAAAAD4AAAAAAAAAfAAAAAAAAAD4AAAAAAAAAfAAAAAAAAAD4AAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAA4AAAAAAAAAPgAAAAB/AAD8AAAAH/4AAfwAAA///AAB+AAB///4AAP4AAP///AAA/AAB///4AAH4AAP/gfAAAfAAB+AHwAAD8AAPwA+AAAfgAB+AHwAAD8AAPwA+AAAfgAB+AHwAAD8AAPwA+AAAfgAB+AH4AAD4AAPwA/AAAfAAB+AH4AAH4AAPwAfgAB/AAB+AD8AAfwAAPwAf4AH+AAB+AB/gD/gAAPwAP///4AAB+AA///+AAAPgAD///gAAB8AAP//4AAAPAAAf/8AAAAAAAA/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/gAAAAAAAB//gAAAAAAA///AAAAAAAf//8AAAAAAH///4AAAAAD////AAAAAA//gf8AAAAAP/wAfwAAAAH/8AB+AAAAB//AAH4AAAA//wAA/AAAAP+8AAD4AAAD/ngAAfgAAB/58AAD8AAAf8PgAAfgAAH/B8AAD8AAD/wPgAAfgAA/8B8AAD8AAP+APgAAfAAB/gB8AAD4AAP4APwAA/AAB8AB+AAH4AAPAAH4AB+AABwAA/wA/wAAIAAD/gf8AAAAAAf///AAAAAAB///wAAAAAAH//8AAAAAAAf//AAAAAAAA//gAAAAAAAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAPgAAAAAAAAB+AAAAAAAAAPwAAAAAAAAB+AAAAAAAAAPwAAAAADAAB+AAAAAB4AAPwAAAAA/AAB+AAAAAf4AAPwAAAAP/AAB+AAAAH/4AAPwAAAD/+AAB+AAAB//AAAPwAAA//gAAB+AAAf/wAAAPwAAP/4AAAB+AAH/8AAAAPwAD/+AAAAB+AB//AAAAAPwA//gAAAAB+Af/gAAAAAPwP/wAAAAAB+H/4AAAAAAPz/8AAAAAAB//+AAAAAAAP//AAAAAAAB//gAAAAAAAP/wAAAAAAAB/4AAAAAAAAP8AAAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf8AAAAAHgAP/4AAAAH/gD//gAAAD//A///AAAA//8P//4AAAP//z///gAAD//+fwP+AAA/4f/4AfwAAH4A/+AB/AAB+AB/gAH4AAPgAH8AAfAAB8AA/AAD4AAfgAH4AAfgAD4AAfAAB8AAfAAD4AAPgAD4AAfAAB8AAfAAD4AAPgAD4AAfAAD8AAPgAH4AAfAAB8AA/gAD4AAPwAP8AA/AAA/AD/wAH4AAH8B//AB+AAAf//78A/wAAD//+f//8AAAP//h///gAAA//4P//4AAAB/+A//+AAAAD/AD//gAAAAAAAH/wAAAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAf/gAAAAAAAP/+AAAAAAAD//8AAAAAAA///wAAAAAAP///AAAAAAD///4AADAAA/wB/gAA4AAH8AD8AAPAAB/AAPwAH4AAPwAB+AB/AAB8AAHwAf4AAPgAA+AP/AAD8AAHwD/wAAfgAA+A/8AAD8AAHwf+AAAfgAA+H/gAAD8AAHx/wAAAPgAA8/8AAAB8AAPv/AAAAPwAB//gAAAB/AAf/4AAAAH8AH/8AAAAA/wD//AAAAAD////gAAAAAP///4AAAAAA///8AAAAAAD//+AAAAAAAH//AAAAAAAAP/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAHwAAAAB+AAB/AAAAAf4AAP4AAAAD/AAD/gAAAAf4AAf8AAAAD/AAB/AAAAAPwAAP4AAAAA8AAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), 46, atob("DRclJSUlJSUlJSUlEA=="), 63+(scale<<8)+(1<<16));
|
|
return this;
|
|
}
|
|
|
|
function draw() {
|
|
var date = new Date();
|
|
var timeStr = require("locale").time(date,1);
|
|
var dateStr = require("locale").date(date).toUpperCase();
|
|
|
|
g.reset();
|
|
g.setColor(g.theme.bg);
|
|
g.fillRect(Bangle.appRect);
|
|
|
|
g.setFontLato();
|
|
g.setFontAlign(0, -1);
|
|
g.setColor(g.theme.fg);
|
|
g.drawString(timeStr, w/2, h/3);
|
|
|
|
g.setFont("6x8",2);
|
|
g.setFontAlign(0,0)
|
|
g.drawString(dateStr, w/2, h - 24 - 24);
|
|
|
|
queueDraw();
|
|
}
|
|
|
|
// 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));
|
|
}
|
|
|
|
// Stop updates when LCD is off, restart when on
|
|
Bangle.on('lcdPower',on=>{
|
|
if (on) {
|
|
draw(); // draw immediately, queue redraw
|
|
} else { // stop draw timer
|
|
if (drawTimeout) clearTimeout(drawTimeout);
|
|
drawTimeout = undefined;
|
|
}
|
|
});
|
|
|
|
g.clear();
|
|
// Show launcher when middle button pressed
|
|
Bangle.setUI("clock");
|
|
// Load widgets
|
|
Bangle.loadWidgets();
|
|
Bangle.drawWidgets();
|
|
draw();
|