Skip to content

Commit b9fcb80

Browse files
authored
Merge pull request espruino#3265 from shansou504/master
binaryclk: added artwork to calendar and setting to show battery
2 parents 762cf6c + e0f747b commit b9fcb80

File tree

5 files changed

+65
-11
lines changed

5 files changed

+65
-11
lines changed

apps/binaryclk/ChangeLog

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,7 @@
33
0.03: Added setting for fullscreen option
44
0.04: Added settings to hide unused squares and show date
55
0.05: Minor code improvements
6+
0.06: Added setting to show battery and added artwork to date
7+
0.07: Removed percentage from battery and cleaned up logic
8+
0.08: Changed month to day and text color to black on date
9+
0.09: Changed day color back to white

apps/binaryclk/app.js

Lines changed: 51 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
var settings = Object.assign({
2-
fullscreen: false,
2+
fullscreen: true,
33
hidesq: false,
4-
showdate: false,
4+
showdate: true,
5+
showbat: true,
56
}, require('Storage').readJSON("binaryclk.json", true) || {});
67

78
function draw() {
89

10+
var cnt = 0;
911
var dt = new Date();
10-
var h = dt.getHours(), m = dt.getMinutes(), d = dt.getDate();
12+
var h = dt.getHours();
13+
var m = dt.getMinutes();
14+
var d = dt.getDate();
15+
var day = dt.toString().substring(0,3);
1116
const t = [];
1217

1318
t[0] = Math.floor(h/10);
@@ -19,15 +24,16 @@ function draw() {
1924
g.clearRect(Bangle.appRect);
2025

2126
let i = 0;
22-
var gap = 8;
23-
var mgn = 20;
27+
var gap = 4;
28+
var mgn = 24;
29+
var sq = 33;
2430

2531
if (settings.fullscreen) {
26-
gap = 12;
32+
gap = 8;
2733
mgn = 0;
34+
sq = 34;
2835
}
2936

30-
const sq = 29;
3137
var pos = sq + gap;
3238

3339
for (let r = 3; r >= 0; r--) {
@@ -53,11 +59,47 @@ function draw() {
5359
g.clearRect(Math.floor(mgn/2), mgn, Math.floor(mgn/2) + pos, mgn + c1sqhide * pos);
5460
g.clearRect(Math.floor(mgn/2) + 2 * pos + gap, mgn, Math.floor(mgn/2) + 3 * pos, mgn + c3sqhide * pos);
5561
}
62+
5663
if (settings.showdate) {
57-
g.setFontAlign(0, 0);
64+
g.setColor(-1).fillRect(Math.floor(mgn/2) + gap, mgn + gap, Math.floor(mgn/2) + gap + sq, mgn + gap + sq);
65+
g.setColor('#FF0000').fillRect(Math.floor(mgn/2) + gap, mgn + gap, Math.floor(mgn/2) + gap + sq, mgn + gap + 12);
66+
g.setFontAlign(0, -1);
67+
g.setFont("Vector",12);
68+
g.setColor(-1).drawString(day, Math.ceil(mgn/2) + gap + Math.ceil(sq/2) + 1, mgn + gap + 1);
69+
g.setFontAlign(0, 1);
5870
g.setFont("Vector",20);
71+
g.setColor(1).drawString(d, Math.ceil(mgn/2) + gap + Math.ceil(sq/2) + 1, mgn + gap + sq + 2);
72+
if (g.theme.dark) {
73+
g.setColor(-1);
74+
} else {
75+
g.setColor(1);
76+
g.drawLine(Math.floor(mgn/2) + gap, mgn + gap + 13, Math.floor(mgn/2) + gap + sq, mgn + gap + 13);
77+
}
5978
g.drawRect(Math.floor(mgn/2) + gap, mgn + gap, Math.floor(mgn/2) + gap + sq, mgn + gap + sq);
60-
g.drawString(d, Math.ceil(mgn/2) + gap + Math.ceil(sq/2) + 1, mgn + gap + Math.ceil(sq/2) + 1);
79+
}
80+
81+
if (cnt == 0) {
82+
if (settings.showbat) {
83+
var bat = E.getBattery();
84+
if (bat < 20) {
85+
g.setColor('#FF0000');
86+
} else if (bat < 40) {
87+
g.setColor('#FFA500');
88+
} else {
89+
g.setColor('#00FF00');
90+
}
91+
g.fillRect(Math.floor(mgn/2) + gap + 2 * pos, mgn + gap, Math.floor(mgn/2) + gap + 2 * pos + Math.floor(bat * sq / 100), mgn + gap + sq);
92+
if (g.theme.dark) {
93+
g.setColor(-1);
94+
} else {
95+
g.setColor(1);
96+
}
97+
g.drawRect(Math.floor(mgn/2) + gap + 2 * pos, mgn + gap, Math.floor(mgn/2) + gap + 2 * pos + sq, mgn + gap + sq);
98+
}
99+
cnt++;
100+
if (cnt > 599999) {
101+
cnt = 0;
102+
}
61103
}
62104
}
63105

apps/binaryclk/metadata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"id": "binaryclk",
33
"name": "Bin Clock",
4-
"version": "0.05",
5-
"description": "Clock face to show binary time in 24 hour format",
4+
"version": "0.09",
5+
"description": "Binary clock with date and battery",
66
"icon": "app-icon.png",
77
"screenshots": [{"url":"screenshot.png"}],
88
"type": "clock",

apps/binaryclk/screenshot.png

-14.1 KB
Loading

apps/binaryclk/settings.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
fullscreen: false,
55
hidesq: false,
66
showdate: false,
7+
showbat: false,
78
}, require('Storage').readJSON(FILE, true) || {});
89

910
function writeSettings() {
@@ -34,5 +35,12 @@
3435
writeSettings();
3536
},
3637
},
38+
'Show Battery': {
39+
value: settings.showbat,
40+
onchange: v => {
41+
settings.showbat = v;
42+
writeSettings();
43+
},
44+
},
3745
});
3846
})

0 commit comments

Comments
 (0)