Update app.js
parent
283541fa1d
commit
ff574897dd
|
|
@ -1,3 +1,9 @@
|
|||
var settings = Object.assign({
|
||||
// default values
|
||||
showWidgets: false,
|
||||
alternativeColor: false,
|
||||
}, require('Storage').readJSON("ashadyclock.json", true) || {});
|
||||
|
||||
let drawTimeout;
|
||||
// schedule a draw for the next minute
|
||||
function queueDraw() {
|
||||
|
|
@ -8,18 +14,20 @@ function queueDraw() {
|
|||
}, 60000 - (Date.now() % 60000));
|
||||
}
|
||||
|
||||
let images = new Array(10);
|
||||
for (i=0;i<10;i++) {
|
||||
let image =
|
||||
{
|
||||
width : 98, height : 100, bpp : 3,
|
||||
transparent: 4,
|
||||
buffer : require("Storage").read("ashadyclock." + i + ".bin")
|
||||
};
|
||||
images[i] = image;
|
||||
}
|
||||
|
||||
let palBottom = new Uint16Array(E.toArrayBuffer(E.toFlatString(new Uint16Array([
|
||||
let palBottom;
|
||||
if (settings.alternativeColor) {
|
||||
palBottom = new Uint16Array(E.toArrayBuffer(E.toFlatString(new Uint16Array([
|
||||
g.toColor("#000"),
|
||||
g.toColor("#000"),
|
||||
g.toColor("#0FF"),
|
||||
g.toColor("#0FF"),
|
||||
g.toColor("#00F"),
|
||||
g.toColor("#000"),
|
||||
g.toColor("#00F"),
|
||||
g.toColor("#000")
|
||||
]).buffer)));
|
||||
} else {
|
||||
palBottom = new Uint16Array(E.toArrayBuffer(E.toFlatString(new Uint16Array([
|
||||
g.toColor("#000"),
|
||||
g.toColor("#000"),
|
||||
g.toColor("#F00"),
|
||||
|
|
@ -29,6 +37,7 @@ let palBottom = new Uint16Array(E.toArrayBuffer(E.toFlatString(new Uint16Array(
|
|||
g.toColor("#FF0"),
|
||||
g.toColor("#000")
|
||||
]).buffer)));
|
||||
}
|
||||
|
||||
let palTop = new Uint16Array(E.toArrayBuffer(E.toFlatString(new Uint16Array([
|
||||
g.toColor("#FFF"),
|
||||
|
|
@ -41,41 +50,57 @@ let palTop = new Uint16Array(E.toArrayBuffer(E.toFlatString(new Uint16Array([
|
|||
g.toColor("#000"),
|
||||
]).buffer)));
|
||||
|
||||
let xOffset = (g.getWidth() - 176) / 2;
|
||||
let yOffset = (g.getHeight() - 176) / 2;
|
||||
|
||||
function drawTop(d0, d1) {
|
||||
if (settings.showWidgets && g.getHeight()<=176) {
|
||||
drawNumber(d0, 82 + xOffset, 24 + yOffset, palTop, {scale: 0.825});
|
||||
drawNumber(d1, 13 + xOffset, 24 + yOffset, palTop, {scale: 0.825});
|
||||
} else {
|
||||
drawNumber(d0, 80, 0, palTop);
|
||||
drawNumber(d1, -1, 0, palTop);
|
||||
}
|
||||
}
|
||||
|
||||
function drawBottom(d0, d1) {
|
||||
if (settings.showWidgets && g.getHeight()<=176) {
|
||||
drawNumber(d1, 82 + xOffset, 92 + yOffset, palBottom, {scale: 0.825});
|
||||
drawNumber(d0, 13 + xOffset, 92 + yOffset, palBottom, {scale: 0.825});
|
||||
} else {
|
||||
drawNumber(d1, 80, 75, palBottom);
|
||||
drawNumber(d0, -1, 75, palBottom);
|
||||
}
|
||||
}
|
||||
|
||||
function drawNumber(number, x, y, palette, options) {
|
||||
let image =
|
||||
{
|
||||
width : 98, height : 100, bpp : 3,
|
||||
transparent: 4,
|
||||
buffer : require("Storage").read("ashadyclock." + number +".bin")
|
||||
};
|
||||
image.palette = palette;
|
||||
g.drawImage(image, x, y, options);
|
||||
}
|
||||
|
||||
function draw() {
|
||||
|
||||
// work out how to display the current time
|
||||
let d = new Date();
|
||||
|
||||
g.setColor(0,0,0);
|
||||
g.fillRect(0,0,g.getWidth(),g.getHeight());
|
||||
|
||||
let xOffset = (g.getWidth() - 176) / 2;
|
||||
let yOffset = (g.getWidth() - 176) / 2;
|
||||
|
||||
let imgUR = images[d.getMinutes() % 10];
|
||||
let imgUL = images[Math.floor(d.getMinutes()/10)];
|
||||
imgUR.palette = palBottom;
|
||||
imgUL.palette = palBottom;
|
||||
g.drawImage(imgUR, 75 + xOffset, 77 + yOffset);
|
||||
g.drawImage(imgUL, 0 + xOffset, 77 + yOffset);
|
||||
|
||||
let imgOR = images[d.getHours() % 10];
|
||||
let imgOL = images[Math.floor(d.getHours()/10)];
|
||||
imgOR.palette = palTop;
|
||||
imgOL.palette = palTop;
|
||||
g.drawImage(imgOR, 75 + xOffset, 0 + yOffset);
|
||||
g.drawImage(imgOL, 0 + xOffset, 0 + yOffset);
|
||||
g.clearRect(0, settings.showWidgets ? 24 : 0, g.getWidth(),g.getHeight());
|
||||
drawBottom(0, 5);
|
||||
drawTop(0, 5);
|
||||
|
||||
queueDraw();
|
||||
}
|
||||
|
||||
// Clear the screen once, at startup
|
||||
g.clear();
|
||||
// draw immediately at first
|
||||
draw();
|
||||
|
||||
// Show launcher when middle button pressed
|
||||
Bangle.setUI("clock");
|
||||
// Load widgets
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
|
||||
if(settings.showWidgets) {
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue