BangleApps/apps/binaryclk/app.js

50 lines
1.2 KiB
JavaScript
Raw Normal View History

2024-01-17 18:26:28 +00:00
var settings = require('Storage').readJSON("binaryclk.json", true) || {};
var full = settings.fullscreen || false;
delete settings;
2023-12-08 16:05:57 +00:00
function draw() {
2023-12-08 18:09:42 +00:00
var dt = new Date();
2023-12-08 18:19:18 +00:00
var h = dt.getHours(), m = dt.getMinutes();
const t = [];
t[0] = Math.floor(h/10);
t[1] = Math.floor(h%10);
t[2] = Math.floor(m/10);
t[3] = Math.floor(m%10);
2023-12-08 16:05:57 +00:00
2023-12-08 18:19:18 +00:00
g.reset();
g.clearRect(Bangle.appRect);
2023-12-08 16:05:57 +00:00
2023-12-08 18:19:18 +00:00
let i = 0;
2024-01-17 18:26:28 +00:00
if (full) {
const gap = 12;
const mgn = 0;
} else {
const gap = 8;
const mgn = 20;
}
2023-12-08 18:19:18 +00:00
const sq = 29;
const pos = sq + gap;
2023-12-08 16:05:57 +00:00
2023-12-08 18:19:18 +00:00
for (let r = 3; r >= 0; r--) {
for (let c = 0; c < 4; c++) {
if (t[c] & Math.pow(2, r)) {
g.fillRect(mgn/2 + gap + c * pos, mgn + gap + i * pos, mgn/2 + gap + c * pos + sq, mgn + gap + i * pos + sq);
} else {
g.drawRect(mgn/2 + gap + c * pos, mgn + gap + i * pos, mgn/2 + gap + c * pos + sq, mgn + gap + i * pos + sq);
}
}
i++;
}
2024-01-17 18:26:28 +00:00
g.clearRect(mgn/2 + gap, mgn + gap, mgn/2 + gap + sq, mgn + 2 * gap + 2 * sq);
g.clearRect(mgn/2 + 3 * gap + 2 * sq, mgn + gap, mgn/2 + 3 * gap + 3 * sq, mgn + gap + sq);
2023-12-08 16:05:57 +00:00
}
g.clear();
draw();
var secondInterval = setInterval(draw, 60000);
Bangle.setUI("clock");
2024-01-17 18:26:28 +00:00
if (!full) {
Bangle.loadWidgets();
Bangle.drawWidgets();
}