|
| 1 | +Graphics.prototype.setFontAudiowide = function() { |
| 2 | + // Actual height 33 (36 - 4) |
| 3 | + var widths = atob("CiAsESQjJSQkHyQkDA=="); |
| 4 | + var font = atob("AAAAAAAAAAAAAAAAAAAAAPAAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAfgAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAADgAAAAAAHgAAAAAAfgAAAAAA/gAAAAAD/gAAAAAH/gAAAAAf/AAAAAB/8AAAAAD/4AAAAAP/gAAAAAf/AAAAAB/8AAAAAD/4AAAAAP/gAAAAAf+AAAAAB/8AAAAAH/wAAAAAP/gAAAAA/+AAAAAB/8AAAAAD/wAAAAAD/gAAAAAD+AAAAAAD4AAAAAADwAAAAAADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAA//+AAAAB///AAAAH///wAAAP///4AAAf///8AAA////+AAA/4AP+AAB/gAD/AAB/AA9/AAD+AB+/gAD+AD+/gAD+AD+/gAD8AH+fgAD8AP8fgAD8AP4fgAD8Af4fgAD8A/wfgAD8A/gfgAD8B/gfgAD8D/AfgAD8D+AfgAD8H+AfgAD8P8AfgAD8P4AfgAD8f4AfgAD8/wAfgAD8/gAfgAD+/gA/gAD+/AA/gAB/eAB/AAB/sAD/AAB/wAH/AAA////+AAAf///8AAAP///4AAAH///wAAAD///gAAAA//+AAAAAP/4AAAAAAAAAAAAAAAAAAAAAAAAAAAD8AAAAAAD8AAAAAAD8AAAAAAD8AAAAAAD8AAAAAAD8AAAAAAD/////gAD/////gAD/////gAD/////gAD/////gAD/////gAD/////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//gAAAAH//gAAAAP//gAD8Af//gAD8A///gAD8B///gAD8B///gAD8B/AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD+D+AfgAD//+AfgAD//+AfgAB//8AfgAA//4AfgAAf/wAfgAAP/gAfgAAB8AAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD+B+A/gAD/////gAB/////AAB/////AAA////+AAAf///8AAAP///4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//4AAAAD//8AAAAD//+AAAAD//+AAAAD//+AAAAD//+AAAAD//+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAAAB+AAAAD/////gAD/////gAD/////gAD/////gAD/////gAD/////gAD/////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//AAfgAD//wAfgAD//4AfgAD//8AfgAD//8AfgAD//+AfgAD8D+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B/A/gAD8B///gAD8B///gAD8A///AAD8A///AAAAAf/+AAAAAP/4AAAAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///AAAAH///wAAAf///8AAAf///8AAA////+AAB/////AAB/h+H/AAD/B+B/gAD+B+A/gAD+B+A/gAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B/A/gAD8B///gAD8B///gAD8A///AAAAAf//AAAAAf/+AAAAAH/4AAAAAB/gAAAAAAAAAAAAAAAAAAAAAAAAAAD8AAAAAAD8AAAAAAD8AAAAAAD8AAAAAAD8AAAAgAD8AAABgAD8AAAHgAD8AAAfgAD8AAA/gAD8AAD/gAD8AAP/gAD8AA//gAD8AB//AAD8AH/8AAD8Af/wAAD8A//AAAD8D/+AAAD8P/4AAAD8f/gAAAD9//AAAAD//8AAAAD//wAAAAD//gAAAAD/+AAAAAD/4AAAAAD/wAAAAAD/AAAAAAD8AAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/gAAAAAH/4AAAAAP/8AAAH+f/+AAAf////AAA/////gAB/////gAB///A/gAD//+AfgAD//+AfgAD+D+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD+D+AfgAD//+AfgAD//+AfgAB///A/gAB/////gAA/////AAAP////AAAD+f/+AAAAAP/8AAAAAH/4AAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/AAAAAAf/wAAAAA//4AAAAB//8AAAAB//8AfgAD//+AfgAD/D+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD8B+AfgAD+B+A/gAD+B+A/gAD/B+B/gAB/////AAB/////AAA////+AAAf///8AAAP///4AAAH///wAAAB///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAPAAAA/AAfgAAA/AAfgAAA/AAfgAAA/AAfgAAAeAAPAAAAAAAAAAAAAAAAAAAAAAAAAA"); |
| 5 | + var scale = 1; // size multiplier for this font |
| 6 | + g.setFontCustom(font, 46, widths, 48+(scale<<8)+(1<<16)); |
| 7 | +}; |
| 8 | + |
| 9 | +function getSteps() { |
| 10 | + var steps = 0; |
| 11 | + try{ |
| 12 | + if (WIDGETS.wpedom !== undefined) { |
| 13 | + steps = WIDGETS.wpedom.getSteps(); |
| 14 | + } else if (WIDGETS.activepedom !== undefined) { |
| 15 | + steps = WIDGETS.activepedom.getSteps(); |
| 16 | + } else { |
| 17 | + steps = Bangle.getHealthStatus("day").steps; |
| 18 | + } |
| 19 | + } catch(ex) { |
| 20 | + // In case we failed, we can only show 0 steps. |
| 21 | + return "?"; |
| 22 | + } |
| 23 | + |
| 24 | + return Math.round(steps); |
| 25 | +} |
| 26 | + |
| 27 | +{ // must be inside our own scope here so that when we are unloaded everything disappears |
| 28 | + // we also define functions using 'let fn = function() {..}' for the same reason. function decls are global |
| 29 | +let drawTimeout; |
| 30 | + |
| 31 | + |
| 32 | +// Actually draw the watch face |
| 33 | +let draw = function() { |
| 34 | + var x = g.getWidth() / 2; |
| 35 | + var y = g.getHeight() / 2; |
| 36 | + g.reset().clearRect(Bangle.appRect); // clear whole background (w/o widgets) |
| 37 | + var date = new Date(); |
| 38 | + var timeStr = require("locale").time(date, 1); // Hour and minute |
| 39 | + g.setFontAlign(0, 0).setFont("Audiowide").drawString(timeStr, x, y); |
| 40 | + var dateStr = require("locale").date(date, 1).toUpperCase(); |
| 41 | + g.setFontAlign(0, 0).setFont("6x8", 2).drawString(dateStr, x, y+28); |
| 42 | + g.setFontAlign(0, 0).setFont("6x8", 2); |
| 43 | + g.drawString(getSteps(), 50, y+70); |
| 44 | + g.drawString(Math.round(Bangle.getHealthStatus("last").bpm), g.getWidth() -37, y + 70); |
| 45 | + |
| 46 | + // queue next draw |
| 47 | + if (drawTimeout) clearTimeout(drawTimeout); |
| 48 | + drawTimeout = setTimeout(function() { |
| 49 | + drawTimeout = undefined; |
| 50 | + draw(); |
| 51 | + }, 60000 - (Date.now() % 60000)); |
| 52 | +}; |
| 53 | + |
| 54 | +// Show launcher when middle button pressed |
| 55 | +Bangle.setUI({ |
| 56 | + mode : "clock", |
| 57 | + remove : function() { |
| 58 | + // Called to unload all of the clock app |
| 59 | + if (drawTimeout) clearTimeout(drawTimeout); |
| 60 | + drawTimeout = undefined; |
| 61 | + delete Graphics.prototype.setFontAnton; |
| 62 | + }}); |
| 63 | +// Load widgets |
| 64 | +Bangle.loadWidgets(); |
| 65 | +draw(); |
| 66 | +setTimeout(Bangle.drawWidgets,0); |
| 67 | +} |
0 commit comments