Added settings to hide unused squares and show date

pull/3210/head
shansou504 2024-02-26 01:31:11 -05:00
parent c06296b1cd
commit ca22b24590
5 changed files with 52 additions and 12 deletions

View File

@ -1,3 +1,4 @@
0.01: Added app 0.01: Added app
0.02: Removed unneeded squares 0.02: Removed unneeded squares
0.03: Added settings with fullscreen option 0.03: Added setting for fullscreen option
0.04: Added settings to hide unused squares and show date

View File

@ -1,11 +1,15 @@
var settings = Object.assign({ var settingsclk = Object.assign({
fullscreen: false, fullscreen: false,
hidesq: false,
showdate: false,
}, require('Storage').readJSON("binaryclk.json", true) || {}); }, require('Storage').readJSON("binaryclk.json", true) || {});
function draw() { function draw() {
var dt = new Date(); var dt = new Date();
var h = dt.getHours(), m = dt.getMinutes(); var h = dt.getHours(), m = dt.getMinutes(), d = dt.getDate();
const t = []; const t = [];
t[0] = Math.floor(h/10); t[0] = Math.floor(h/10);
t[1] = Math.floor(h%10); t[1] = Math.floor(h%10);
t[2] = Math.floor(m/10); t[2] = Math.floor(m/10);
@ -17,32 +21,51 @@ function draw() {
let i = 0; let i = 0;
var gap = 8; var gap = 8;
var mgn = 20; var mgn = 20;
if (settings.fullscreen) {
if (settingsclk.fullscreen) {
gap = 12; gap = 12;
mgn = 0; mgn = 0;
} }
const sq = 29; const sq = 29;
var pos = sq + gap; var pos = sq + gap;
for (let r = 3; r >= 0; r--) { for (let r = 3; r >= 0; r--) {
for (let c = 0; c < 4; c++) { for (let c = 0; c < 4; c++) {
if (t[c] & Math.pow(2, r)) { 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); g.fillRect(Math.floor(mgn/2) + gap + c * pos, mgn + gap + i * pos, Math.floor(mgn/2) + gap + c * pos + sq, mgn + gap + i * pos + sq);
} else { } else {
g.drawRect(mgn/2 + gap + c * pos, mgn + gap + i * pos, mgn/2 + gap + c * pos + sq, mgn + gap + i * pos + sq); g.drawRect(Math.floor(mgn/2) + gap + c * pos, mgn + gap + i * pos, Math.floor(mgn/2) + gap + c * pos + sq, mgn + gap + i * pos + sq);
} }
} }
i++; i++;
} }
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); var c1sqhide = 0;
var c3sqhide = 0;
if (settingsclk.hidesq) {
c1sqhide = 2;
c3sqhide = 1;
}
if (settingsclk.hidesq) {
g.clearRect(Math.floor(mgn/2), mgn, Math.floor(mgn/2) + pos, mgn + c1sqhide * pos);
g.clearRect(Math.floor(mgn/2) + 2 * pos + gap, mgn, Math.floor(mgn/2) + 3 * pos, mgn + c3sqhide * pos);
}
if (settingsclk.showdate) {
g.setFontAlign(0, 0);
g.setFont("Vector",20);
g.drawRect(Math.floor(mgn/2) + gap, mgn + gap, Math.floor(mgn/2) + gap + sq, mgn + gap + sq);
g.drawString(d, Math.ceil(mgn/2) + gap + Math.ceil(sq/2) + 1, mgn + gap + Math.ceil(sq/2) + 1);
}
} }
g.clear(); g.clear();
draw(); draw();
var secondInterval = setInterval(draw, 60000); var secondInterval = setInterval(draw, 60000);
Bangle.setUI("clock"); Bangle.setUI("clock");
if (!settings.fullscreen) { if (!settingsclk.fullscreen) {
Bangle.loadWidgets(); Bangle.loadWidgets();
Bangle.drawWidgets(); Bangle.drawWidgets();
} }

View File

@ -1,8 +1,8 @@
{ {
"id": "binaryclk", "id": "binaryclk",
"name": "Bin Clock", "name": "Bin Clock",
"version": "0.03", "version": "0.04",
"description": "Clock face to show binary time in 24 hr format", "description": "Clock face to show binary time",
"icon": "app-icon.png", "icon": "app-icon.png",
"screenshots": [{"url":"screenshot.png"}], "screenshots": [{"url":"screenshot.png"}],
"type": "clock", "type": "clock",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -2,6 +2,8 @@
var FILE = "binaryclk.json"; var FILE = "binaryclk.json";
var settings = Object.assign({ var settings = Object.assign({
fullscreen: false, fullscreen: false,
hidesq: false,
showdate: false,
}, require('Storage').readJSON(FILE, true) || {}); }, require('Storage').readJSON(FILE, true) || {});
function writeSettings() { function writeSettings() {
@ -16,7 +18,21 @@
onchange: v => { onchange: v => {
settings.fullscreen = v; settings.fullscreen = v;
writeSettings(); writeSettings();
} },
},
'Hide Squares': {
value: settings.hidesq,
onchange: v => {
settings.hidesq = v;
writeSettings();
},
},
'Show Date': {
value: settings.showdate,
onchange: v => {
settings.showdate = v;
writeSettings();
},
}, },
}); });
}) })