diff --git a/apps/binaryclk/ChangeLog b/apps/binaryclk/ChangeLog index 76a897247..1ed034fb4 100644 --- a/apps/binaryclk/ChangeLog +++ b/apps/binaryclk/ChangeLog @@ -3,3 +3,4 @@ 0.03: Added setting for fullscreen option 0.04: Added settings to hide unused squares and show date 0.05: Minor code improvements +0.06: Added setting to show battery and added artwork to date diff --git a/apps/binaryclk/app.js b/apps/binaryclk/app.js index 05a2a5d1a..36fc9e3b9 100644 --- a/apps/binaryclk/app.js +++ b/apps/binaryclk/app.js @@ -2,12 +2,17 @@ var settings = Object.assign({ fullscreen: false, hidesq: false, showdate: false, + showbat: false, }, require('Storage').readJSON("binaryclk.json", true) || {}); function draw() { + var cnt = 0; var dt = new Date(); - var h = dt.getHours(), m = dt.getMinutes(), d = dt.getDate(); + var h = dt.getHours(); + var m = dt.getMinutes(); + var d = dt.getDate(); + var mon = dt.toString().substring(4,7); const t = []; t[0] = Math.floor(h/10); @@ -19,15 +24,16 @@ function draw() { g.clearRect(Bangle.appRect); let i = 0; - var gap = 8; - var mgn = 20; + var gap = 4; + var mgn = 24; + var sq = 33; if (settings.fullscreen) { - gap = 12; + gap = 8; mgn = 0; + sq = 34; } - const sq = 29; var pos = sq + gap; for (let r = 3; r >= 0; r--) { @@ -53,11 +59,50 @@ function draw() { 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 (settings.showdate) { - g.setFontAlign(0, 0); + g.setColor(-1).fillRect(Math.floor(mgn/2) + gap, mgn + gap, Math.floor(mgn/2) + gap + sq, mgn + gap + sq); + g.setColor('#FF0000').fillRect(Math.floor(mgn/2) + gap, mgn + gap, Math.floor(mgn/2) + gap + sq, mgn + gap + 12); + g.setFontAlign(0, -1); + g.setFont("Vector",12); + g.setColor(-1).drawString(mon, Math.ceil(mgn/2) + gap + Math.ceil(sq/2) + 1, mgn + gap + 1); + g.setFontAlign(0, 1); g.setFont("Vector",20); + g.setColor(1).drawString(d, Math.ceil(mgn/2) + gap + Math.ceil(sq/2) + 1, mgn + gap + sq + 2); + if (g.theme.dark) { + g.setColor(-1); + } else { + g.setColor(1); + g.drawLine(Math.floor(mgn/2) + gap, mgn + gap + 13, Math.floor(mgn/2) + gap + sq, mgn + gap + 13); + } 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); + } + + if (cnt == 0) { + if (settings.showbat) { + var bat = E.getBattery(); + if (bat > 50) { + g.setColor('#00FF00').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); + } else if (bat < 51 && bat > 21) { + g.setColor('#FFA500').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); + } else { + g.setColor('#FF0000').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); + } + bat = bat + '%'; + if (g.theme.dark) { + g.setColor(-1); + } else { + g.setColor(1); + } + g.setFontAlign(0, 0); + g.setFont("Vector",14); + g.drawString(bat, Math.ceil(mgn/2) + gap + 2 * pos + Math.ceil(sq/2) + 1, mgn + gap + Math.ceil(sq/2) + 1); + g.drawRect(Math.floor(mgn/2) + gap + 2 * pos, mgn + gap, Math.floor(mgn/2) + gap + 2 * pos + sq, mgn + gap + sq); + } + cnt =+ cnt; + if (cnt > 599999) { + cnt = 0; + } } } diff --git a/apps/binaryclk/metadata.json b/apps/binaryclk/metadata.json index 83387d2aa..3c8bdce39 100644 --- a/apps/binaryclk/metadata.json +++ b/apps/binaryclk/metadata.json @@ -1,7 +1,7 @@ { "id": "binaryclk", "name": "Bin Clock", - "version": "0.05", + "version": "0.06", "description": "Clock face to show binary time in 24 hour format", "icon": "app-icon.png", "screenshots": [{"url":"screenshot.png"}], diff --git a/apps/binaryclk/screenshot.png b/apps/binaryclk/screenshot.png index 504a1926f..f5a60f9dd 100644 Binary files a/apps/binaryclk/screenshot.png and b/apps/binaryclk/screenshot.png differ diff --git a/apps/binaryclk/settings.js b/apps/binaryclk/settings.js index f7e8620de..34b3ae180 100644 --- a/apps/binaryclk/settings.js +++ b/apps/binaryclk/settings.js @@ -4,6 +4,7 @@ fullscreen: false, hidesq: false, showdate: false, + showbat: false, }, require('Storage').readJSON(FILE, true) || {}); function writeSettings() { @@ -34,5 +35,12 @@ writeSettings(); }, }, + 'Show Battery': { + value: settings.showbat, + onchange: v => { + settings.showbat = v; + writeSettings(); + }, + }, }); })