From 657e64b078eda64cd6817959cbdc8a3bc71bb580 Mon Sep 17 00:00:00 2001 From: David Peer Date: Wed, 24 Nov 2021 17:52:25 +0100 Subject: [PATCH 01/66] Added readme also to app.json --- apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps.json b/apps.json index e77391593..758332cb3 100644 --- a/apps.json +++ b/apps.json @@ -4350,6 +4350,7 @@ "shortName":"LCARS", "icon": "lcars.png", "version":"0.05", + "readme": "README.md", "supports": ["BANGLEJS2"], "description": "Library Computer Access Retrieval System (LCARS) clock.", "type": "clock", From a537e98116a932422a10c043b001a96911c65d3d Mon Sep 17 00:00:00 2001 From: David Peer Date: Wed, 24 Nov 2021 18:04:59 +0100 Subject: [PATCH 02/66] Font improvements --- apps.json | 2 +- apps/lcars/ChangeLog | 3 ++- apps/lcars/lcars.app.js | 26 +++++++++++++++++--------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/apps.json b/apps.json index 640eff953..b8081f5f5 100644 --- a/apps.json +++ b/apps.json @@ -4350,7 +4350,7 @@ "name": "LCARS Clock", "shortName":"LCARS", "icon": "lcars.png", - "version":"0.05", + "version":"0.06", "readme": "README.md", "supports": ["BANGLEJS2"], "description": "Library Computer Access Retrieval System (LCARS) clock.", diff --git a/apps/lcars/ChangeLog b/apps/lcars/ChangeLog index 07ad79c7c..e99bfd0e9 100644 --- a/apps/lcars/ChangeLog +++ b/apps/lcars/ChangeLog @@ -2,4 +2,5 @@ 0.02: Swipe left/right to set an alarm. 0.03: New design with different icons if gps, hrm or compass is on. 0.04: Inluded LCARS Logo. -0.05: Additional icons for (1) charging and (2) bat < 30%. \ No newline at end of file +0.05: Additional icons for (1) charging and (2) bat < 30%. +0.06: Next release \ No newline at end of file diff --git a/apps/lcars/lcars.app.js b/apps/lcars/lcars.app.js index 906159ebf..0d536ac91 100644 --- a/apps/lcars/lcars.app.js +++ b/apps/lcars/lcars.app.js @@ -47,11 +47,18 @@ var iconNoBattery = { buffer : require("heatshrink").decompress(atob("pMkyQCoycMmHDhgLEqVECg1Bw0YsOGBAdKpMSEwwjCmHCBAYDBHA4jCjFpBAUpkmJJR0lkmRL49Fy1ZsuWBAWkyQRGxcs2XLAQe0ymSNw9t23bAQnSyVICI1IEYoCBqSAIkwjF7dupMiQA5KH/KSIJQ+5SRBKH2fkSRBKH8iSHJRHPSRBKIH4PSCJBKFn1JhYRIJQqSBkdtJRscSQLgBJRliAwONcAJKM9MkyAFBJRm/AwM2AoJKMUgNCFIJKM7A8BOgRKMmVJg8MJRqSBAwMGJRqSBzVpJRu5kmTpMhJRmz8mQ2emJRqABm3cyK/BJRWPSQUauRKMSQVmpFbJRdSpMLOIODX4JKJpVJkYgB+gCBJRQDBEAQCDJREpkmNEAQCDJQ8lkmQEYpKJ0mScAIjEJRGUyVEcAJKNSQLgBJRqSBiVIJRqSBkTgBJRoDBAIJKNSQOJAoJKN0mRAoJKOyQFCSp4CikAA=")) } -Graphics.prototype.setFontAntonioMedium = function(scale) { +// Font to use: +// +Graphics.prototype.setFontAntonioSmall = function(scale) { // Actual height 18 (17 - 0) g.setFontCustom(atob("AAAAAAAAAAAAAAAf4Mf/sYAMAAAAAAfgAfAAAAAfgAeAAAAAAiAAj8H/4fyEAv8f/gfiAAgAAAAD54H98eOPHn8Hz8AhwAAAP8Af+AYGAYCAf+AP8MAB8AHwA+AD4AfAAcf4A/8AwMAwMA/8Af4AAAAAwGD8f/8f8MY/cfz4PD8AHMAAAfAAeAAAAAAAAP/+f//YADAAAQABYADf//P/+AAAAAANAAPAAfwAfgAPAANAAAAAAEAAEAA/AA/AAEAAEAAAAAAZAAfAAYAAAAIAAIAAIAAIAAAAAAAAAMAAMAAAAAAAAEAB8Af4H+AfwAcAAAAAP/4f/8YAMf/8f/8H/wAAAAAAEAAMAAf/8f/8f/8AAAAAAAAAHgcfh8cH8YPMf8MPwEAAAAAAOB4eB8YYMY4Mf/8Pn4AAAAAgAHwA/wPwwf/8f/8AAwAAgAAAf54f58ZwMZwMY/8Qf4AAAAAAP/4f/8YYMYYMff8HP4AAAQAAYAAYD8Y/8f/AfgAcAAAAAAAAPv4f/8YYMY8Mf/8Pn4AAAAAAP94f98YGMcMMf/8H/wAAAAAABgwBgwAAAAAABgABg/Bg8AAAAEAAOAAbAA7gAxgBwwASAAbAAbAAbAAbAASAAAAAxwA5gAbAAPAAOAAAAPAAfHcYPcf8Af4AHgAAAAAAAB/gH/wOA4Y/MZ/sbAsbBkb/MZ/sOBsH/AAAAAAMAP8f/4fwwf4wH/8AH8AAMAAAf/8f/8YYMYYMf/8P/4ADgAAAP/4f/8YAMYAMfj8Pj4AAAAAAf/8f/8YAMYAMf/8P/4B/AAAAf/8f/8YMMYMMYIMAAAAAAf/8f/8YYAYYAYYAAAAAAAP/4f/8YAMYIMfP8Pv8AAAAAAf/8f/8AMAAMAf/8f/8f/8AAAAAAf/8f/8AAAAAAAD4AB8AAMf/8f/4f/gAAAAAAf/8f/8A+AD/gfj4eA8QAEAAAf/8f/8AAMAAMAAMAAAf/8f/8f8AB/wAB8AP8P/Af/8f/8AAAAAAf/8f/8HwAA+AAPwf/8f/8AAAAAAP/4f/8YAMYAMf/8P/4AAAAAAf/8f/8YGAYGAf8AP8ABAAAAAf/w//4wAYwAc//+f/yAAAAAAf/8f/8YMAYMAf/8f/8DA8CAAPj4fz8Y4MeeMfP8HD4YAAYAAf/8f/8YAAQAAAAAf/4f/8AAMAAMf/8f/4AAAYAAf4AP/4AP8AP8f/4fwAQAAYAAf8AP/8AD8D/8f8Af8AD/8AD8f/8f8AAAAQAEeB8P/4B/AP/4fA8QAEYAAfAAP4AB/8H/8fwAcAAAAMYD8Y/8f/MfwMcAMAAAf/+f//YADYADAAAAAAfAAf8AB/wAH8AAMQACYADf//f//AAAAA"), 32, atob("BAUHCAcTCAQFBQgGBAYFBggICAgICAgICAgEBQYGBggNCAgICAcHCAkECAgGCwkICAgIBwYICAwHBwYGBgY="), 18+(scale<<8)+(1<<16)); } +Graphics.prototype.setFontAntonioMedium = function(scale) { + // Actual height 20 (19 - 0) + g.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAA//mP/5gAAAAAAAAAAAAA/gAMAAAAAA/gAPAAAEIIBP+H/8D+IYBP+H/8D+IABCAAwIAfnwP8+PHh448eP3+B4fAAAAAAAH/AD/4AwGAMBgD/4Af8GAAPgAPgAfgAfAAfAA+AAOP/AH/4BgGAYBgH/4A/8AAAAAAAAAQAA/B+f4/+GMPhjv/4/h8Dg/gAcYwAAPwADgAAAAAAAAB//8///sAAaAACAAAMAAb//+f//AAAAAAAbAAGwAA4AA/wADgABsAAbAAAAAAAgAAMAAPwAD8AAMAADAAAAAAAAAAHAAB/AAOAAAAAAAAMAADAAAwAAMAACAAAAAAAAAABgAAYAAAAAAAAA4AD+AP+A/4A/gAOAAAAAAAAAH//j//8wADMAAz//8f/+AAAAAAAMAADAABgAA//+P//gAAAAAAAAAAAAAfgfP4fzAfswfDP/gx/gMAAAHgPj4D8wMDMHAz//8f3+AAEAAAAADwAH8APzA/AwP//j//4AAwAAAD/Hw/x+MwBjOAYz/+Mf/AAAAAAAH//j//8wYDMGAz9/8fP+AAcDAAAwAAMAfjB/4z/wP+AD4AAwAAAAOB/f4///MHAzBwM///H9/gAAAAAAH/Pj/78wGDMBgz//8f/+AAAAAAADhwA4cAAAAAAAAAAAAAADh/A4fgAAAAOAAHwABsAA7gAccAGDAAAAANgADYAA2AANgADYAA2AAAAAAAABgwAccADuAAbAAHwAA4AAAAHwAD8c4/POMHAD/wAfwAAAAAAAAD/wD//B4B4Y/HMf8zMBMyATMwczP+M4BzHwcgf+AA+AAAAAAD4A/+P/8D+DA/4wH/+AB/4AAeAAAAAAA//+P//jBgYwYGP//j//4PH4AAAAAAAf/+P//zgAcwADP4fz+P4Ph8AAAAAAA//+P//jAAYwAGPADj//4P/4AAAAAAA//+P//jBgYwYGMGBgAAAAAAP//j//4wYAMGADBgAAAAAAAA//w///PAHzAQM4MHP7/x+/8AAAAAAD//4//+AGAABgAAYAP//j//4AAAAAAAAAA//+P//gAAAAAAAAAAAHwAB+AABgAAY//+P//AAAAAAAAAAD//4//+APgAf+Afj8PgPjAAYAAAAAAD//4//+AABgAAYAAGAAAAAAA//+P//j/gAD/wAB/gAP4B/4P/AD//4//+AAAAAAAAAAP//j//4P4AAfwAA/g//+P//gAAAAAAAAAA//g//+PAHjAAY4AOP//h//wAAAAAAD//4//+MDADAwA4cAP/AB/gAAAAAAAA//g//+PAHjAAc4APv//5//yAAAAAAD//4//+MGADBgA48AP//h+f4AAAAAAB+Pw/z+MOBjBwY/P+Hx/AAHgwAAMAAD//4//+MAADAAAAAAP//D//4AAOAABgAA4//+P//AAAAwAAP8AD//AA/+AAfgP/4//gPwAAAAA+AAP/4Af/4AD+A//j/wA/wAD/+AA/4B/+P/+D+AAAAAMADj8P4P/4A/4B//w+A+MABgAAA4AAPwAB/gAB/+A//j/gA+AAMAAAAAYwB+MH/jf+Y/8GPwBjAAAAAAP//7//+wABsAAYAAAAAAPAAD/gAH/gAD/gAD4AACAAADAAGwABv//7//+AAAA=="), 32, atob("BQUHCAgVCQQFBQkHBQcFBwgICAgICAgICAgFBQcHBwgPCQkJCQcHCQoFCQkHDQoJCQkJCAYJCQ0ICAcGBwY="), 20+(scale<<8)+(1<<16)); +} + Graphics.prototype.setFontAntonioLarge = function(scale) { // Actual height 34 (34 - 1) g.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAAAAADwAAAAAeAAAAADwAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAD+AAAAH/wAAAP/+AAAf/+AAA//8AAB//4AAD//wAAD//gAAAf/AAAAD+AAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAB////gA/////AP////8D/////wfAAAA+DwAAADweAAAAeDwAAADwf////+D/////wP////8Af///+AAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAOAAAAADwAAAAAeAAAAAHgAAAAB/////wf////+D/////wf////+D/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAPwH/4AP+B//AH/wf/4D/+D4AB/9weAAf4ODwAP8BweAP/AOD///gBwP//wAOA//4ABwB/4AAOAAAAAAAAAAAAAAAAAAAAB8AA/gA/gAH/AP8AA/8D/gAH/wfAHAA+DwA4ADweAHgAeDwB8ADwf7/+H+D/////gP/9//8A//H/+AA/AH/AAAAAAAAAAAAAAAAAABwAAAAD+AAAAD/wAAAH/+AAAH/5wAAH/wOAAP/gBwAP/gAOAD/////wf////+D/////wf////+AAAABwAAAAAOAAAAABwAAAAAAAAAAAAAAAAAAeAD//4D/Af//Af8D//4D/wf//Af+DwPAADweB4AAeDwPAADweB///+DwP///weA///8DwD//+AAAA/8AAAAAAAAAAAAAAAAAAAAAA////AA/////AP////8D/////wfgPAB+DwB4ADweAOAAeDwBwADwf+PAA+D/x///wP+H//8A/wf//AAAA//gAAAAAAAAAAAAADgAAAAAeAAAAADwAAAAAeAAAD+DwAAP/weAA//+DwA///weB///8Dx//8AAf//wAAD//gAAAf/AAAAD/AAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAD/wf/wB//v//AP////8D/////weAPwAeDwA8ADwcAHAAeDwB8ADwf////+D/////wP/9//8A//H//AA/AD/AAAAAAAAAAAAAAAAAAAAAD//gfAA///D/AP//8f8D///j/weAA8A+DwADgDweAAcAeDwAHgDwf////+B/////gP////8Af///+AAP//4AAAAAAAAAAAAAAAAAAAAAAD4AfAAAfAD4AAD4AfAAAfAD4AAD4AfAAAAAAAAAAAAAA=="), 46, atob("Cg4QEBAQEBAQEBAQCQ=="), 39+(scale<<8)+(1<<16)); @@ -100,7 +107,7 @@ function draw(queue){ g.drawImage(iconImg, 120, 107); // Alarm within symbol - g.setFontAntonioMedium(); + g.setFontAntonioSmall(); if(alarm > 0){ g.setFontAlign(0,0,0); g.drawString(alarm, 120+25, 107+25); @@ -116,7 +123,7 @@ function draw(queue){ // Write date g.setFontAlign(-1,-1, 0); - g.setFontAntonioMedium(); + g.setFontAntonioSmall(); var dayName = locale.dow(currentDate, true).toUpperCase(); var day = currentDate.getDate(); @@ -124,18 +131,19 @@ function draw(queue){ g.drawString(dayName, 100, 55); // HRM + g.setFontAntonioMedium(); g.setFontAlign(-1,-1,0); - g.drawString("HRM:", 28, 102); - g.drawString(hrmValue, 63, 102); + g.drawString("HRM:", 25, 98); + g.drawString(hrmValue, 64, 98); // Draw steps var steps = getSteps(); - g.drawString("STEP:", 28, 122); - g.drawString(steps, 63, 122); + g.drawString("STEP:", 25, 121); + g.drawString(steps, 64, 121); // Draw battery - g.drawString("BAT:", 28, 142); - g.drawString(bat+ "%", 63, 142); + g.drawString("BAT:", 25, 144); + g.drawString(bat+ "%", 64, 144); // Queue draw in one minute if(queue){ From 1ab98707eda9543a4792627c1c91884059345bc0 Mon Sep 17 00:00:00 2001 From: David Peer Date: Thu, 25 Nov 2021 09:17:25 +0100 Subject: [PATCH 03/66] Minor changes --- apps/lcars/bg_large.png | Bin 17434 -> 12678 bytes apps/lcars/bg_small.png | Bin 9424 -> 9380 bytes apps/lcars/lcars.app.js | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/lcars/bg_large.png b/apps/lcars/bg_large.png index a82a5ae74b6250d43ec04afb5e9e5d666b2247aa..986ab958da4ad2b14340cd40879c5735f16712fa 100644 GIT binary patch literal 12678 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 literal 17434 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 Ld@TN;=kq@R)tAZc diff --git a/apps/lcars/bg_small.png b/apps/lcars/bg_small.png index e38f2f5500eb3e72822c3b250f2f288ce4d6eb7c..e8407e471fcc6c21b7b8c4b8f8fc5d00b31708fd 100644 GIT binary patch literal 9380 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 diff --git a/apps/lcars/lcars.app.js b/apps/lcars/lcars.app.js index 0d536ac91..6ce592f7a 100644 --- a/apps/lcars/lcars.app.js +++ b/apps/lcars/lcars.app.js @@ -5,10 +5,10 @@ const locale = require('locale'); var alarm = -1; var hrmValue = "-"; -var backgroundImage = { +var backgroundImage = { width : 176, height : 151, bpp : 3, transparent : 2, - buffer : require("heatshrink").decompress(atob("AAdx48cATojCufPnnzASocCyVJkgCdyAkCh158+eASsAgMHQDyDggKAeQcKAgQYodZgRoFpAkCAG0QJQtwIPMSQYtAIPLOGQfSADAQRA5Qf6D6g/gQf8H/iD/n//wCD9gP/Qf5BBQf5BC+CD9h5BB/yD8jl/IIPx46D6g4/BQYU//+AQe8B/6DD//Hj/x4CD2v/4AQJBC4ED/4IBQegvBPQJBERgSD1j/wgB9BAASACn/gQepECIIaACg/8QeY1DQYjCD/+AQeUHQZSPDwUIkACDQdT7DIJEfQYIAxg44DIJHwIOU/fwYAERgUDIOUBPQhBE/hB1QZRBFjlx44CDuBBpg4CCHwdxIIcfIIPnz15AQeAQdT+CIIXgZwJBDHAM8+fPAQbOqQY0AIIkcAQKDxg44BIIX4RgX/GoICCQeR3BIIXARIfwJoSDyfYI4B//+BAaABn/gAoKDxfYNx459BJQnx/4FCQeUAv7EBIIv//AFCQeUAgPH/lwAwUHQYPAQe0An6EBAAfj/wMDQeZ9B/jIC//HgCJDQe3gAYICCgF+Qe8B/4IGIIiD0nAHGhyD3ABqD0ABiD/Qf4ADjiD/gEnQYuQQf6D7gaDFzxB5gFzQYnz4JB5hyDFATfkEwUN23btoCVgEBQYoCcIIRhZDYMJQf4ABjiD/AH4A/AH4AGiFx48cATokCufPnnzASocCyVJkgCdyAkCj158+eASsAgKAfQcEJQDyDhNA8QoMEAQIqCACweEASkCNAtIHbIAfdI1wIPMSQYtAQf6D7QAYCCIHKD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/AH4A/AH4A/AH4Asjlx44CDsBB57dt2wCDQfWevPnAQaD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf4Akjlx44CDQfQA/AH4A/AH4A/ABM8+fPAQfwIPPnz15AQeAQf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf4AZjiD/gEHQYuQQf6D7gaDFzxB5gFzQYnz48cuICZEwQdZgECQYoCb8hBChMkyVJASsAgPHQYgCcQboABQf4ABfzACIQbg=")) + buffer : require("heatshrink").decompress(atob("AAdx48cATsAg88+fPAS5ACyVJkgCdyEAgPnz15AS4cBg6AeQcEBQDyDhQECDEDrUCNAtIgAA4iBKFuBB5QY1AIPLOGQfSADAQRA5Qf6D6g/gQf8H/iD/n//wCD9gP/IJCD2h5BB+CD/IJCD5/yD8jl/IIP/GoKD5n4/CAAeAQe8B//8QYkf+PAQew+BgaBD4AFB/CD1j47BIgRBCgFx/6D1//wgCDEQAU/8CD0/iGDAAYHBg4LCQeI1DQYjCD/+AQeRBDQY4IBIIOChEgAQaDqfYZBFBAZBBAGM/PQaDI+BB2IAiDDgZBygJ6EIIn8IOqDKIIscuPHAQdwINkHIJEfIIPnz15AQeAINT+CHwcPAYI1Bj4CBnnz54CDZ1UHPQKDDgEBQfBBF/CMCQYQCCQe/ABAX/+ALCQeR3BHAJBEQAU/8AFBQeL7B//HIgIIE+P/AoSDygF/QQJBEAwP4AoSDygEBQYgFBQYLLDQecAn59BAAn+BgaDzIIP8ZAX/48cuAMDQevggE48YyCvyD3gP/BAxBEQek4A40OQe4ANQegAMQf6D/AAccQf8Ak6DFyCD/QfcDQYueIPMAuaDE+fAIPMOQYoCb8kAgnTps0AS8AgKDFATkAg2atOmAS6EBhKD/AAMcQf4A/AH4A/AA0QuPHjgCdgEHnnz54CXIIWSpMkATuQgEB8+evICXDgKAfQcEJQDyDhNA7OCADMBgkQoICXgRoFpBAcADjpGuBB5iSDFoCD/QfaADAQRA5Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf4A/AH4A/AH4A/AFkYsOGAQdAIPPTps0AQaD6zVp0wCDsCD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf4AjjFhwwCDoBC6AH4A/AH4A/AH4AInnz54CD+BB58+evICDwCD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/ADMcQf8Ag6DFyCD/QfcDQYueIPMAuaDE+fHjlxATLrBDrUAgSDFATfkgEkyVJATEAgPHQYgCcQboABQf4ABhhfZAQyDc")) } var iconPlanet = { From a99d9d5e7c649ab498c1ef5b459c2647f52c5703 Mon Sep 17 00:00:00 2001 From: David Peer Date: Thu, 25 Nov 2021 16:56:32 +0100 Subject: [PATCH 04/66] Store alarm in settings --- apps/lcars/ChangeLog | 2 +- apps/lcars/bg_large.png | Bin 12678 -> 12390 bytes apps/lcars/bg_small.png | Bin 9380 -> 9939 bytes apps/lcars/lcars.app.js | 181 +++++++++++++++++++------------------- apps/lcars/screenshot.png | Bin 26858 -> 26670 bytes 5 files changed, 93 insertions(+), 90 deletions(-) diff --git a/apps/lcars/ChangeLog b/apps/lcars/ChangeLog index e99bfd0e9..85bcbad36 100644 --- a/apps/lcars/ChangeLog +++ b/apps/lcars/ChangeLog @@ -3,4 +3,4 @@ 0.03: New design with different icons if gps, hrm or compass is on. 0.04: Inluded LCARS Logo. 0.05: Additional icons for (1) charging and (2) bat < 30%. -0.06: Next release \ No newline at end of file +0.06: Fix - Alarm disabled, if clock was closed \ No newline at end of file diff --git a/apps/lcars/bg_large.png b/apps/lcars/bg_large.png index 986ab958da4ad2b14340cd40879c5735f16712fa..dd5bda4f3207c4764d8e0dea681f05608a031cc2 100644 GIT binary patch literal 12390 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 literal 12678 zcmd6MWl&vD)91knngrJ*xVyW%yIu(H?he7-9fC`+1a}BQFBaS-!QI{V@;v{o-P)>m z>-qB5?uUEkOjl2zp0?@V+z2HFNmL|!Bme+VrKQAF005d10HD?p;UN^;pqOR=z{>Gb z({fSy?EcZg$==M;#`L3$r-SK7Qx8is0PtAs$h34LY;y{JF~$Nxn~|k{Im>Q>VO%qS zmamm&_pBjXvPzh#gc3!2mmrjJwf3^G-F2H*XM&-cpy%B97{#u!c1v>oT(Q$sclIdo z^4R$7cs=D=x7z6y8))2&Bhw~1$Msc!*yG^W)%Z>fU$uuP+hz0Vtl{rmSCk9S`0SgT z_Nchf{Z<2~lykmmKT5-ajegeT0YxfzFZ-C?we34GIxS0zW2DuZ^&tMPt=NydamXHI#j#;?p+WIArCbNvS% z>J+N6vO%b`vk~Se5JKeq!8>2|(U>~-Ch+ST0 zT$PVJS^828yt?g-W1l5|3dbZoy!9P`VIUX8D~kJMVjqc9<9mVfuIT1|vuPyi8nGSucur;y`BXVE#Orvi*zCLaU)AYZ444qs4W&P|Sb3%Ip+Nh-7 zs(MrEkT`AbF(Mf@5aksRaJ|n;%OFvctNL|eUpf*Nr@5$;d8&NC;j`XY>Cvk1&7T(k zEzYD(gS*j}q@C#2WB*^y@N-Z5O*o(|u=9q;p;`XoG<>an8`ICiU9Yd?Crnn1mL6}5 zW31fe>}uk%e+5Q8#j-G~BMB^mL=4B&q6Z+Vm(CVN%tEK}6d=j?3uXKYc`bWxJu#=8*I*VAU z*AGanoRT?G?X6=HqN_9E+!$+R-^RqgV3049b1gLh7!=abl_>B7IXR>Be;r ziECWH$&PzmZ*7<&)P2teV6tZIe%iyiQIoLC--LN1BbWTCz4_@E*XfyYCn5{`+Y2T^ zg56YPz=}ajBD0^o=y8!l1bWu1}zLC$IFe%VToM?H%Jl)@AO!I zWP8*69OpNe6O)S@5-JhMlY*`)a^sdQ5(aVD87ZhOnVb-KVa`?54{$*_ILpc(wcQnGz2t$ zT1$sG;u4KViY zZN|lI-}T12F4c#Tt`3&vXu|0Z&J{0f?b%l{MD7ehVO60u^9M#$NG89~5JVwm&+v?2 z=|Kgp>IT9Z8sm}2!E9%*5(#Mkc1ex6p!0xo8R4j1!1EZ01rzthimTmXncAN6lPN)^ z#PBR>C|gk>*nC9DVaD)a7F{d8=MK=>TQx5NSvc&bjQw7qQdS=cP)4dsNcA9g1T1(l zxo&loPE4Lf?30X^qGwn3<%l%jTA=Wv4fz?-Y`HQ{lHlVsM?&2eqHI`EDLjafMC*AF zrgA9!nIR|Y&lbijgIRaTY*OOghvOo}){TOm^9~9^Ooj6fq-sP2OHT~ph2v7Cc3NpX z@1q!RhkVNrVjeFgL(|U3i0O^!zn*8NVSnRbU^Iz~Oh$j!OhAg7DG)?W`<5P!pnzB* zz8Z#lggsZRphE#W+dAO$ifZ6cJT;GO-*f0iV<@^&(I<-i#BV+la->u~&@U61c!sk+ z!X>@m&G2cM_{n?E@64Ps1~Zca>e$FIO3-4o2uV~;VX;;7k7+HGb&oY@3saoeFxy7u zrg13JMYR!zP%@L^rPX_e$V>sk( zHXf-~_Pheru_J6#pt;t6#KRUyV^|?X;?@s*2~Md+V`);CoWW4_i(1DNd%2m48+euqy_W*cvzf0`azCS$p}dowMeP^s=5j;X&EbT zC-J(B-M8>bE=uA_bX1BT{AM1#JTDO@0*qmJ+%ANTsD7SI^*$;HSS|*%0kq*ki#;wb z0H*Pq4N(Fe1^VxUno!{mMn5A?zZ?iVkqEBaC37V6ScZIiqs|p+%?-28&zOU36@1_MV3>>E?8#EAIiLJ~HFPDNlF7#pen0^hKcu%0O3@R^c0l>pJAOQJCO z?4bL$8rQ4}-o1b?ucW{gw-9c1B3>k9iK_fi13a%LdrIwiOr=ZhhyHKF+L5Xn}XoO~ob$+QM=->iGjG9w}d7aw>ksQ>5OWg2>(Ai@$B|+;o%F1F4N)0mdl3DD5yleirCjgq+@>;;gM$%YBA~2<1v+hv2$BiEXQdG&H-TY z4Kbji%v^|&olI!D#U)MhN$D_|TvofECCnmvhM`q7m^$;Og;gZ+^F^7kQORkvzkAdR zo3SgFcS-rPv=tHopvlTaZ;?GHQsyIN)DXUfIF*ku^ymOJlW|fV)tJy%pEMO zAUNsNob@{4p9X3_%Hl0Uy^MihZ60G-HX%VyMsSLU59VL$F6gOiP)GLR^fn)VD#}_ zrr=(+?A`_`s9Ft}+PP|3Si=vAZ{Vb&YmURm{-l}5lbW?Vj z7xR$J6OwVKh;O=mS+V0>j2K=JXnL_&SuDL4Y_JpHRCIOVy|s85X6w8@<$$?pQ_Tz8 z$DavTeJ^e#T$1~KE}J;=+Atrv$C3;QG%fiano`AU7<7eQp0T6kMYC{Ur9ovK;i(VH zS-xi#J4}!$TKY-idgGb)ymdBa=lS*ti>yuflB3VEfcO1(se%Y4Qi2lodUXOD3zTW6 zH3RJ_0?t1_Bzbd~B)vUIaJ9p~ldR_Pt^HC0Qj-W{Rs{16Fst;(Jd6dC@$yP`#!LH;8z}eIHRs>KbIv?(FHFg{+$GOB z-d;43dJ=@+EhV(0_C6j-t->2UyOG($F#Gc+HU*}CkPHG~-f2(;$b`n}A5=*8xmk%A zQk52oUln{GcpAD%W?vx0(%?EEDY8`;mN=5)xJ+06>{byEpOkp@L!FEcALHD$h>pA# zs`IfDFP;Vtd|4HQK-Cb<1--(7HkFYhCXn>S{yM=APxTH->pm7Ct}rm`U7Ma^dFyEe2q$h;YX z*Q2-o%p}GwX1(Fs3X^_IHwS|Sxz=wGlnjmwmP;NKN*ew4ONoN883naP{36-Dke5Dm z+S~3&>88YNrG>Lh@RRH>1$Z^~g>;`+qaVh2%UR;S#FTxwf2Oz>3`zEkEXPoZGP%hw zCq${h4$~SEPCIN@^2qmvRkEUT5?(1xzr)$Kv5-nk%dA@e{=W6N%Ea}}U+aCIffdgQ ztV4YvQZX?Zi?es?S@YSO47gi{*B0u-LsU{To5(!zQpK?1<1UduL#Qs_TzKdokbz5; zKD5=Ti1)+G+>eT`KCV#o51j3ULf;?y9C4N8Tv=dRXmsH4)!JM7#vW%If*EiD9`IK9a!j-IY{-9 zQa=YD(8vVMB!4tz*aMe#tWAF2$*T4|=meCRKUgliZpE3bdt`=$a>1_j5w&H6ZElFZ zsnk9Y#zVDJO!)q`{mVXGxte{VF7^c0JE{pzPA*oY>_&%>yOI<2{ZK~IpKur5KioK0 zwnN6F+@S-P^u*j@9Z2B9Ske40M2d5$r?QiNn-!&h`;k&G&$1l>tM9%7I(GNXKRKB2 zasT5U7Z>Wrt1UI~1ze2)<}i}wxjn#sryfALQg_IzWU^bZOhI!--_oU4?p;VQ-n37p ziZpg3d_4mbbuz8h1at0b`tZWvP}NOo+3YYhM7@eyVfu@J2W*;RmZH(f1?ToVb3dF8 zMvp0|^zc(fIDL>^YsIPyg3)2Jpj?T~sY$(?TWo3veqzAnGj@Xi3|wo7M*>t}GiG_I z>CXH`k=j+?1D83G&I}Oex36IkN%8hHMhQuKcs}t5f4-IpN9oxNRgA-y5Waq4lQ{e% z2k{g0_YiHimA?uqW8PQ?bQJpJN}5gfCpOV_iDEilSIQS;RT^Ebq_q`xO&_LKD05G0 z>|pHQvm|C?+VQJQJRn-~+PnVY<|@=Kiv6nVFg;nt!KN}p{w{6s#w4rLF#qIfK5~{^ zjNvv`tnFoo;~seW<=^T}5j7I8UWCLPE-@6o`9?==O_NmUFemmd9etr>l8mF4rBZ0( zd#%RIjMw1EXx(;pO%S&6PgQtV}ZH@bSlEl$Bm zph;?nFR?q_i>#z6z@5~uUEJaS;9HD_^a0fpl~GwMliM~1krG@{DT2sUC2!Z4Y%{z6 zmLs|C*b94bWmsWEpZ%BJXBDH|(WI)Hu?Als{nnW@AwKZ;MlF$!jmflFyH)j&T$bgk zT1C~ash66StkP%Ki;-`vE}Z+Ns|K!i&qX(yIaz{xPwG3{ieCOREq6)(i`?bS|mKH&C$b>Rgt7T%cy|YW-dOTcRiO-vL7xgTKaHs4Tx5_9jhoaSk+`u?k@5 zL*LA}78Ce4GMKcK)5f|M486~g_d_%l+6}1QEeJg}R<7%Nmz9(`rL~zLyHmwnPZ~!B zHRE`wG)7CQYOv8j#nCM3PL%%^N6B|d9oJ(2d{4)U3ib|3B7$5^sJ)m_cJ3y=$Hlck zyy9DTnf+T5bj1X$6A7C&aJoH~>1>023@IJyeZgNJT-BxkYPD+o2~@%rEXJ>`nxPX| ziy+V4WZ9)#p3Tggu@etzb1h%}(0Z)0G#LHp z*L*c+na1{EG;8Pj0|%OW)Zu)3yh{0My~@&65{9~IZbY_a`bOWJ^NYip^OV7I7**wG zdZq`j6P}Z{-!5wkk1MX*El1V{ql|QqldiYLI@Zq!y)&vn{B9lv$U-gM3f?H-o3;eaI~>*p z^&byd9k?QIp?Xcs_MH=xgLiIQ!{Tb(m2adpGMZ2_AMuLJI6CqDmJgT0ELFOh>X(t7JwKy)nnt zzm*zRm9C1;?4(TKw8Byz`P0+gsCBipWXE%4&ECoJm?<)L5ncf6Qmws#z-g(!*J{nn6JwJc z38tFlM3Cu1w~&DE(^ZRu;YVqenwhcN%#FgrYhnitQu(gc0FMmVsE7OWi5LRbx(Zs( zN>I*(8EcgWE$OJ);}{HpNdhu+aoMz$P21*NecY~3968*Vsh9yzBvBrr0(rP+EKNOsnHIG@GK8~wH#U;POd8>>4g^5=%Nm%QuXg%) z+ATCQ%bJakSyXHhV*`0wXDYHR^D8+`blQnovsJ@=$k-+(E^LJi$WVZIbecwD2xQks z2i3z;bs0$v=>H=2`TE|?&uH!xATtam20~3h1DKqk)XSS4_v#Lg18fGl_kSQHR?zn4 zbF@vd`UC%9}LaTpyKYKqxTh zs&+!i-CdyFPXBp`U`;CnUG=f>>m%9MwgU!9H~@1VkC6Zsvcc40hG9m1Pg7G05y&#` z>2Wny{+t|b4la*tYZ=?^Sjw-M41m)6niiXSm+M2H^VWk}v*$;d zKpq*Wu6c51A|e0z8N8f#u&oDBIkxMunJWmqTsN6(XljzfzbsD_#sUD9b^COZ3p>8{ z{F*^V)6>iBY}LQ1l{uV@FHgQF71O-CUONy0mhC7vS6g$dxBYCoGk0ZuD`9904}em? zhb0-_;XW9y&P?5E{pM)Z_5?-jMGr2Zkj%Y~C^eLY{w3`?9&spa3ex_Dl6m)IA`8BO)zu6;uZR$&?@+EH8T;An%bU za~l9k`u30!8+1m4qm@@Mf$q!D;c|aBcCmIqh`PtL(m%`tDnKM8D&QR>pw#Lh+ztf% zhP-yG^@hKa0z9Aq(71<&Qe|g24j|MH0OqXkXel)edXa&TARs_9YY+>gg7GgLKtm)7 zdA`MmJRodB<=PXFggH8mPfQs4;KV3L#|-hWNzO6pBqK2%Pvn-R3E@t_D1h5hHR)5OBjVuLlV3IKHv}thK0yi$86UDUpLFKhi7|xj55c@x#QRh_XRJqMQ&000| zH_$hb9s5BGwMRSif(^fk+SguZnc@J!vf^@A#f4uR{rfS3G$490ZY;;LScc8u&@uvC zZ&)ogDz%vZtf@i*GUS!09n1YVtcz0L#x7 z>OS-MpQps}SOHWkL(gE^ni2k+Wz|euP`$-Ou>W{09I~dS-OkC%Q`rkNAX7bKrM^A7 zukc}~<7PEWr;6iqg-8;AoTA{k^&z3jXV1>!s;f9S7hQ@&lpTK)Q$ z0U4D9)qTi7@k}-6bnbA3F9~#s%>@<2YD{pBGwPZ-n$eh!aAqtwvSGi70}8SR3Dlyj z7HUlwTAa2@$!^87>pD@EfqL}Smui0@y=edM)6>&n zeuc;NFX*{9)*rlf^Qkl1BIe`%!UZ%Urn6Lc%9%9FNp8x|H9}0dD3Jke_A3-M=^Wl} z=$7F_%ID`-1<$>@I?_HFa@fqrKb&;=PjzmT0`X<;->UOl;SbBi64UHm z)*&;*rm!PqeewxwOvifL7EkwAA#c)p5m=#rn?bRrCLNa7WQ<@O1;HW9aC2_FX)TXr zhXi81es}h8geMCFd6hwzfcMQYJ*3ecP7)JGg(xGm1V7RuF(T%*9*BU%&3LoweUjeg z2FaErmN`f*MXJST$`QQKqciCAkuzw5MBW_HuuF`3JD_wIz`gb$48~@Vt~DNros`Uk zj zAqHjY$GB_3KZ)>X3EK2YW;WF0fDS;)J}qTAq{xD#2iJguWs@zVZZsq`xZ;xhwH0nn zW9cE;h(QQd^Xx7jo^cVA!cz5m6s6~VytOpoO!&++Q$a26ox}s-fOP`br&6C`6!T-^KeP%j!Rh zdMyAXvx7Pxnha{DiwnI9Sy%XdUujCDLsin}P43Uq44}LI5$*4-_@wsi&X2!W`5F#B zNkRe1gS5GLenlcTog*1dBx!aYHKYIlCS>%#?hqU_ez_T^Wj>WCWc^YHPXq-hH9C8M zT5VjwhW7Tede6BsD4m6=Be?v@l8tL8Qb0hW$Efb8-_C;pIQ7B4qIcbVOgr<+{@FYh z8lZA+CmVvf@himtV(()1^Ys34d*H;03=qoL*s3|XE#$l1uv%_k+T8`8PST#+3p|rb z!T`yCmUA>$E}X#IZJntttO%-t&p!7%RaPfK6`YfEf`SK(UCe@yYyRtHKmZHGPLG>` zORS}(oH+W==u3Vi`&SZXSL5SYn(e$fq+xX%m<%NIEVNyS_q4tgZbQC=+mfy3*!hiibelJ&!$N>{tB801`Nx zZQ4H1&qukw?)2H92ZTOtY%OuFWiRma?;Rc1ga5Vkd8=~QXN#zhxd(v*c8laf+EEvnJ)cr@%ZqWgS|dU&A4p&uvaPL#~`<={2& z`1G~qLO~J@Nd5$R-v9MsOh{4Dlwzm*hw_k3giy|nZ_ zEkl?>_Fz+^-KhWFL>%EKK#9p%$MbF&-IofYLP~o4gWJiNV8;=MBs_pQ4Z({(4=^9f zbzT96Ss`q{uh`RRn8w z`(r7@{WCZqt&A+^l?`ZM%dtNtEhY-v)C_{)DAozk1rMnpC1zk4XYHzb8wz->DZ;%OPSjJuhh3PZ4g8>TaO&M$T$|9KNf-_-jG>PtT1l0?w7> zSg#Hhn3rE4UglpH^bgzXJIkkz=IUp>0=&e5VJuP69=KOnH?p_KjQlU8=Vo7{4JqXq zj4?W+bO5jwkygSDnPW1R0RM{ne@?1@hX4A&f__D8uj%v8@R~mVWitJ@2!)$au9+Eu z29)p{$mpjaP&H&&;{VLz|NO&D;yh@6KfJyizo_#P17I+urTKrhv;SP{|85^dR;L!3 z;sXJ--yul(fA3fRWA{_l#mX|Y<*UF5xE(58AA7QeftJl7R}^n%1kM&pb=C1tb64Uv zuLWPk8U-%X{?(iebgvi4pxzGt*_m8eupNgHl5W}gcTxWT$1wkd`u{!Rqt!=q5g@%? zBGjB!Y8H?;vU8p^fUarP9iu~kl?iE4schSA{10Q*s114cuh{lyK|o&pnbXb7ofBxj ztAhpR`0#LSIS?*mVd>RmcpFG4Xqf7x@R?-%2;*ZF3`NJbskQ(f5P?yl7VM5TsoEwwzOv#ploc$l=$u>o3(a2bQsf;}Az}cL%P#vL&Q_X!Eq%@%6MC z=-^fk9F|<+f5O8Dr7gfj5kkt`qKD`91mA79`+3i^?UCTF7eA}Fx%toK&x%A)LPKnc z%lGGkF}Z{7cQ{)?a21Qst7%>xxw#Vj-Zy-yPvb|g4IpH*>-mrXm`M49JZGxm?=2Xk zYVT6)J-bZEeQ$Jq=tnmYOXR`^2rc|2mzI!JFj;*}$!IcE=UMc)D%PkdF0A83#;%sH z(imRlhlU4a@EF6;1k*MK&`Y~cf-c?0r3xn!ybAeAOEfA<>nb>rLm_QWG6yKprG>b&7hNY=NvZ0=gC$@MmjnXoz1sR1r@;3E1O8jb!me}yquNImmL_G zKeB6of|Wj2y*fgS3;zAMrOnsQu)+$jDoe}H@4L6RCtJsDBo4V7eaOx!y7Dq$Yj;qu z_8%ByG+f6Vx z!Hl)A$}F?0XvT^=GS3j?<7f~|?DM8;sk19l95Pk;gZ82c;CEV@*uzGt4Tm?x6c>k0N+4))hOGaL|vrYv$H2 zAQ!S?RNrHN`2E>XTu#A2$W^%5t!t^*81DW{yC`6|f918W&o7-=U5&Sw!<>$sS!mgT zNmo^0pqJ+nnx>cgh4FAq6#bDg2}(USjm*>OrF#0fg&rZ6aHKd(ApK9&YI5~)MoM~_ zPDidp2PNtN3MNQ%E_#~a*&6QbJTd1X7d-ai(b4Vj#s99QDb8$bze$b45OUYqKTM4- zc-cWV6p=K*TE9E#;_7C;U5PwNZ2|<4^beN@aQkc;V$-*B)tQZr-Cv!6Yi9(fW)(@H z0CI>P3oX9RZgy+gWD74Nq%CfjV%YR8B>c9|QjlJA(t~@&7u|<5ES7L^QT^p3?JOuO z1P7FhSI6L>hyo~$KybxCZZmBhzoTZV;Qg;kJx_H8?VH$2tqaz@<6P55NCVwBOuf{! zl5@0lJT|2$nBA1kml_hqC|{@{>u#>-Wj-n`nKpw90hvT7K~p7;tUieqlJ=Hm^|Wj`)>qlVUg8XXb9!M=@d f1`ALHy`b;$+_L5?A`L?R_yMHF6~wAV41@j$g|pFP diff --git a/apps/lcars/bg_small.png b/apps/lcars/bg_small.png index e8407e471fcc6c21b7b8c4b8f8fc5d00b31708fd..8030c0ddbcee2266a654b613ecdbc108605b014b 100644 GIT binary patch delta 9842 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 DPaNRn diff --git a/apps/lcars/lcars.app.js b/apps/lcars/lcars.app.js index 6ce592f7a..d705b58e5 100644 --- a/apps/lcars/lcars.app.js +++ b/apps/lcars/lcars.app.js @@ -1,34 +1,44 @@ +const filename = "lcars.setting.json"; +const Storage = require("Storage"); +let settings = Storage.readJSON(filename,1) || { + alarm: -1, +}; + /* * Requirements and globals */ const locale = require('locale'); -var alarm = -1; -var hrmValue = "-"; -var backgroundImage = { +var backgroundImage = { width : 176, height : 151, bpp : 3, transparent : 2, - buffer : require("heatshrink").decompress(atob("AAdx48cATsAg88+fPAS5ACyVJkgCdyEAgPnz15AS4cBg6AeQcEBQDyDhQECDEDrUCNAtIgAA4iBKFuBB5QY1AIPLOGQfSADAQRA5Qf6D6g/gQf8H/iD/n//wCD9gP/IJCD2h5BB+CD/IJCD5/yD8jl/IIP/GoKD5n4/CAAeAQe8B//8QYkf+PAQew+BgaBD4AFB/CD1j47BIgRBCgFx/6D1//wgCDEQAU/8CD0/iGDAAYHBg4LCQeI1DQYjCD/+AQeRBDQY4IBIIOChEgAQaDqfYZBFBAZBBAGM/PQaDI+BB2IAiDDgZBygJ6EIIn8IOqDKIIscuPHAQdwINkHIJEfIIPnz15AQeAINT+CHwcPAYI1Bj4CBnnz54CDZ1UHPQKDDgEBQfBBF/CMCQYQCCQe/ABAX/+ALCQeR3BHAJBEQAU/8AFBQeL7B//HIgIIE+P/AoSDygF/QQJBEAwP4AoSDygEBQYgFBQYLLDQecAn59BAAn+BgaDzIIP8ZAX/48cuAMDQevggE48YyCvyD3gP/BAxBEQek4A40OQe4ANQegAMQf6D/AAccQf8Ak6DFyCD/QfcDQYueIPMAuaDE+fAIPMOQYoCb8kAgnTps0AS8AgKDFATkAg2atOmAS6EBhKD/AAMcQf4A/AH4A/AA0QuPHjgCdgEHnnz54CXIIWSpMkATuQgEB8+evICXDgKAfQcEJQDyDhNA7OCADMBgkQoICXgRoFpBAcADjpGuBB5iSDFoCD/QfaADAQRA5Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf4A/AH4A/AH4A/AFkYsOGAQdAIPPTps0AQaD6zVp0wCDsCD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf4AjjFhwwCDoBC6AH4A/AH4A/AH4AInnz54CD+BB58+evICDwCD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/ADMcQf8Ag6DFyCD/QfcDQYueIPMAuaDE+fHjlxATLrBDrUAgSDFATfkgEkyVJATEAgPHQYgCcQboABQf4ABhhfZAQyDc")) + buffer : require("heatshrink").decompress(atob("AAUEufPnnzATkAg4daIIXnz15ATvkwEDDrUAgPHQDyDghyAeQcNzJQ0cuPHATCDBDrUDJQ1AgAA3jjOF+BA4T4KDFyBB5Qf4ABQAaD9QAaD/QesH8CD/n/8Qf8//+AQfsB///GQ6D2h5BJQf6D7/yD8jl/IIIABjiD5n4/DAAWAQe8B//8QYfH//x4CD2HwMDQIf4AoP4Qesf/56BQYYFBuP/Qev//0AQYoKBn/gQecH/lwQwQADBYaDzGoZBHR4OAQehBKj5BBsuWrICDBAIAofYZBFBAZ6qIJJ6DQZBB3IAiDDgZBygJ6EIIn8IOqDKIIscuPHAQdwINkHIJEfIIPnz15AQeAINT+CHwcPAYI1BIIU8+fPAQbOqg56BQYcAgKD4IIv4RgSDCAQSD34AIC//wBYSDyO4P+IIoIB+E/8AFBQeL7B//HHYJKE+P/AoSDygF/QQJBF//4AoSDygEBQYgFBj/xZYaDzgE/PoIAE/wMDQeZBB/jICAAMcuAMDQevgQwR0CvyD3gP/BAxBEQek4A40OQe4ANQegAMQf6D/AAccQf8Ak6DFyCD/QfcDQYueIPMAuaDE+fBIPMOQYoCb8glB7dt2wCW2EAgKDFATkAg2atOmAS5eBhKDigyDZ2zHCjiD/AAMChEgwQCcQb4AiQb5BiQbscuPHATyDfyfPnnzATnwQbsBQD6DghKAeQcJoHiFBggCYQYVhdwQATgOmgVPNAnOECwAGQYIZXgM2dI1wIL2aoCDYibsF4CD/QcGYILGmyaDFwCD/QfaADQf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D4jCD/ADKDnILSD/Qf6DEHO6DJIP6D/Qf6D/QY8cuPHAQdAQfPz588AQeAQf8cuCD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6DqoCD5HO6DJIP6D/Qf6D/QY8cuPHAQdwE7sGzCDZ+fPngCDwBBe7aD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/QfcTQYvAQf6DgzVAQbECp6DE5yD5gCDFATqDCsOAIKtB00AhKDEATnwQYVt2wCXQwKDltOmAS6IC2aD82BBCQccaQbGAA==")) } -var iconPlanet = { +var iconEarth = { width : 50, height : 50, bpp : 3, transparent : 5, buffer : require("heatshrink").decompress(atob("23btoCD6PHjlx9oLGAQuGiVJkmSpIRK2lxEYQCDCJOGjEhEYNBwUI5drEw/xEYwCB8oRGDoMhwmSsAFBkGM237NZICGj15OgnaDoOGI4cgwUa5dv332EwdHEZACB8+evYRCtAdBEAQpDscs3379+9HAW8EZPHz158+WSQQjFwUYsMs2QjBEwPrSRZuCJQN5TAJuCEYkhwUS5cvJQRxCNxZKDOIXgJQkh0mYtMk2XLJQXv1u0EZSVDOIWsJQsSpMkyVJljgB9gmB7YjLOgtq4BKEsIjCAQNLlgCBt+9EZwCCj8sJQpxB00aJoYCB5cBEZ4CB+RKFJoeGjAjCoOGzBKaAQeGJQQFBwJKSsAjIcweSBwRKRjojKOgYFCxZKRtAaBjHrlm4FJUN3hKQi3ShAjB2XLAQQmI7dHJR97tsh9gjEAQLpHlu2+PnExvF23an3794mF2BKFm3btsevImMjwRB23v3wmB3xNF5BuDCIPb8+eEwOeExIRCtojCJo5uEEwRxBEwRuJHAdI+YmCTYlgJQIREtrjCEwLdHCIiYBhF7OgnJSQgmFjhxCOgiSDAQvSX4QmB90IkQRIX4gmCEZICDvwmCBY3QA")) } +var iconSaturn = { + width : 50, height : 50, bpp : 3, + transparent : 1, + buffer : require("heatshrink").decompress(atob("kmSpICMwARQwO+/ESCJ33798hIRMxO//fv3AjPvv34ARLyM/EYO+/+CCJe3EYXfuBKGkEAkB8Bm//EYImB4IRGsOmzVpwkfuEBgYmBggREkVNmnTAQPbgAyBx/+8AjFtIjCAQN/4ALBo/fgRWEhIjDAQO/6ESpH//CMFEYgCCsEJkd9LgmQkgjEAQX8gmP/BuEowjGAQOegP3gARDpGTEYwCBv0n/ESJQc6EY4CB/nfsRcEEZACB+f8ZYmREZGmzBuFyRuIAQMP/DLEpEaJRFh+8YLgkjJRMn8fALgnJJRPct+BJQhuJjfhn2ECIdONxUm/hKN6VPwnT9BKE9JuI+2at6VFJQ9In8Tpu8JQiVIw/ctOneQsiJQ0g/wFB76VFwJKGj9xAoN5SosEJQuD/oFBp/wCIlHJQqSB4wFB3+ACIdJj+JSQvkAoM3+SnFDoYmBoP3FgXesBcEp/4RgImBoO+AoXb9kJCIeR+8EOIVh+/aFIRuGn6bBoi2Bm/4FIV/mAREp/fuFJkFhWwR0C80ENwkb9+JkmQgn/OgnACIkkvpKBTAPfuOGTAaAEkmP/34gUA//+kgjCwARFye379944CB4EAsOEgARFyVG/fv3///+ABYgCGj5KBEYQRLklv3wmB/B6FAQy5BEYJxCCJRKC/4jNAQM/vvGCJy2BgARQA")) +} + +var iconUranus = { + width : 50, height : 50, bpp : 3, + transparent : 2, + buffer : require("heatshrink").decompress(atob("pMkyQEByQFCARcAhoXDARdAuP37gRNpENn37/kSExkh4+evv2hImMwnYts++A4Njl5+/f+GQPYZKIpu+/f/wEAwUIsp5BJRHfvv/hkw4cM2XLhkEEwuA6eP3/ggQjBy1ZtuWEw1AJQPcgAjDln/5ZNGkE2/cAhEgw1ZEwNf8uQTwprCoZKBEYImCAQKeFpAjCwUJJQQmCsmEHAhHCNwgjCn+yoRKEhEkSQMlEYYCBz/ZgI4DwcMuIjGAQPPtiYDLgIjIAQNv20CSoZHCmRuGlm/OIdIWwKSEAQpxBHAUgNwQjHOIWwVQWASQlb9ojDvft31YLgSSFnnyEYc82X/lhcCJQRoDJo39wC5FEAPzJQ0t+XCHALdCjJuHXgaDBJQxxH55KDXIMhEZACBvuQJQ4mIJTxEBJRSVCXg6VBJSEvJQbgFJQ++7ARBySVM2f7gIRBpDgEEw9f8mEJQMkgYmB57+BEw082ARCyEAy1J9+2Ew1v+1CJQVIJQUyEAgmC/3ICIVJkC8Crf9EANnFIS5BkIRCXhJuC/65CHAZxJr/lNwY4COIRuFO4OwiQRDOITjBkrdFy0CCIg4BcZPACIrjKoARHyVAiCYF4EJCI4CBgAmEpARKEwMAoZNBoARLJoUAAAILGkA")) +} + var iconGps = { width : 50, height : 50, bpp : 3, transparent : 2, buffer : require("heatshrink").decompress(atob("pMkyQCFpH0BAwCJv/6CJ8l589CJ0kyf//wIDpVEChM8+/fBAdZ8QRIp++///0gIBlMkxI4IuZKB+/SKAPHzpKJ/YkB//pKAP2BYeXhIFDx88+fPvqYBnibEkmUAofv34lC/RQBBYdcmPCXIYjBEwPfvnzJoILBQoUlHAUuJQYmCDodw48cuBKGTA0WEYIEBJQ6YEQwMMuImBJQyYEkmZFAVkyVSJQ6YCyUcmPDjgmBTAJKETAlJiS4ETANPJQpxCJQtxTALgBEwnfvohBI4NZkmWpNlcAgAD/wzBEYaYCy8cJQiYEyIjCTAWS3wlGTAVIEwkerJKFTAkmOIclToK8GAAIPBIgImCufHyxxG59pEIS8DvfypMr968HEwOHEwfx8+cEYkpCIeSoiYByVf/uSkmTEQP7ZIiYDnl5AQNwBYgCGyOn38k2+2pIRKyVeuPPj1x4ccCJVKSgP/5cJA4NSExMps+cSoMMKAIVCCg7SBpd7TANZkmUHBMevPnjlwcwXCCJFEzYDBA4WWKIIRHpEw4+eNwUxEwKYIkVJk1IyIKFHA+DR4VcJQYCBJRBoCkxHBAgNkyyYKkmXEYaYMAQMSEYKYNAQOHEwnSfBYjBAgVaCJdJJSMkTAK8KYQyVKAQ4jBNxiYEcBCYJXIkgA=")) } -var iconCompass = { - width : 50, height : 50, bpp : 3, - transparent : 2, - buffer : require("heatshrink").decompress(atob("pMkyQCDl//AAPSBYwCFv4RCAAOkCJNLCAgACCJm2rNn34FB+g1Jvny5cs2XPn///QRI9uWEYP2rNly5NHNYN82YjB/4mC5YmBOgkl//9y1bsuW/4CB/Nlz//9I4D3/8I4M8EAICB55NCL4g/BIgRKBAQtnL4lf+QdCI4YCD2Y4DSQPZtojHsuerI4Dv/flnzEZB3CHAJuB8ojIAQY4CNwJHI2XHTAY4B/4gJrGBAoSqBpf2EZMQmRxEv/5Nw9YyVCAoO+rf/0v/Nw/PjFB4ZxCn/+y7dBJQyNBkAIDz/6/7dBJQsYsMEhgsE//+7IjFsTYBwAIE/4ABEYs8uPEiFyF4gRBXIImEBAPSpAjDtuX//9+YmERgMcuODBAU9+xKCr68Ev4lBNwm//IJCnhxDDQPx4xuFJQhBDDQXwTwpKBSos8//HjlwYQyVG34aB2zCG//1Nw6SFAQTgD/JuD+wjFrbgCr/yMQI+B/lxEY08UgPpl4jCNwP+I4wCBUgOk3/8DoXxI44CBn/0yREDzx0EAQlndANJv4gJAQf3/VJkq8CJoZuGXIPpkg4BOIZuI5/9CII4BEZAmDNwIRBHAJxDNxH+CII4CSQW+NALgBtomBt5uCHAbjB2ZoCAQPyJQP/NwIRCkm//4gBIgP/SQn/CImSYALjDviSDQAYUDL4ImEEYYRGL4X/76PCI4P/SQYCFl4MBAAgRJEwYRPOgZrHpMgA")) -} - var iconAlarm = { width : 50, height : 50, bpp : 3, transparent : 1, @@ -54,11 +64,6 @@ Graphics.prototype.setFontAntonioSmall = function(scale) { g.setFontCustom(atob("AAAAAAAAAAAAAAAf4Mf/sYAMAAAAAAfgAfAAAAAfgAeAAAAAAiAAj8H/4fyEAv8f/gfiAAgAAAAD54H98eOPHn8Hz8AhwAAAP8Af+AYGAYCAf+AP8MAB8AHwA+AD4AfAAcf4A/8AwMAwMA/8Af4AAAAAwGD8f/8f8MY/cfz4PD8AHMAAAfAAeAAAAAAAAP/+f//YADAAAQABYADf//P/+AAAAAANAAPAAfwAfgAPAANAAAAAAEAAEAA/AA/AAEAAEAAAAAAZAAfAAYAAAAIAAIAAIAAIAAAAAAAAAMAAMAAAAAAAAEAB8Af4H+AfwAcAAAAAP/4f/8YAMf/8f/8H/wAAAAAAEAAMAAf/8f/8f/8AAAAAAAAAHgcfh8cH8YPMf8MPwEAAAAAAOB4eB8YYMY4Mf/8Pn4AAAAAgAHwA/wPwwf/8f/8AAwAAgAAAf54f58ZwMZwMY/8Qf4AAAAAAP/4f/8YYMYYMff8HP4AAAQAAYAAYD8Y/8f/AfgAcAAAAAAAAPv4f/8YYMY8Mf/8Pn4AAAAAAP94f98YGMcMMf/8H/wAAAAAABgwBgwAAAAAABgABg/Bg8AAAAEAAOAAbAA7gAxgBwwASAAbAAbAAbAAbAASAAAAAxwA5gAbAAPAAOAAAAPAAfHcYPcf8Af4AHgAAAAAAAB/gH/wOA4Y/MZ/sbAsbBkb/MZ/sOBsH/AAAAAAMAP8f/4fwwf4wH/8AH8AAMAAAf/8f/8YYMYYMf/8P/4ADgAAAP/4f/8YAMYAMfj8Pj4AAAAAAf/8f/8YAMYAMf/8P/4B/AAAAf/8f/8YMMYMMYIMAAAAAAf/8f/8YYAYYAYYAAAAAAAP/4f/8YAMYIMfP8Pv8AAAAAAf/8f/8AMAAMAf/8f/8f/8AAAAAAf/8f/8AAAAAAAD4AB8AAMf/8f/4f/gAAAAAAf/8f/8A+AD/gfj4eA8QAEAAAf/8f/8AAMAAMAAMAAAf/8f/8f8AB/wAB8AP8P/Af/8f/8AAAAAAf/8f/8HwAA+AAPwf/8f/8AAAAAAP/4f/8YAMYAMf/8P/4AAAAAAf/8f/8YGAYGAf8AP8ABAAAAAf/w//4wAYwAc//+f/yAAAAAAf/8f/8YMAYMAf/8f/8DA8CAAPj4fz8Y4MeeMfP8HD4YAAYAAf/8f/8YAAQAAAAAf/4f/8AAMAAMf/8f/4AAAYAAf4AP/4AP8AP8f/4fwAQAAYAAf8AP/8AD8D/8f8Af8AD/8AD8f/8f8AAAAQAEeB8P/4B/AP/4fA8QAEYAAfAAP4AB/8H/8fwAcAAAAMYD8Y/8f/MfwMcAMAAAf/+f//YADYADAAAAAAfAAf8AB/wAH8AAMQACYADf//f//AAAAA"), 32, atob("BAUHCAcTCAQFBQgGBAYFBggICAgICAgICAgEBQYGBggNCAgICAcHCAkECAgGCwkICAgIBwYICAwHBwYGBgY="), 18+(scale<<8)+(1<<16)); } -Graphics.prototype.setFontAntonioMedium = function(scale) { - // Actual height 20 (19 - 0) - g.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAA//mP/5gAAAAAAAAAAAAA/gAMAAAAAA/gAPAAAEIIBP+H/8D+IYBP+H/8D+IABCAAwIAfnwP8+PHh448eP3+B4fAAAAAAAH/AD/4AwGAMBgD/4Af8GAAPgAPgAfgAfAAfAA+AAOP/AH/4BgGAYBgH/4A/8AAAAAAAAAQAA/B+f4/+GMPhjv/4/h8Dg/gAcYwAAPwADgAAAAAAAAB//8///sAAaAACAAAMAAb//+f//AAAAAAAbAAGwAA4AA/wADgABsAAbAAAAAAAgAAMAAPwAD8AAMAADAAAAAAAAAAHAAB/AAOAAAAAAAAMAADAAAwAAMAACAAAAAAAAAABgAAYAAAAAAAAA4AD+AP+A/4A/gAOAAAAAAAAAH//j//8wADMAAz//8f/+AAAAAAAMAADAABgAA//+P//gAAAAAAAAAAAAAfgfP4fzAfswfDP/gx/gMAAAHgPj4D8wMDMHAz//8f3+AAEAAAAADwAH8APzA/AwP//j//4AAwAAAD/Hw/x+MwBjOAYz/+Mf/AAAAAAAH//j//8wYDMGAz9/8fP+AAcDAAAwAAMAfjB/4z/wP+AD4AAwAAAAOB/f4///MHAzBwM///H9/gAAAAAAH/Pj/78wGDMBgz//8f/+AAAAAAADhwA4cAAAAAAAAAAAAAADh/A4fgAAAAOAAHwABsAA7gAccAGDAAAAANgADYAA2AANgADYAA2AAAAAAAABgwAccADuAAbAAHwAA4AAAAHwAD8c4/POMHAD/wAfwAAAAAAAAD/wD//B4B4Y/HMf8zMBMyATMwczP+M4BzHwcgf+AA+AAAAAAD4A/+P/8D+DA/4wH/+AB/4AAeAAAAAAA//+P//jBgYwYGP//j//4PH4AAAAAAAf/+P//zgAcwADP4fz+P4Ph8AAAAAAA//+P//jAAYwAGPADj//4P/4AAAAAAA//+P//jBgYwYGMGBgAAAAAAP//j//4wYAMGADBgAAAAAAAA//w///PAHzAQM4MHP7/x+/8AAAAAAD//4//+AGAABgAAYAP//j//4AAAAAAAAAA//+P//gAAAAAAAAAAAHwAB+AABgAAY//+P//AAAAAAAAAAD//4//+APgAf+Afj8PgPjAAYAAAAAAD//4//+AABgAAYAAGAAAAAAA//+P//j/gAD/wAB/gAP4B/4P/AD//4//+AAAAAAAAAAP//j//4P4AAfwAA/g//+P//gAAAAAAAAAA//g//+PAHjAAY4AOP//h//wAAAAAAD//4//+MDADAwA4cAP/AB/gAAAAAAAA//g//+PAHjAAc4APv//5//yAAAAAAD//4//+MGADBgA48AP//h+f4AAAAAAB+Pw/z+MOBjBwY/P+Hx/AAHgwAAMAAD//4//+MAADAAAAAAP//D//4AAOAABgAA4//+P//AAAAwAAP8AD//AA/+AAfgP/4//gPwAAAAA+AAP/4Af/4AD+A//j/wA/wAD/+AA/4B/+P/+D+AAAAAMADj8P4P/4A/4B//w+A+MABgAAA4AAPwAB/gAB/+A//j/gA+AAMAAAAAYwB+MH/jf+Y/8GPwBjAAAAAAP//7//+wABsAAYAAAAAAPAAD/gAH/gAD/gAD4AACAAADAAGwABv//7//+AAAA=="), 32, atob("BQUHCAgVCQQFBQkHBQcFBwgICAgICAgICAgFBQcHBwgPCQkJCQcHCQoFCQkHDQoJCQkJCAYJCQ0ICAcGBwY="), 20+(scale<<8)+(1<<16)); -} - Graphics.prototype.setFontAntonioLarge = function(scale) { // Actual height 34 (34 - 1) g.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAAAAADwAAAAAeAAAAADwAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAD+AAAAH/wAAAP/+AAAf/+AAA//8AAB//4AAD//wAAD//gAAAf/AAAAD+AAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAB////gA/////AP////8D/////wfAAAA+DwAAADweAAAAeDwAAADwf////+D/////wP////8Af///+AAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAOAAAAADwAAAAAeAAAAAHgAAAAB/////wf////+D/////wf////+D/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAPwH/4AP+B//AH/wf/4D/+D4AB/9weAAf4ODwAP8BweAP/AOD///gBwP//wAOA//4ABwB/4AAOAAAAAAAAAAAAAAAAAAAAB8AA/gA/gAH/AP8AA/8D/gAH/wfAHAA+DwA4ADweAHgAeDwB8ADwf7/+H+D/////gP/9//8A//H/+AA/AH/AAAAAAAAAAAAAAAAAABwAAAAD+AAAAD/wAAAH/+AAAH/5wAAH/wOAAP/gBwAP/gAOAD/////wf////+D/////wf////+AAAABwAAAAAOAAAAABwAAAAAAAAAAAAAAAAAAeAD//4D/Af//Af8D//4D/wf//Af+DwPAADweB4AAeDwPAADweB///+DwP///weA///8DwD//+AAAA/8AAAAAAAAAAAAAAAAAAAAAA////AA/////AP////8D/////wfgPAB+DwB4ADweAOAAeDwBwADwf+PAA+D/x///wP+H//8A/wf//AAAA//gAAAAAAAAAAAAADgAAAAAeAAAAADwAAAAAeAAAD+DwAAP/weAA//+DwA///weB///8Dx//8AAf//wAAD//gAAAf/AAAAD/AAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAD/wf/wB//v//AP////8D/////weAPwAeDwA8ADwcAHAAeDwB8ADwf////+D/////wP/9//8A//H//AA/AD/AAAAAAAAAAAAAAAAAAAAAD//gfAA///D/AP//8f8D///j/weAA8A+DwADgDweAAcAeDwAHgDwf////+B/////gP////8Af///+AAP//4AAAAAAAAAAAAAAAAAAAAAAD4AfAAAfAD4AAD4AfAAAfAD4AAD4AfAAAAAAAAAAAAAA=="), 46, atob("Cg4QEBAQEBAQEBAQCQ=="), 39+(scale<<8)+(1<<16)); @@ -72,46 +77,43 @@ function queueDraw() { if (drawTimeout) clearTimeout(drawTimeout); drawTimeout = setTimeout(function() { drawTimeout = undefined; - draw(true); + draw(); }, 60000 - (Date.now() % 60000)); } -function draw(queue){ +function draw(){ + + // First handle alarm to show this correctly afterwards + handleAlarm(); + + // Next draw the watch face g.reset(); g.clearRect(0, 24, g.getWidth(), g.getHeight()); // Draw background image g.drawImage(backgroundImage, 0, 24); - // Draw raster - // g.drawLine(112, 100, 112, 165); - for(var x=1; x<7; x++){ - g.drawLine(110+x*10, 100, 110+x*10, 160); - } - - for(var y=0; y<6; y++){ - g.drawLine(113, 105+y*10, 175, 105+y*10); - } - // Draw symbol var bat = E.getBattery(); + var timeInMinutes = getCurrentTimeInMinutes(); var iconImg = - alarm >= 0 ? iconAlarm : + isAlarmEnabled() ? iconAlarm : Bangle.isCharging() ? iconCharging : bat < 30 ? iconNoBattery : Bangle.isGPSOn() ? iconGps : - Bangle.isCompassOn() ? iconCompass : - iconPlanet; - g.drawImage(iconImg, 120, 107); + timeInMinutes % 3 == 0 ? iconUranus : + timeInMinutes % 3 == 1 ? iconSaturn : + iconEarth; + g.drawImage(iconImg, 115, 115); // Alarm within symbol + g.setFontAlign(0,0,0); g.setFontAntonioSmall(); - if(alarm > 0){ - g.setFontAlign(0,0,0); - g.drawString(alarm, 120+25, 107+25); - g.setFontAlign(-1,-1,0); + g.drawString("STATUS", 115+25, 102); + if(isAlarmEnabled() > 0){ + g.drawString(getAlarmMinutes(), 115+25, 115+25); } // Write time @@ -130,25 +132,22 @@ function draw(queue){ g.drawString(day, 100, 35); g.drawString(dayName, 100, 55); - // HRM - g.setFontAntonioMedium(); - g.setFontAlign(-1,-1,0); - g.drawString("HRM:", 25, 98); - g.drawString(hrmValue, 64, 98); + // Draw battery + g.drawString("BAT:", 25, 98); + g.drawString(bat+ "%", 62, 98); // Draw steps var steps = getSteps(); g.drawString("STEP:", 25, 121); - g.drawString(steps, 64, 121); + g.drawString(steps, 62, 121); - // Draw battery - g.drawString("BAT:", 25, 144); - g.drawString(bat+ "%", 64, 144); + // Temperature + g.setFontAlign(-1,-1,0); + g.drawString("TEMP:", 25, 144); + g.drawString(Math.floor(E.getTemperature()) + "C", 62, 144); // Queue draw in one minute - if(queue){ - queueDraw(); - } + queueDraw(); } /* @@ -169,49 +168,45 @@ function stepsWidget() { return undefined; } -/* - * HRM - */ -Bangle.on('HRM',function(hrm) { - hrmValue = hrm.bpm; -}); /* * Handle alarm */ -var alarmTimeout; -function queueAlarm() { - if (alarmTimeout) clearTimeout(alarmTimeout); - alarmTimeout = setTimeout(function() { - alarmTimeout = undefined; - handleAlarm(); - }, 60000 - (Date.now() % 60000)); +function getCurrentTimeInMinutes(){ + return Math.floor(Date.now() / (1000*60)); +} + +function isAlarmEnabled(){ + return settings.alarm > 0; +} + +function getAlarmMinutes(){ + var currentTime = getCurrentTimeInMinutes(); + return settings.alarm - currentTime; } function handleAlarm(){ + if(!isAlarmEnabled()){ + return; + } - // Check each minute - if(alarm > 0){ - alarm--; - queueAlarm(); - } + if(getAlarmMinutes() > 0){ + return; + } - // After n minutes, inform the user - if(alarm == 0){ - alarm = -1; + // Alarm + var t = 300; + Bangle.buzz(t, 1) + .then(() => new Promise(resolve => setTimeout(resolve, t))) + .then(() => Bangle.buzz(t, 1)) + .then(() => new Promise(resolve => setTimeout(resolve, t))) + .then(() => Bangle.buzz(t, 1)) + .then(() => new Promise(resolve => setTimeout(resolve, t))) + .then(() => Bangle.buzz(t, 1)); - var t = 300; - Bangle.buzz(t, 1) - .then(() => new Promise(resolve => setTimeout(resolve, t))) - .then(() => Bangle.buzz(t, 1)) - .then(() => new Promise(resolve => setTimeout(resolve, t))) - .then(() => Bangle.buzz(t, 1)) - .then(() => new Promise(resolve => setTimeout(resolve, t))) - .then(() => Bangle.buzz(t, 1)); - } - - // Update UI - draw(false); + // Update alarm state to disabled + settings.alarm = -1; + Storage.writeJSON(filename, settings); } @@ -221,19 +216,27 @@ function handleAlarm(){ Bangle.on('swipe',function(dir) { // Increase alarm if(dir == -1){ - alarm = alarm < 0 ? 0 : alarm; - alarm += 5; - queueAlarm(); + if(isAlarmEnabled()){ + settings.alarm += 5; + } else { + settings.alarm = getCurrentTimeInMinutes() + 5; + } } // Decrease alarm if(dir == +1){ - alarm -= 5; - alarm = alarm <= 0 ? -1 : alarm; + if(isAlarmEnabled() && (settings.alarm-5 > getCurrentTimeInMinutes())){ + settings.alarm -= 5; + } else { + settings.alarm = -1; + } } // Update UI - draw(false); + draw(); + + // Update alarm state + Storage.writeJSON(filename, settings); }); @@ -242,7 +245,7 @@ Bangle.on('swipe',function(dir) { */ Bangle.on('lcdPower',on=>{ if (on) { - draw(true); // draw immediately, queue redraw + draw(); // draw immediately, queue redraw } else { // stop draw timer if (drawTimeout) clearTimeout(drawTimeout); drawTimeout = undefined; @@ -257,7 +260,7 @@ Bangle.loadWidgets(); // Clear the screen once, at startup and draw clock g.setTheme({bg:"#000",fg:"#fff",dark:true}).clear(); -draw(true); +draw(); // After drawing the watch face, we can draw the widgets Bangle.drawWidgets(); \ No newline at end of file diff --git a/apps/lcars/screenshot.png b/apps/lcars/screenshot.png index 02ac5c706488f0cb3b2fbe865f8f52691471c7f0..61f6835436f8accbaa464d63d7bc0b6e21f0dc0e 100644 GIT binary patch literal 26670 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 JPDHLkV1mx~&vXC) literal 26858 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 Date: Thu, 25 Nov 2021 18:49:44 +0100 Subject: [PATCH 05/66] Real icons - its an image of the real planet :) --- apps/lcars/lcars.app.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/apps/lcars/lcars.app.js b/apps/lcars/lcars.app.js index d705b58e5..f3a110491 100644 --- a/apps/lcars/lcars.app.js +++ b/apps/lcars/lcars.app.js @@ -17,20 +17,25 @@ var backgroundImage = { var iconEarth = { width : 50, height : 50, bpp : 3, - transparent : 5, - buffer : require("heatshrink").decompress(atob("23btoCD6PHjlx9oLGAQuGiVJkmSpIRK2lxEYQCDCJOGjEhEYNBwUI5drEw/xEYwCB8oRGDoMhwmSsAFBkGM237NZICGj15OgnaDoOGI4cgwUa5dv332EwdHEZACB8+evYRCtAdBEAQpDscs3379+9HAW8EZPHz158+WSQQjFwUYsMs2QjBEwPrSRZuCJQN5TAJuCEYkhwUS5cvJQRxCNxZKDOIXgJQkh0mYtMk2XLJQXv1u0EZSVDOIWsJQsSpMkyVJljgB9gmB7YjLOgtq4BKEsIjCAQNLlgCBt+9EZwCCj8sJQpxB00aJoYCB5cBEZ4CB+RKFJoeGjAjCoOGzBKaAQeGJQQFBwJKSsAjIcweSBwRKRjojKOgYFCxZKRtAaBjHrlm4FJUN3hKQi3ShAjB2XLAQQmI7dHJR97tsh9gjEAQLpHlu2+PnExvF23an3794mF2BKFm3btsevImMjwRB23v3wmB3xNF5BuDCIPb8+eEwOeExIRCtojCJo5uEEwRxBEwRuJHAdI+YmCTYlgJQIREtrjCEwLdHCIiYBhF7OgnJSQgmFjhxCOgiSDAQvSX4QmB90IkQRIX4gmCEZICDvwmCBY3QA")) + buffer : require("heatshrink").decompress(atob("AFtx48ECBsDwU5k/yhARLjgjBjlzAQMQEZcIkOP/fn31IEZgCBnlz58cEpM4geugEgwU/8+WNZJHDuHHvgmBCQ8goEOnVgJoMnyV58mACItHI4X8uAFBuVHnnz4BuGxk4////Egz3IkmWvPgNw8f/prB//BghTC+AjE7848eMjNnzySBwUJkmf/BuGuPDAQIjBiPHhhTCSQnjMo0ITANJn44Dg8MuFBggCCiFBcAJ0Bv5xEh+ITo2OhHkyf/OIQdBWwVHhgjBNwUE+fP/5EEgePMoYLBhMgyVJk/+BQQdC688I4XxOIc8v//NAvr+QEBj/5NwKVBy1/QYUciPBhk1EAJrC+KeC489QYaMBgU/8BNB9+ChEjz1Jkn/QYMBDQIgCcYTCCiP/nlzJQmenMAgV4//uy/9wRaB/1J8iVCcAfHjt9TYYICnhKCgRKBw159/v//r927OIeeoASBDQccvv3791KYVDBYPLJQeCnPnz//AAP6ocEjEkXgMgJQtz79fLAP8KYkccAcJ8Gf/f/xu/cAMQ4eP5MlyQRCMolx40YsOGBAPfnnzU4KVDpKMBvz8Dh0/8me7IICgkxJQXPIgZTD58sEgcJk+eNoONnFBhk4/5uB/pcDg5KD+4mEv4CBXISVDhEn31/8/+mH7x//JQK5CAAMB4JBCnnxJQf/+fJEgkAa4L+CAQOOjMn/1bXIRxDJQXx58f//Hhlz/88EgsChMgz/Zs/+nfkyV/8huDOI6SD498NwoACi1Z8+S/Plz17/+QCI7jC+ZxBmfPnojIAAMDcYWSp//2wRJEwq2GABECjMgNYwAmA=")) } var iconSaturn = { width : 50, height : 50, bpp : 3, transparent : 1, - buffer : require("heatshrink").decompress(atob("kmSpICMwARQwO+/ESCJ33798hIRMxO//fv3AjPvv34ARLyM/EYO+/+CCJe3EYXfuBKGkEAkB8Bm//EYImB4IRGsOmzVpwkfuEBgYmBggREkVNmnTAQPbgAyBx/+8AjFtIjCAQN/4ALBo/fgRWEhIjDAQO/6ESpH//CMFEYgCCsEJkd9LgmQkgjEAQX8gmP/BuEowjGAQOegP3gARDpGTEYwCBv0n/ESJQc6EY4CB/nfsRcEEZACB+f8ZYmREZGmzBuFyRuIAQMP/DLEpEaJRFh+8YLgkjJRMn8fALgnJJRPct+BJQhuJjfhn2ECIdONxUm/hKN6VPwnT9BKE9JuI+2at6VFJQ9In8Tpu8JQiVIw/ctOneQsiJQ0g/wFB76VFwJKGj9xAoN5SosEJQuD/oFBp/wCIlHJQqSB4wFB3+ACIdJj+JSQvkAoM3+SnFDoYmBoP3FgXesBcEp/4RgImBoO+AoXb9kJCIeR+8EOIVh+/aFIRuGn6bBoi2Bm/4FIV/mAREp/fuFJkFhWwR0C80ENwkb9+JkmQgn/OgnACIkkvpKBTAPfuOGTAaAEkmP/34gUA//+kgjCwARFye379944CB4EAsOEgARFyVG/fv3///+ABYgCGj5KBEYQRLklv3wmB/B6FAQy5BEYJxCCJRKC/4jNAQM/vvGCJy2BgARQA")) + buffer : require("heatshrink").decompress(atob("AH4A/AEkQuPHCJ0ChEAwARNjAjBjgjOhs06Q2OEYVx4ARMhEggUMkANIDoIgBoEEgEBNxJEC6ZrBAAMwNxAjDNYcHNxIjB7dtEwIHBwRoKj158+cuPEjlwCRAjC23bpu0wRNDAAsHEYWeEwaSJ6YjCAQUNSRQjEzxQBWZMNEYlsmg2JWAIjCz95SoJuJggjDtuw6dMG5JKCz998wFBJRVNEYW0yaVBJRNhJQN9+4pCzhKJmBKC4YpB/fINxIgCzFxSoQ3J4ENm3CAQPb98wbpEcAQMYWwKYBNxMDXgc2/fv3g2IEAOAgAjBjy5CEhEMfYICBgfPnjdLjj+CgMHiC3JknDhhoINw4jCAB0IJQIANR4QjPAH4A/AFA")) } -var iconUranus = { +var iconMoon = { width : 50, height : 50, bpp : 3, - transparent : 2, - buffer : require("heatshrink").decompress(atob("pMkyQEByQFCARcAhoXDARdAuP37gRNpENn37/kSExkh4+evv2hImMwnYts++A4Njl5+/f+GQPYZKIpu+/f/wEAwUIsp5BJRHfvv/hkw4cM2XLhkEEwuA6eP3/ggQjBy1ZtuWEw1AJQPcgAjDln/5ZNGkE2/cAhEgw1ZEwNf8uQTwprCoZKBEYImCAQKeFpAjCwUJJQQmCsmEHAhHCNwgjCn+yoRKEhEkSQMlEYYCBz/ZgI4DwcMuIjGAQPPtiYDLgIjIAQNv20CSoZHCmRuGlm/OIdIWwKSEAQpxBHAUgNwQjHOIWwVQWASQlb9ojDvft31YLgSSFnnyEYc82X/lhcCJQRoDJo39wC5FEAPzJQ0t+XCHALdCjJuHXgaDBJQxxH55KDXIMhEZACBvuQJQ4mIJTxEBJRSVCXg6VBJSEvJQbgFJQ++7ARBySVM2f7gIRBpDgEEw9f8mEJQMkgYmB57+BEw082ARCyEAy1J9+2Ew1v+1CJQVIJQUyEAgmC/3ICIVJkC8Crf9EANnFIS5BkIRCXhJuC/65CHAZxJr/lNwY4COIRuFO4OwiQRDOITjBkrdFy0CCIg4BcZPACIrjKoARHyVAiCYF4EJCI4CBgAmEpARKEwMAoZNBoARLJoUAAAILGkA")) + transparent : 1, + buffer : require("heatshrink").decompress(atob("AH4AQjlx44CCCZsg8eOkHDwAQKEYgmPhEgEQM48AOIgMHEYoCB4ATI8UAmH/x04JoRuJsImHuBKLn37EwZuIgEQOI8cEpXj/yYBhE8+YNGgkYoJxITBUPnAaC///nC+FjBuIOJZEB8YeCh/8AoYACoMEEAnEjhQDPQJKJ/DCDAoi5DoLdHAoMQgLjFWYPOnngh02IwXzwDjEgPGEYS8BI4MBYoSVG4fP/nghkAgZrDkngJQqSG4gvBg4sBQgkImHihEAWwP8ZBMBEYl5/+cSoVAGQIUFh04weJn///0gj/OEw5KEz45BzhuCTYQAEgePB4IACAoJuBnAQEa4XHjxKB//xFgWHJQsCRgMDEonipwjENwUBDQNx8+evvn/hTDLw3igE+EgZxB8UOXIvEJQUfEYOfv53DEQkgga5BJQvzx84cAj+CDoNh8/eEYJKDuCSEcocnEon+/7xEgFBIIcfB4Mf/IICXI2DgDdBAAn758gCIq5Dv4zBvJuIOIfjEgvP/ARHgwdCB4P3AoTdFAAk4EYk8SQgAFTALaDSQwAGh08//vnDmBABYmEEZYAzA==")) +} + +var iconMars = { + width : 50, height : 50, bpp : 3, + transparent : 1, + buffer : require("heatshrink").decompress(atob("AH4ATjlwCJ+Dh0wwAQMg0cuPHjFhCZkDps0yVJkmQCBMEjFx42atOmzQmLhMkEYQCCCREQoOGEYmmzB0IEY4CBkARGoJKBEYQCEzgSGkGSpAjDyYCCphuGiFhJQgCD8ASFgRHGAQKbB6BuHJRGeOIsINxEk6dNmARDgMEjQjHAQPnVQojIyZKB6YSDNwK5FAQt54BuDXJIjBEwK5EgxKKXgq5BJRdgXIojJAQJKMcAM0EwM2JUApDoCVFExa7FkGCgAmIkAREEwUEjAmHCIgABhEggQmFpACBCIojBEwRQCzVhwkQU4YADgQmBwQCCI4IFBCAojFAQojGJQQjDAQgRGEZICBEo4gFyUIkilFJQUYEAZrBAQMYNw5KDSQSbCNwwABgOGEwgCBsPACQ5xGwdNnARJcAVh48evvnCJK8Chs+/fv33gCRcB48cuPHCBYA/ADAA==")) } var iconGps = { @@ -103,8 +108,9 @@ function draw(){ Bangle.isCharging() ? iconCharging : bat < 30 ? iconNoBattery : Bangle.isGPSOn() ? iconGps : - timeInMinutes % 3 == 0 ? iconUranus : - timeInMinutes % 3 == 1 ? iconSaturn : + timeInMinutes % 4 == 0 ? iconSaturn : + timeInMinutes % 4 == 1 ? iconMars : + timeInMinutes % 4 == 2 ? iconMoon : iconEarth; g.drawImage(iconImg, 115, 115); From 93e2a88a4c42968ab7260a3b56ef0e3a477cf47f Mon Sep 17 00:00:00 2001 From: David Peer Date: Thu, 25 Nov 2021 18:51:20 +0100 Subject: [PATCH 06/66] Updated screenshot --- apps/lcars/screenshot.png | Bin 26670 -> 26993 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/lcars/screenshot.png b/apps/lcars/screenshot.png index 61f6835436f8accbaa464d63d7bc0b6e21f0dc0e..70db639ebf28b9df978e731ee731fda5a5e61e3a 100644 GIT binary patch literal 26993 zcmV)0K+eC3P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U>nrmfc3SW&4j-+$O+a70?{3Fh=&^H9zOH;L;d@9{tX^FP;hJ?Tif-sLIf5Lk zEy4kKaG$`tgI~_b0l3{)hSI{D;^1`u)E1e&6+Z zyOs(oTD~M|FLwBL8-5V6N^xIS_*MCx`MU0355MlSor5i(=Rh_)Uq9huk>4YvFhdJ( zSo_Zr29KDobyfbnuE9q6y*t+HxkhxKlE1=x)%e88u3d3l>xhwWU*Df4?9YAn=Z$dl z$usbySKwxWOaA4rioI^OT=eq9tIUi;VdEMP{LWS ztA@Zj-fU3g$*-8M&JKi}ugODRDaLXg^|~)Vn`>&=KYQh?Tz(td#75*;Vr6fh*x0O; zGV)W?jSRIMbILiFT=RY8C$|zyD!G(Wi$<>1SX0fl)LQTQ)ON=^-T5wez3=blpn+Ka5c@l9`j%Uj?3ectwc*S>c355NA#u7$5%yY^1`bM^bK z@!g}=Z?_1VlkA?cV^<37cy$L5=*vAj?~u~v&bepjbDYu7rQp~b7Sw=M+;rkGopR``?}k4-A$*~ z{^_6pf4x!fEv+Zk-sWogoNOOvJEr&Q+uLKCk9)k=7`0#bYDxdy*4xwb-m$kk&)j3` z?U@S)@(jSr^|Ik*%^2p5K(JBe%~!gQ&~vKSYL)*W`FYNF#6C|xZiYTEHM61#S1#-( zLS3I#o~t~F2Dj(gc%;QGkCm?ajyJ{aqbheQeL^|>e9c4wh&%jp;If@Uj zl8+Jc74I5f7Aa+Xb#~t53}9P~-uA zIp1+x2^8u=&mX>(>e=lqRlHM#L}=Y&e>^)`b|b3h|xknF)P*Ukn?M(6BE2U@P-R>1xeb3=HT% z2gj}RUTdtC<7jBsgY4iv^l>dGUV{xx6EGS^FSD~XQArptuw(H-sB~-bso{+ZMqBx* z>v}5oA%|So9HEz%Qt!`GuXG?^v-gV?e6Bge@RP!|xc%J{y59mX!m>;@Yz3q(ji*1k zo}(|U*cuqT6`p#uE4(Y@C4i|&V9B8`kYt^sBOp8oU#%A6I`282l;_(<0*sWA`+f1{ zee%_Nu$4Rp5N4h23GBlAAnDi5!(2caq^Oi0u)w_i5}O1;dqLhK78p5+4T6+R|e!p7ItD0uvKATM!&9ztskFD*2H1YHU%6@_kYEH<4JE`>xr1k|8D<(xBq{A z`+*S!vwEec<#OZF>kG~n={;apTu;E@;xxA;3`iYr6DauxKpXZQONL?nvf}BUVOwz> zz=ah*_=zzWaB*?zgRAJQ^}8;tIGz{##*MCuL#(}k4B7-pjw+E!6`5LX28`}lEqe84}ThH;M zC-`fQV3ig!@MuCH?p9FPtIu^T_vOovv!QKmbq0~Ig*Ioj`L5%605kA<7?mgn_Xv_Z z0|K-HV1-XC#}vf@maqb>%c!M^&{;q>vG*@v7}fF{ZD2<}+6Ia$(4H@c``5fba`cn;PxU{v0>?Kq@K3G4@y!hUQ!8+MGXwwB3LM|ez&~{Y z$2TwVPo2Q=%?tcfCvbf80{_$r{CE5RyZ!&~ZvSGtQ;z}u4^KTI_a}cz_wZX0R-L57 z^~7}NJmSeKLrw6t*wpkG(rPIjtT5jTc!N6(yyRg0p4_49kY#@MY9oLQPNNN8G@z<2 zN_?Tme8RmQLk|bHzYwvj8`ipwk{NG^h$l-HaO!}I$a8HO9C$Dcyzj&&;r98s4h3(c z9-+0HhXI822o&Lt1zA;oy+Ol;lqp|hC38hkEe;l%k4~^8 z^F|;ambC*dR_8K)GQb)ogArebTTNvE81y;i4bR{exZ`yIelAu4rD0#51p9oAcg%W5 zfYF5_yog2#i18KYn6iGUaha$CfQf&q4W4=+-CMF-N01tj2t1MB`QZIP9lgHUKp8L2 zisjt;3iCyMn~Yo0Mk3PFYdj*j=|(C5Ri{3BAynsh)=ITaLvyjdC)>E=5BUv3Jys#I zJVsfbD?A3jLH;?Fid4;Y4RGh`BbuRjg<`>9|o$UW<(c+dVgH8{)jfLh09&*BiBu*p<0n7CD2Xz{3Lr zePdft@0&Lr>%9(D8k2bgV2z5QFIU7+#ae0@h&w3jn(<065bHjR4&dU`kgKjnEH(+l zo5}%BcN@+p+~dtBIQ$GRuN6{80R#8GGm2FJ<)~ROf>RnR0OpH4-U9DjTmB428|w$&aiYJ2lQ;CWU2%k#V%HEjEXF^#>!*FfHH<%3F}?OxA~$>34i zg{(B>nO*DyxQ^fe$440}Mq{OK;AJyvD5^g5Y6nVTygG47R#NY0rnF_Xr>A7h(F;h< z5v%@=lV?U(kUuOYpPkUcl{u}4o(KX)}TZ6;G-6JZ`yb6-L z{XeE?-s8e8JWs|=!r^XS4xE8TBa8K_ttK|H)B_E~wz4yb_zhECn2|7}UNXVTaK1SA zh5d?1utCM}UXX;kc8IhA1!{q?_Jh~MEG+os%mr&VUtH~cHFg=RqLr$w-GgNsCz?MK z)^@!JhXG%V8Mi{|2HKBZMe6XqITSYHeK6=eLR21BDyGp&Z1ByJpK$Z2?fi1Oq0FOP znfqs4h#rsa$34JTSq8iP~o(G@-Ap&whaXxZqX_7p4yI zifuo$VHe&Qto@X?VbsP2QqIQ01|oT~M%Z#xG~H0*9^)~9#gEh*X9da&m|u7C4BLp~ ze9o#x^x-~vq!&$%TIz@(-797w^LgC|=)Zs>06Rb{w(80IKM8Y_>Z)}#f9%=dhz$bu z;Wk@Zc<=o5$n)Uau>;4=X0dK;VU57`XM!nlRzN5;;W0o{lozcmJK9?*tOHaDZK~eOw zP^i|&sUPj4&DQfmN7So z=Xzg6UO57D2tHrQ6Gr!)n6I>*6OJK+YA|Xn=>ToKR}R<9kAiCeUf5Pl!hmX?xa$B{*g6;Xr+5Kt2b{6A&fE+OH*f{Qk;x>lE7o03!&-gXo z>TUbk;7k|A1pZhz8yAz1l?6C2b3t8kSQ z0i9q|oChG6he((oJWj`q;PG(Opi#8ha+r1c`aG6lO}zH&rWrWIh43nk{VflCqi?Z- zc7s?74D!Te-zquuVn*p2kZ*w0aWXYSSp~2_Og5rH5}=X+Z@pks?<2y%6|I?v+kdZ@ z>#gpQR-*00$9834u-H?9D1yXWgC)Vvh~&ekL)W1K^4T3>uRuJs6Iq0JVV?07Kml3V zjCThkCCp~k!D7MFC>yw7JjNs08MT@RLj{g5Oa(XPbIzN$exGg%6zNzLMEF*9y}GOUMZ-%A$2xm!J{aD-uPa*8o7iR~l%{tS=T8D&8@d>?p95m(7T= z22#t-e&J~`CQyiR0?{CR5cIC&28TpJ8#;OI=fUq_MRmxnw5QEocLF-?a2lL)eU2yV zwN8u>pawI(qY?`?h9?Fb0afsVbAcp-P6-qr!BrBY0;gq*SeJ~X9vO!cl(M2deqiyu zbeOOu+!`RY<6H5o3y$>M2=CHnh)4R6S8{D&8=9E!apj@*o}8W7S%ZL7Q$5F zjn{w>XCtaW9$XTLvS72Za4>4@K{#ABb_;d_b}k#9Kf$~*U*VUUI%q)}Ysnt4_}VK( z@!CJZ-hZxHM}o(q@7i6L>)!wTVkx-+20#W@_!>fF?Ee+#bH^%g6gEo)P&s%%|I|j@ zms_b=_Xiozhhy`~n7=p35qiUq87=^V10F!PH}-k3T2LQf4OIn&f~TQq5qo#>14y;u zl!ax0;3l@W7zh#w1DtqajQT*2H{W4R5*`2^?n3wpidfqeuqyGj z1Oa#x*gIf8ue7o}w*uJ?o}I0180brq=0ZO8!R&7kKVR?|KK;?Jcku3MLI9id%HrS> z;yzH@xG-$s^0!vu%~FzAp+hEU&&J}@EQ?fhwTIXG z!qDS3Vg(b5(05=VJn6ZvQqVPch{WKQA-@TasBr|GvHt}D$D5$Z9X_qhMB{8B1AT#F z&sEhupf9R?um&jR-~%HLr%tdeU=aR`9yNS@1eaKn_kbkc4m!b2VsWx@Jj^g;Jjzn% zfkvW_>r9Y-^x?*&oEi+w#$uCrg16tstg?_6^{nQMqL`HjP%~fSSNRZmH{2Hze&e}s z{QE|O7!80Z0J9A^~DvJ>ZCwWs|5RF#)aq` zf%bUHgi{z6mqoM)90K@*9Gv(W08!aVDA4zq{9?&wn2>b58Si^STO#NSEI-Tyf)p)k z948`jpU*fims!OwFuo(o6-|P59{~cEuEP89wjxge6;OS(QzM7^bV;~hL1p4ky!MdT z{!3o_Ntl&rSOCwBst2~c-vB4TeiH&Ab~PYBco979OuQIS*GLVj49vl*Xy$pS7rTuM zz_kPeucN^cE--5Dpg~?)LxiB8as7scuYFV;{ndX1bxIK?Br(efYILo z>hTpl=Sp;KE%sR+SWhTlNsuKxz-c56lfblKo`2s5i$9-f1^FeuX)cJ2H1S-v?EWm-~fO%vqY}LjADe6 zqLOzh3%hchR~1553lEYqiGsqFpxLDvAWu2<2^wkEl*@ao9U-xN9OZBH?D&zNnI8Bx zo-CT$8*dKzKk@6VA+!;O!|Mu~J9PcUd&2;i`FV^R?&{uP@*9-=0+Q$XGn6!3`voO8 zkUU-kNWX`XUm((|h~Ho&=IBp=b*k<+almdW8YN9yYvZ$!2)6yuYrTXg(eWuB{5wFERM-q z0Lxm?g0s*kaMt4I`XHKkHFyHJX2N1KuxVUw=j2*oBIpR#&Qjt=?!&;`HF)%JoT=))_{qNVl%5! zLh7|IKwyM`G&?~+IjOW%OiDdh=|=_dMsq3P3Ty;c7u<^#hCM>Vk@jSP@ww|^llqFQ zyqE5b9Xz*1$rkr)QwzE+ADaa81QesjA(<|TNt$IG^AXu?9pUL(yCPUMZ-FnDrOz)< z1WK4%v{1LfV>h?B<@szv)3j&a-U1iw)r$xQG(IMb!3Zq+BW63|lks8?2tWx6C*<-? z{Khj}tOjJfCO#;_c|mITm4W{Y${I< zwo4F#3GLtc41ZzopfNZ?z);BV!S9r@_FNmSpF(7=f{Oq}L+$beGqc5Ev7fLajEj{= zfPg$+L+c2K5qX{nv1T1I#-O9}C$0@Q1~rIq3q2Ty1kRkQ`NX!0Oy3F~wh91%)IoP~ z!9u?ht@Xit%W;67)}JFRGXdO?0GX7v+g<8>4$crQo9?~dER`!CwL7PhBKdI9Iq1T?sI-%fo+yeeFPZV9l>K)4%9%IR3Q3VfQ!8xRcYj zff^Y0gM0r)VEXuDWcpiR8g~j8<9qA0J+gzTF=8Fymu(r@{RGO=Cp3M0k4-Nm@b5J< z@D(po@S%XTL$wgc;+h2LHj{2o^~lqZ{q=sTjliF%-(xGwumTi1-#YFNgM^NE-#kU?S4a^J4fiS`JQ{LBt97#rI6Jg*>{2O#O!c2W-X@HvdOp z(JQ>|C0AvcG926-yS#FKaM69U#<&IK0THx>>V`o+RfayA2z_D&Q`z_twqI{d6;1$x zVvPs7Dvm%J*a~E`SIsFFc%d$^qa_EeXPt&D4J4R|IV+^X78|f-kW8Y;*nsg`u!5ko zXeU0j+9eVOn|fSE`_o&H)%UuMjh^`{MUO2pg!|eY5sI-ft8FZ6UACWG#SMZsLGT{K z&}J(E;MmM+G#0Fy@n;jgeF3`-pKg~8_n9~mEZ%x!Sr=S=vfu#Ff$%)zP<2nkm^EpO z%Lf}_y>Vjq=&-&x1uT-%FKpo|sY-7MDOosn7mC$8y0A1u7MD$vZ(o7k7lL&4C}0`|aBq8IZr(%%iL zpl|55xpK^r5hs)Sk6@JTo1cK5seO$8+>XZTw~Pk??866HYV5)c*8`2$tFa~-<3HoV z%Rl$AA3>^t8JQONt_LB!kY^h^FF3%8r**Hlfq#80mbFDuB|i@5H{Ds|d0;@dA%zK` z4iJ^ISe6XyiBJuo!bcDa>$YB*g_3P4A5a#pfN}?%QQ=0~)a-pQV8aq@j4cSo1VC@g znw51ySAl0pg-Ko>)RN=J(6#M?C;krynF4Q`>-EJsKa$gJ2k{wV5oE zqzxPYjK-@}(WddbWYMLXiI-T4b1=R7?8*f84xSK4!i9n*+4*T)8ZtVj#gK?AE=J#o zkApZg;0`DUxP3!rT#IA=)Lyt=?~4it3p7AT4HdhOb7BsUor`hjnjyCKW; z0or^v$QDG37@=>^iU%Nf7UU2xJ0tXZ82f+WfCV`1)|hc^O%;oZs@&cj6OIqr7k2(K!r7c=nu!s%+mjbr_elAg=DRr|U9G zS8=Z><1Qx#guzS&))0qUg0T~mK$9<>9AWJM4C4Yi;0!`I5{`<0HZ;F1EMwCE0&8~{ zbddbX10-W$-IS7EaDs}mX5kKelszCjT4QM_h-E&O+>G)<5@f12vos5rv5C-g9sp_J zqp(ic?{0d1t)NL9qrUa&#|>3`zF%u)G1q2`4RKq=c3Q7BLVj9%&H845>BF_`Uj7s` zp60UAd+ZYUjyJ|f*&_;Smanlx1reyaUrah|>@+5gl(+0Q-nQCY%BY20pb=ydE6me# z^@-0yT?z{cqPrqj%f2iaLuCOhCZ1p`Xa0&?W}t%AD;-Y@;0ME0QuKKXMI+QDKMpZUD9SM^<>jroA$nR>1U0jwUf-kMLq>{;4yp}yv* z^S#@SSi^8&HBcl>Ay~r1(OK9{yQP;+z~XjfIDV`hRKB+tC}HjP1BXV)ON)|54c35N88FBpgY;@(ndltYaa+pGMK5L(Q_!t^7DT6E z(qIR;EGj|wEo|8F!w~`O789+M09A>{zfBRO-3au#x|uiFSDT0vsCc!S(=bc$&Iyny z_0!-Dn)K?2MJiTdRTEd5Tzp8jpm+9q;qTJgrLfjH!i6u}eom>)^*#qeVJ7+9j~mfP zRVY@QhHl;MzUqd}RiE3cbqoVCv0HgDOioPjq60$%9NMk9mWF?90(x+NOhN!Yq9y}= z$fvS)NuYzE?WP3>Jk0o-#8bQ-u1D$~1YInP-r-|Ad zT(M_5n9>6g2%bLhqHBjM4Ip^6p*X>2z~?-Mo-BkLNC(0WJbk#D4dUvZW;h=a zQI2RNm-WyO2#J5JQMnX{Yhf`!c0qez*fY04%FCVC{SSBWGl|#X_4*ueKQX9_D^`%0A;2nDme<@4SRQ6~RNe>i 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 JPDHLkV1mx~&vXC) From dcee49cdc89867584d140d3cc318b7dabbf930b9 Mon Sep 17 00:00:00 2001 From: David Peer Date: Thu, 25 Nov 2021 19:01:22 +0100 Subject: [PATCH 07/66] New GPS Icon --- apps/lcars/icon.png | Bin 0 -> 3687 bytes apps/lcars/lcars.app.js | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 apps/lcars/icon.png diff --git a/apps/lcars/icon.png b/apps/lcars/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6c3564ec3593ad66d93cfbd267f2208618f030c7 GIT binary patch literal 3687 zcmV-t4w&(YP)EX>4Tx04R}tkv&MmKpe$iQ$?v25j&_jWT;LSL`5C73Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4RLxj8AiNQwVT3N2ziIPS;0dyl(!fKV+m&1xG1G~G56 zv8b3zuZkV7=)wScF^z!CEMrcR;%GU(?&0I>U4&<~KKJM7Rx=g@d?N8IGfbO!gLrDw zHaPDShge=#iO-2gO}ZfQBi9v=-#F)77IZPWeL0 zW0mt3XRTOf^?ULc1~dA~GS_JiA%;aPL4pVcWfV|^jR>teDHam6A8p|ubo~;!6mk{7 z$gzMDG{~+W{11M2Yh@?Ky`*3iXn%2>k71x=7pPSn=lj@kYA1mI8Mx9L{!$f~`6Rv4 z(85PR&o*#z-O!Xh;Bp7(e==lKb|pVeA)5u>&*+=dK;JD8So3eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{01Q7#L_t(&-rbsMkX+Su$A5Qu@Acl(Goz8vNFxaYT39?T z+Y+EaSWJS6AebV-GE0bKoZzx4vC0O4K!hbMF2$gLu~?GWl@AnUT$PYYL1LCTqLK<= zHVJG=NJ7$#Ml;>h-LKz%Z$30q5gBZg$i>L#!~1aGa?Zc*`QQ6L=RWvtF=Nc|p^jmE ze0*3oo6SRhGAfk{+I8JS7Qi*%y4RUZil2_-IFyd#9Fia|zxIK}4Q9L+TW@WerszX0 zwZ3xs%>~)FaJ5mn>*7uu*Yn;gm&@o{t#-(OSb5h|r#2$@yVhn$8WW?G!kT1$y>N|1f^gHQi$uK(~$x|xyz7Hcw0)azRLhkQ5yI z!!u7g`cI_q`@hi`ue|cgnGdgDf9AE?Rl9zh?P)bBAV52xH8!l=78>4PebxmmX`Q`sHtq_nbO&aOQ%c*#nVM zcHPc*-+czbpvjWw?!NoJp8k_Jtr^6={;Shq$P zq?pWLk)61{^_F$3&%NvYK9eLF7C{gU=kxi42IT6C&-uenWAw>-ZVu9`&{uQmsa0vW z+N5blmZr=e8f4b2*%S&zCML$&viWUXH%Dx99DdZN*fyR~=$*|G{f22(O&BI@e5W~@y?blY<}ZeYJCHovt&NSLaw`73Bl3xr}gdLmHX1VHQe}t>qQub z2Nj47Ci2?R_`Xkne-Eu@lZlBsV`FmOdfZsT54*t~TsaTId?`R9|*7YM@;Aq4xj2Wu@#X}RS1 zB_|)~b8>PL-D<34(xfr9z`VL9tZATF_dflmb`+eE&C6vtPYt{mI+M z&4XleVcMR++Hr)=GuaHNRx9|O2*2Ir#SI(ipEj-Qyjmd$I&9kXGvXv->CzLaR4Vws zPcE11YAKbF&lk{I6Gah?MxAo0SUAvs6h-{M$Ug75^9m=O_tiW1c-3#%{BBefV6=yj z8ca$jQq+2T3Bm+yN|vSg?G|Zjk&|mAq4xX*Bv`{;CU{kQjuLdcfRxsD`mCHuO;JG zef!D5+~9%-i+zVJOM(s{aJ)QWvyK3iO_)*3lji%7N}-e{jXiq$21tXU&);_41=p`J5N7-*$W58 z7lt9fvS7dQ(f|BPW&ZK6JB8{pAte?NT~B0bjIoAXsfxAWcsY_d?kd`L9R#?gfkoe1 zdG)Nd_kC~sVFSI3dn)B0)OveKl9;)3=aJ9n3Br&l3JJpi-)|FzAyF8TrYZS+p7{$F zFn7*eq>vAPSe!b3&+&ow=WBlOiT+tfuCERraf+0RxZ{HbuTUZm+6chO<&i>?W*J$y zkAsGw)1p*6j4Vr$P7Y`K;!}X{|K%NPUj;5&d(W-6H^#?Kn>H|Gp6jZM`g&^vJ=H44 zLXsq1lDjTSDUu|?aU2ST+{C{>_x#!qiq-Qxbh%vqUxPpX$*cOQSN2?2opt0YshoTg zhqzt=r5&s_m^8(t30|oOOiI{lAe6)+NYjWkNh$Tb*9S-wkP<81Mep~q;+h-Z1l|N# zeZv*k_4f8W(o^fX#Pz|d{V_3~0{(l`bz%5jKVb)?d0H{VS#A&^RekQi%F%Ar*0Ar3tD_+rxTi!dr{mK`0GE z5Vh;K-hTDjH+@v4@X6s5zW2r(|Fx;7R=dDj8;|TBdEzslIq4_A&byxHA>Mj>>zR*l zl>ek$PbOi2kdiF!N(JS5XeUP&hvW)ngpi~`3&$&fP*{^@5|Q6+Y&%|#PGfJk$LF~3X(5BP7Mn&RS!?u+j~m2( zUAC`gpBx{%r#mPCi%ApWu!DAU2(8gxo~YBt7)uuU&%5=v7O%YExM!w9-`Mj!&ut!m?~ZTX0wT`*Sov^npIbX z;pF(kvERZiR`yG3w@@VR_}CXgHqLIz_Y1cz4 z)$M%m>*RHs&*{-kpZcr6_}!N%rQ3VC479#8CA2Vj$^(cHH2tlR%|@eRL!`Vuph4@^DJ`{18yRzLb5 zfA_W3j}38%*!cMPaQAYEn=xise$+0?RJ7lQKb-d4{{ZQX$|w<3Tp0iW002ovPDHLk FV1lysJCy(c literal 0 HcmV?d00001 diff --git a/apps/lcars/lcars.app.js b/apps/lcars/lcars.app.js index f3a110491..05bffc919 100644 --- a/apps/lcars/lcars.app.js +++ b/apps/lcars/lcars.app.js @@ -38,10 +38,10 @@ var iconMars = { buffer : require("heatshrink").decompress(atob("AH4ATjlwCJ+Dh0wwAQMg0cuPHjFhCZkDps0yVJkmQCBMEjFx42atOmzQmLhMkEYQCCCREQoOGEYmmzB0IEY4CBkARGoJKBEYQCEzgSGkGSpAjDyYCCphuGiFhJQgCD8ASFgRHGAQKbB6BuHJRGeOIsINxEk6dNmARDgMEjQjHAQPnVQojIyZKB6YSDNwK5FAQt54BuDXJIjBEwK5EgxKKXgq5BJRdgXIojJAQJKMcAM0EwM2JUApDoCVFExa7FkGCgAmIkAREEwUEjAmHCIgABhEggQmFpACBCIojBEwRQCzVhwkQU4YADgQmBwQCCI4IFBCAojFAQojGJQQjDAQgRGEZICBEo4gFyUIkilFJQUYEAZrBAQMYNw5KDSQSbCNwwABgOGEwgCBsPACQ5xGwdNnARJcAVh48evvnCJK8Chs+/fv33gCRcB48cuPHCBYA/ADAA==")) } -var iconGps = { +var iconSatellite = { width : 50, height : 50, bpp : 3, transparent : 2, - buffer : require("heatshrink").decompress(atob("pMkyQCFpH0BAwCJv/6CJ8l589CJ0kyf//wIDpVEChM8+/fBAdZ8QRIp++///0gIBlMkxI4IuZKB+/SKAPHzpKJ/YkB//pKAP2BYeXhIFDx88+fPvqYBnibEkmUAofv34lC/RQBBYdcmPCXIYjBEwPfvnzJoILBQoUlHAUuJQYmCDodw48cuBKGTA0WEYIEBJQ6YEQwMMuImBJQyYEkmZFAVkyVSJQ6YCyUcmPDjgmBTAJKETAlJiS4ETANPJQpxCJQtxTALgBEwnfvohBI4NZkmWpNlcAgAD/wzBEYaYCy8cJQiYEyIjCTAWS3wlGTAVIEwkerJKFTAkmOIclToK8GAAIPBIgImCufHyxxG59pEIS8DvfypMr968HEwOHEwfx8+cEYkpCIeSoiYByVf/uSkmTEQP7ZIiYDnl5AQNwBYgCGyOn38k2+2pIRKyVeuPPj1x4ccCJVKSgP/5cJA4NSExMps+cSoMMKAIVCCg7SBpd7TANZkmUHBMevPnjlwcwXCCJFEzYDBA4WWKIIRHpEw4+eNwUxEwKYIkVJk1IyIKFHA+DR4VcJQYCBJRBoCkxHBAgNkyyYKkmXEYaYMAQMSEYKYNAQOHEwnSfBYjBAgVaCJdJJSMkTAK8KYQyVKAQ4jBNxiYEcBCYJXIkgA=")) + buffer : require("heatshrink").decompress(atob("pMkyQC/ATGXhIRPyNl0gmPjlwCJ9ly1aCJ1c+fHJR1Hy1ZJR1I+fPnlx6QRLpe+/JKBr5KMuYjBJQMdCJce/fvJQW0CJUlEYQCBSpvvJQbXJjl0NwnzNxGQwEOnHhgF78+WqQyIrFx48cAQXz4ShJgAABh0+8cP//9LJEhg4jDuP3//0LhGQgYlBgeAn///5cIy8MuAmDCIP/9I4HkmCEYMOgHfCQWkCI0cuBuDgF/CIP+CI1Ny1IkeAgHANwIAB/QRFrj7BhkxEwQRC/4RFpbXDgSVBg4RCSorXDI4MJAQMfCIP8cwImDn37fwN58+kwHgLgSVFub7CI4NyBAJKDLgkuEYX78+evKtCLg0jEYRKC58JMoRcFkwjDJQTFDl65EkojEAQMdcwn/+gFC3YjEJQLXEpYRDWwQmEdI6SHAQO0CJUkx4jDF4gCIJQgRMXIjCEARIjCCJ2XEYPKCJqJBJQIROcAUpCJ0kybaDARtdCKAC2kAA=")) } var iconAlarm = { @@ -107,7 +107,7 @@ function draw(){ isAlarmEnabled() ? iconAlarm : Bangle.isCharging() ? iconCharging : bat < 30 ? iconNoBattery : - Bangle.isGPSOn() ? iconGps : + Bangle.isGPSOn() ? iconSatellite : timeInMinutes % 4 == 0 ? iconSaturn : timeInMinutes % 4 == 1 ? iconMars : timeInMinutes % 4 == 2 ? iconMoon : From 95f845ad4e9408081b9ecf882ad85012bbb4bc7d Mon Sep 17 00:00:00 2001 From: David Peer Date: Thu, 25 Nov 2021 19:10:05 +0100 Subject: [PATCH 08/66] New icon for alarm --- apps/lcars/icon.png | Bin 3687 -> 0 bytes apps/lcars/lcars.app.js | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 apps/lcars/icon.png diff --git a/apps/lcars/icon.png b/apps/lcars/icon.png deleted file mode 100644 index 6c3564ec3593ad66d93cfbd267f2208618f030c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3687 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 FV1lysJCy(c diff --git a/apps/lcars/lcars.app.js b/apps/lcars/lcars.app.js index 05bffc919..bdbff70e6 100644 --- a/apps/lcars/lcars.app.js +++ b/apps/lcars/lcars.app.js @@ -58,8 +58,8 @@ var iconCharging = { var iconNoBattery = { width : 50, height : 50, bpp : 3, - transparent : 2, - buffer : require("heatshrink").decompress(atob("pMkyQCoycMmHDhgLEqVECg1Bw0YsOGBAdKpMSEwwjCmHCBAYDBHA4jCjFpBAUpkmJJR0lkmRL49Fy1ZsuWBAWkyQRGxcs2XLAQe0ymSNw9t23bAQnSyVICI1IEYoCBqSAIkwjF7dupMiQA5KH/KSIJQ+5SRBKH2fkSRBKH8iSHJRHPSRBKIH4PSCJBKFn1JhYRIJQqSBkdtJRscSQLgBJRliAwONcAJKM9MkyAFBJRm/AwM2AoJKMUgNCFIJKM7A8BOgRKMmVJg8MJRqSBAwMGJRqSBzVpJRu5kmTpMhJRmz8mQ2emJRqABm3cyK/BJRWPSQUauRKMSQVmpFbJRdSpMLOIODX4JKJpVJkYgB+gCBJRQDBEAQCDJREpkmNEAQCDJQ8lkmQEYpKJ0mScAIjEJRGUyVEcAJKNSQLgBJRqSBiVIJRqSBkTgBJRoDBAIJKNSQOJAoJKN0mRAoJKOyQFCSp4CikAA=")) + transparent : 1, + buffer : require("heatshrink").decompress(atob("kmSpIC/AWMyoQIFsmECJFJhMmA4QXByVICIwODAQ4RRFIQGD5JVLkIGDzJqMyAGDph8MiRKGyApEAoZKFyYIDQwMkSQNkQZABBhIIOOJRuEL5gRIAUKACVQMhmUSNYNDQYJTBBwYFByGTkOE5FJWYNMknCAQKYCiaSCpmGochDoSYBhMwTAZrChILBhmEzKPBF4ImBTAREBDoMmEwJVDoYjBycJFgWEJQRuLJQ1kmQCCjJlCBYbjCagaDBwyDBmBuBF4TjJAUQKINBChCDQxZBcZIIQF4NIgEAgKSDiQmEVQKMBoARBAAMCSQLLBVoxqKL4gaCChVCNwoRKOIo4CJIgABBoSMHpIRFgDdJOIJUBCAUJRgJuEAQb+DIIgRIAX4C/ASOQA")) } // Font to use: From 2818a63e2c6d3116001eca6e0ddf852825dfdd55 Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 12:48:36 -0600 Subject: [PATCH 09/66] Create README.md --- apps/fd6fdetect/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/fd6fdetect/README.md diff --git a/apps/fd6fdetect/README.md b/apps/fd6fdetect/README.md new file mode 100644 index 000000000..77b0ca1dd --- /dev/null +++ b/apps/fd6fdetect/README.md @@ -0,0 +1 @@ +![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143489902-14f1b54b-b311-4ec9-bcf1-60107b24ce84.png) From 9f002934015e4bacc43a652703418d9c8ad7c29e Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 12:50:35 -0600 Subject: [PATCH 10/66] Update README.md --- apps/fd6fdetect/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/fd6fdetect/README.md b/apps/fd6fdetect/README.md index 77b0ca1dd..42172c9d5 100644 --- a/apps/fd6fdetect/README.md +++ b/apps/fd6fdetect/README.md @@ -1 +1,2 @@ ![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143489902-14f1b54b-b311-4ec9-bcf1-60107b24ce84.png) +An app dedicated to letting you know how many Exposure Notification beacons are near you. From f5940b5bdbc0fc3118544821b6508f78f10a59f1 Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 12:52:27 -0600 Subject: [PATCH 11/66] Update README.md --- apps/fd6fdetect/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/fd6fdetect/README.md b/apps/fd6fdetect/README.md index 42172c9d5..ebb40989b 100644 --- a/apps/fd6fdetect/README.md +++ b/apps/fd6fdetect/README.md @@ -1,2 +1,2 @@ -![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143489902-14f1b54b-b311-4ec9-bcf1-60107b24ce84.png) +# ![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143489902-14f1b54b-b311-4ec9-bcf1-60107b24ce84.png) An app dedicated to letting you know how many Exposure Notification beacons are near you. From 6482297881ddfeef3202ae235e1e4a38f1826f9b Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 12:53:16 -0600 Subject: [PATCH 12/66] Update ChangeLog --- apps/fd6fdetect/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/fd6fdetect/ChangeLog b/apps/fd6fdetect/ChangeLog index 3c82c3ca7..b85df5ace 100644 --- a/apps/fd6fdetect/ChangeLog +++ b/apps/fd6fdetect/ChangeLog @@ -1 +1,2 @@ 0.1: Added source code +0.2: Added a README file From 85b7115c731479ede76db6c659a071f9390dd352 Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 12:54:33 -0600 Subject: [PATCH 13/66] Update README.md --- apps/fd6fdetect/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/fd6fdetect/README.md b/apps/fd6fdetect/README.md index ebb40989b..4d3bfb2bf 100644 --- a/apps/fd6fdetect/README.md +++ b/apps/fd6fdetect/README.md @@ -1,2 +1,2 @@ -# ![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143489902-14f1b54b-b311-4ec9-bcf1-60107b24ce84.png) +# ![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143490430-980b1cf3-1de7-4ad3-9ff9-e3d31a67e215.png) An app dedicated to letting you know how many Exposure Notification beacons are near you. From 6508ed8b3fc99d0a39fb460a47f7d989c6f3eb7b Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 12:57:25 -0600 Subject: [PATCH 14/66] Update apps.json --- apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps.json b/apps.json index 25093a5a3..ec24146b5 100644 --- a/apps.json +++ b/apps.json @@ -3988,6 +3988,7 @@ "description": "Allows you to see 0xFD6F beacons near you.", "icon": "app.png", "tags": "tool", + "readme": "README.md", "supports": ["BANGLEJS"], "storage": [ {"name":"fd6fdetect.app.js","url":"app.js"}, From 4fb4d12ba48dee2869338cf1d4e4675e18a0d86a Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 13:00:28 -0600 Subject: [PATCH 15/66] Update README.md --- apps/fd6fdetect/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/fd6fdetect/README.md b/apps/fd6fdetect/README.md index 4d3bfb2bf..7e926aac7 100644 --- a/apps/fd6fdetect/README.md +++ b/apps/fd6fdetect/README.md @@ -1,2 +1,2 @@ -# ![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143490430-980b1cf3-1de7-4ad3-9ff9-e3d31a67e215.png) +![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143490833-a88e4666-dcca-4613-bcee-bb2a33af67c0.png) An app dedicated to letting you know how many Exposure Notification beacons are near you. From 4cfbe11e45690f31e3010b7234a26e3ec3695dff Mon Sep 17 00:00:00 2001 From: David Peer Date: Thu, 25 Nov 2021 20:00:36 +0100 Subject: [PATCH 16/66] Show text for each icon. --- apps/lcars/lcars.app.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/lcars/lcars.app.js b/apps/lcars/lcars.app.js index bdbff70e6..9b7244ece 100644 --- a/apps/lcars/lcars.app.js +++ b/apps/lcars/lcars.app.js @@ -16,47 +16,55 @@ var backgroundImage = { } var iconEarth = { + text: "EARTH", width : 50, height : 50, bpp : 3, buffer : require("heatshrink").decompress(atob("AFtx48ECBsDwU5k/yhARLjgjBjlzAQMQEZcIkOP/fn31IEZgCBnlz58cEpM4geugEgwU/8+WNZJHDuHHvgmBCQ8goEOnVgJoMnyV58mACItHI4X8uAFBuVHnnz4BuGxk4////Egz3IkmWvPgNw8f/prB//BghTC+AjE7848eMjNnzySBwUJkmf/BuGuPDAQIjBiPHhhTCSQnjMo0ITANJn44Dg8MuFBggCCiFBcAJ0Bv5xEh+ITo2OhHkyf/OIQdBWwVHhgjBNwUE+fP/5EEgePMoYLBhMgyVJk/+BQQdC688I4XxOIc8v//NAvr+QEBj/5NwKVBy1/QYUciPBhk1EAJrC+KeC489QYaMBgU/8BNB9+ChEjz1Jkn/QYMBDQIgCcYTCCiP/nlzJQmenMAgV4//uy/9wRaB/1J8iVCcAfHjt9TYYICnhKCgRKBw159/v//r927OIeeoASBDQccvv3791KYVDBYPLJQeCnPnz//AAP6ocEjEkXgMgJQtz79fLAP8KYkccAcJ8Gf/f/xu/cAMQ4eP5MlyQRCMolx40YsOGBAPfnnzU4KVDpKMBvz8Dh0/8me7IICgkxJQXPIgZTD58sEgcJk+eNoONnFBhk4/5uB/pcDg5KD+4mEv4CBXISVDhEn31/8/+mH7x//JQK5CAAMB4JBCnnxJQf/+fJEgkAa4L+CAQOOjMn/1bXIRxDJQXx58f//Hhlz/88EgsChMgz/Zs/+nfkyV/8huDOI6SD498NwoACi1Z8+S/Plz17/+QCI7jC+ZxBmfPnojIAAMDcYWSp//2wRJEwq2GABECjMgNYwAmA=")) } var iconSaturn = { + text: "SATURN", width : 50, height : 50, bpp : 3, transparent : 1, buffer : require("heatshrink").decompress(atob("AH4A/AEkQuPHCJ0ChEAwARNjAjBjgjOhs06Q2OEYVx4ARMhEggUMkANIDoIgBoEEgEBNxJEC6ZrBAAMwNxAjDNYcHNxIjB7dtEwIHBwRoKj158+cuPEjlwCRAjC23bpu0wRNDAAsHEYWeEwaSJ6YjCAQUNSRQjEzxQBWZMNEYlsmg2JWAIjCz95SoJuJggjDtuw6dMG5JKCz998wFBJRVNEYW0yaVBJRNhJQN9+4pCzhKJmBKC4YpB/fINxIgCzFxSoQ3J4ENm3CAQPb98wbpEcAQMYWwKYBNxMDXgc2/fv3g2IEAOAgAjBjy5CEhEMfYICBgfPnjdLjj+CgMHiC3JknDhhoINw4jCAB0IJQIANR4QjPAH4A/AFA")) } var iconMoon = { + text: "MOON", width : 50, height : 50, bpp : 3, transparent : 1, buffer : require("heatshrink").decompress(atob("AH4AQjlx44CCCZsg8eOkHDwAQKEYgmPhEgEQM48AOIgMHEYoCB4ATI8UAmH/x04JoRuJsImHuBKLn37EwZuIgEQOI8cEpXj/yYBhE8+YNGgkYoJxITBUPnAaC///nC+FjBuIOJZEB8YeCh/8AoYACoMEEAnEjhQDPQJKJ/DCDAoi5DoLdHAoMQgLjFWYPOnngh02IwXzwDjEgPGEYS8BI4MBYoSVG4fP/nghkAgZrDkngJQqSG4gvBg4sBQgkImHihEAWwP8ZBMBEYl5/+cSoVAGQIUFh04weJn///0gj/OEw5KEz45BzhuCTYQAEgePB4IACAoJuBnAQEa4XHjxKB//xFgWHJQsCRgMDEonipwjENwUBDQNx8+evvn/hTDLw3igE+EgZxB8UOXIvEJQUfEYOfv53DEQkgga5BJQvzx84cAj+CDoNh8/eEYJKDuCSEcocnEon+/7xEgFBIIcfB4Mf/IICXI2DgDdBAAn758gCIq5Dv4zBvJuIOIfjEgvP/ARHgwdCB4P3AoTdFAAk4EYk8SQgAFTALaDSQwAGh08//vnDmBABYmEEZYAzA==")) } var iconMars = { + text: "MARS", width : 50, height : 50, bpp : 3, transparent : 1, buffer : require("heatshrink").decompress(atob("AH4ATjlwCJ+Dh0wwAQMg0cuPHjFhCZkDps0yVJkmQCBMEjFx42atOmzQmLhMkEYQCCCREQoOGEYmmzB0IEY4CBkARGoJKBEYQCEzgSGkGSpAjDyYCCphuGiFhJQgCD8ASFgRHGAQKbB6BuHJRGeOIsINxEk6dNmARDgMEjQjHAQPnVQojIyZKB6YSDNwK5FAQt54BuDXJIjBEwK5EgxKKXgq5BJRdgXIojJAQJKMcAM0EwM2JUApDoCVFExa7FkGCgAmIkAREEwUEjAmHCIgABhEggQmFpACBCIojBEwRQCzVhwkQU4YADgQmBwQCCI4IFBCAojFAQojGJQQjDAQgRGEZICBEo4gFyUIkilFJQUYEAZrBAQMYNw5KDSQSbCNwwABgOGEwgCBsPACQ5xGwdNnARJcAVh48evvnCJK8Chs+/fv33gCRcB48cuPHCBYA/ADAA==")) } var iconSatellite = { + text: "GPS ON", width : 50, height : 50, bpp : 3, transparent : 2, buffer : require("heatshrink").decompress(atob("pMkyQC/ATGXhIRPyNl0gmPjlwCJ9ly1aCJ1c+fHJR1Hy1ZJR1I+fPnlx6QRLpe+/JKBr5KMuYjBJQMdCJce/fvJQW0CJUlEYQCBSpvvJQbXJjl0NwnzNxGQwEOnHhgF78+WqQyIrFx48cAQXz4ShJgAABh0+8cP//9LJEhg4jDuP3//0LhGQgYlBgeAn///5cIy8MuAmDCIP/9I4HkmCEYMOgHfCQWkCI0cuBuDgF/CIP+CI1Ny1IkeAgHANwIAB/QRFrj7BhkxEwQRC/4RFpbXDgSVBg4RCSorXDI4MJAQMfCIP8cwImDn37fwN58+kwHgLgSVFub7CI4NyBAJKDLgkuEYX78+evKtCLg0jEYRKC58JMoRcFkwjDJQTFDl65EkojEAQMdcwn/+gFC3YjEJQLXEpYRDWwQmEdI6SHAQO0CJUkx4jDF4gCIJQgRMXIjCEARIjCCJ2XEYPKCJqJBJQIROcAUpCJ0kybaDARtdCKAC2kAA=")) } var iconAlarm = { + text: "TIMER", width : 50, height : 50, bpp : 3, transparent : 1, buffer : require("heatshrink").decompress(atob("kmSpICEp//BAwCJn/+CJ8k//5CKAABCJs8uPH//x48EI5YjCAARNKEYUcv//jgFBExEnEYoAC+QmHIgIgC/gpCuPBCI2fIgU4AQXjA4P8CIuTEYZKBAolwHApXBEAWP//jxwpBAALaFDoYCIiQmDDIP4EAT+CEwnJEwYjLAQLaFEYomDKALmDNwoCIOIZuD8AkFgCYDHAQjMAQTdDNwOAEg0Dx0/cYeREZtxQYOTHgJuHOIvkXJy8DNwIACJQ8Ah4NDAAfxEZARHOIIkHg4jQAQb1CQ4KVJgEOnDIBSoIjNAQPBcAaVJcAKVBcDGOcD7OBMQM48BuH8f//JKCnhKNggRBkmfTQJxBEwhuD/gRCyVHJRlyCIVJXgYmB8ZQBAoIKBXIQmCOIt/NxAUCOIImCIgIpCBAJuDAQZEE/huIAQWTDgImBTYQGC8gRFcYpKFCI8kDwQAFCJBfBEAX/+IjBiQRIEw4jJAQc8v//NYwCIOgJrIJpA1OcwbaFAQWQA=")) } var iconCharging = { + text: "CHARGE", width : 50, height : 50, bpp : 3, transparent : 5, buffer : require("heatshrink").decompress(atob("23btugAwUBtoICARG0h048eODQYCJ6P/AAUCCJfbo4SDxYRLtEcuPHjlwgoRJ7RnIloUHoYjDAQfAExEAwUIkACEkSAIEYwCBhZKH6EIJI0CJRFHEY0BJRWBSgf//0AJRYSE4BKLj4SE8BKLv4RD/hK/JS2AXY0gXwRKG4cMmACCJQMAg8csEFJQsBAwfasEAm379u0gFbcBfHzgFBz1xMQZKBjY/D0E2+BOChu26yVEEYdww+cgAFCg+cgIfB6RKF4HbgEIkGChEAthfCJQ0eEAIjBBAMxk6GCJQtgtyVBwRKBAQMbHAJKGXIIFCgACBhl54qVG2E+EAJKBJoWAm0WJQ6SCXgdxFgMLJQvYjeAEAUwFIUitEtJQ14NwUHgEwKYZKGwOwNYX7XgWCg3CJQ5rB4MevPnAoPDJRJrCgEG/ECAoNsJRUwoEesIIBiJKI3CVDti/CJRKVDiJHBSo0YsOGjED8AjBcAcIgdhcAXAPIUAcAYIBcA4dBAQUG8BrBgBuCgOwcBEeXIK2BBAIFBgRqBGoYAChq8CcYUE4FbUYOACQsHzgjDgwFBCIImBAQsDtwYD7cAloRI22B86YBw5QBgoRJ7dAgYEDCJaeBJoMcsARMAQNoJIIRE6A")) } var iconNoBattery = { + text: "NO BAT", width : 50, height : 50, bpp : 3, transparent : 1, buffer : require("heatshrink").decompress(atob("kmSpIC/AWMyoQIFsmECJFJhMmA4QXByVICIwODAQ4RRFIQGD5JVLkIGDzJqMyAGDph8MiRKGyApEAoZKFyYIDQwMkSQNkQZABBhIIOOJRuEL5gRIAUKACVQMhmUSNYNDQYJTBBwYFByGTkOE5FJWYNMknCAQKYCiaSCpmGochDoSYBhMwTAZrChILBhmEzKPBF4ImBTAREBDoMmEwJVDoYjBycJFgWEJQRuLJQ1kmQCCjJlCBYbjCagaDBwyDBmBuBF4TjJAUQKINBChCDQxZBcZIIQF4NIgEAgKSDiQmEVQKMBoARBAAMCSQLLBVoxqKL4gaCChVCNwoRKOIo4CJIgABBoSMHpIRFgDdJOIJUBCAUJRgJuEAQb+DIIgRIAX4C/ASOQA")) @@ -117,7 +125,7 @@ function draw(){ // Alarm within symbol g.setFontAlign(0,0,0); g.setFontAntonioSmall(); - g.drawString("STATUS", 115+25, 102); + g.drawString(iconImg.text, 115+25, 102); if(isAlarmEnabled() > 0){ g.drawString(getAlarmMinutes(), 115+25, 115+25); } From a1a56601c0579d4a9e9756eb83bfcd8a802a9510 Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 13:00:38 -0600 Subject: [PATCH 17/66] Update README.md --- apps/fd6fdetect/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/fd6fdetect/README.md b/apps/fd6fdetect/README.md index 7e926aac7..7f7168dfb 100644 --- a/apps/fd6fdetect/README.md +++ b/apps/fd6fdetect/README.md @@ -1,2 +1,3 @@ -![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143490833-a88e4666-dcca-4613-bcee-bb2a33af67c0.png) +#![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143490833-a88e4666-dcca-4613-bcee-bb2a33af67c0.png) + An app dedicated to letting you know how many Exposure Notification beacons are near you. From f9286cbee97efeb9c63f2672b520e8976e59e45a Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 13:00:48 -0600 Subject: [PATCH 18/66] Update README.md --- apps/fd6fdetect/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/fd6fdetect/README.md b/apps/fd6fdetect/README.md index 7f7168dfb..d134bc1ba 100644 --- a/apps/fd6fdetect/README.md +++ b/apps/fd6fdetect/README.md @@ -1,3 +1,3 @@ -#![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143490833-a88e4666-dcca-4613-bcee-bb2a33af67c0.png) +# ![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143490833-a88e4666-dcca-4613-bcee-bb2a33af67c0.png) An app dedicated to letting you know how many Exposure Notification beacons are near you. From bc27677f5ef33bf85d67df951edae6dce437248e Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 13:02:43 -0600 Subject: [PATCH 19/66] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index ec24146b5..9fc551243 100644 --- a/apps.json +++ b/apps.json @@ -3984,7 +3984,7 @@ "id": "fd6fdetect", "name": "fd6fdetect", "shortName": "fd6fdetect", - "version": "0.1", + "version": "0.2", "description": "Allows you to see 0xFD6F beacons near you.", "icon": "app.png", "tags": "tool", From 08fd95ab9a3cb50f26605cebb4ae7411c1823c48 Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 13:04:09 -0600 Subject: [PATCH 20/66] Update README.md --- apps/fd6fdetect/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/fd6fdetect/README.md b/apps/fd6fdetect/README.md index d134bc1ba..1a7cce8bd 100644 --- a/apps/fd6fdetect/README.md +++ b/apps/fd6fdetect/README.md @@ -1,3 +1,3 @@ -# ![fd6fdetectlogo](https://user-images.githubusercontent.com/37220586/143490833-a88e4666-dcca-4613-bcee-bb2a33af67c0.png) +# FD6FDetect An app dedicated to letting you know how many Exposure Notification beacons are near you. From 43b447f81c3f40b1c042a9551ec71a1f29aa4d91 Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 13:17:35 -0600 Subject: [PATCH 21/66] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index f43205d54..46e03bea0 100644 --- a/apps.json +++ b/apps.json @@ -4417,7 +4417,7 @@ "interface": "interface.html", "supports": ["BANGLEJS", "BANGLEJS2"], "readme": "README.md", - "allow_emulator": true, + "allow_emulator": false, "storage": [ {"name":"authentiwatch.app.js","url":"app.js"}, {"name":"authentiwatch.img","url":"app-icon.js","evaluate":true} From fa4fd118e28787458623159617600b4d42432e98 Mon Sep 17 00:00:00 2001 From: Smooklu <37220586+Smooklu@users.noreply.github.com> Date: Thu, 25 Nov 2021 13:20:52 -0600 Subject: [PATCH 22/66] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 46e03bea0..f43205d54 100644 --- a/apps.json +++ b/apps.json @@ -4417,7 +4417,7 @@ "interface": "interface.html", "supports": ["BANGLEJS", "BANGLEJS2"], "readme": "README.md", - "allow_emulator": false, + "allow_emulator": true, "storage": [ {"name":"authentiwatch.app.js","url":"app.js"}, {"name":"authentiwatch.img","url":"app-icon.js","evaluate":true} From a89dd4d544b306acb94edeb63de6a90e1e946565 Mon Sep 17 00:00:00 2001 From: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri, 26 Nov 2021 11:23:43 +0100 Subject: [PATCH 23/66] Update ChangeLog --- apps/slevel/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/slevel/ChangeLog b/apps/slevel/ChangeLog index 5560f00bc..3a6431e50 100644 --- a/apps/slevel/ChangeLog +++ b/apps/slevel/ChangeLog @@ -1 +1,2 @@ 0.01: New App! +0.02: Updated to work with both Bangle.js 1 and 2. From fe5ca8bc76b9c1a1d28159af6dba92af14fd4e57 Mon Sep 17 00:00:00 2001 From: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri, 26 Nov 2021 11:33:49 +0100 Subject: [PATCH 24/66] Update spiritlevel.js --- apps/slevel/spiritlevel.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/apps/slevel/spiritlevel.js b/apps/slevel/spiritlevel.js index 492fc60e1..9db54b825 100644 --- a/apps/slevel/spiritlevel.js +++ b/apps/slevel/spiritlevel.js @@ -1,5 +1,7 @@ g.clear(); var old = {x:0,y:0}; +var W = g.getWidth(); +var H = g.getHeight(); Bangle.on('accel',function(v) { var max = Math.max(Math.abs(v.x),Math.abs(v.y),Math.abs(v.z)); if (Math.abs(v.y)==max) { @@ -14,17 +16,17 @@ Bangle.on('accel',function(v) { g.setColor(1,1,1); g.setFont("6x8",2); g.setFontAlign(0,-1); - g.clearRect(60,0,180,16); - g.drawString(ang.toFixed(1),120,0); + g.clearRect(W*(1/4),0,W*(3/4),H*(1/16)); + g.drawString(ang.toFixed(1),W/2,0); var n = { - x:E.clip(120+v.x*256,4,236), - y:E.clip(120+v.y*256,4,236)}; + x:E.clip(W/2+v.x*256,4,W-4), + y:E.clip(H/2+v.y*256,4,H-4)}; g.clearRect(old.x-3,old.y-3,old.x+6,old.y+6); g.setColor(1,1,1); g.fillRect(n.x-3,n.y-3,n.x+6,n.y+6); g.setColor(1,0,0); - g.drawCircle(120,120,20); - g.drawCircle(120,120,60); - g.drawCircle(120,120,100); + g.drawCircle(W/2,H/2,W*(1/12)); + g.drawCircle(W/2,H/2,W*(1/4)); + g.drawCircle(W/2,H/2,W*(5/12)); old = n; }); From 6f300299b55f60098d262c02e0c7ed1a5576fc38 Mon Sep 17 00:00:00 2001 From: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri, 26 Nov 2021 11:34:52 +0100 Subject: [PATCH 25/66] Update apps.json --- apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index 3b6490b46..8814b49d2 100644 --- a/apps.json +++ b/apps.json @@ -734,11 +734,11 @@ { "id": "slevel", "name": "Spirit Level", - "version": "0.01", + "version": "0.02", "description": "Show the current angle of the watch, so you can use it to make sure something is absolutely flat", "icon": "spiritlevel.png", "tags": "tool", - "supports": ["BANGLEJS"], + "supports": ["BANGLEJS","BANGLEJS2"], "storage": [ {"name":"slevel.app.js","url":"spiritlevel.js"}, {"name":"slevel.img","url":"spiritlevel-icon.js","evaluate":true} From b6e5175675890222b1f23318a2b466dcf6302238 Mon Sep 17 00:00:00 2001 From: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri, 26 Nov 2021 11:44:21 +0100 Subject: [PATCH 26/66] Update spiritlevel.js --- apps/slevel/spiritlevel.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/slevel/spiritlevel.js b/apps/slevel/spiritlevel.js index 9db54b825..030eeae97 100644 --- a/apps/slevel/spiritlevel.js +++ b/apps/slevel/spiritlevel.js @@ -2,6 +2,10 @@ g.clear(); var old = {x:0,y:0}; var W = g.getWidth(); var H = g.getHeight(); +var fontS = 1; +if (process.env.HWVERSION==1) { + fontS = 2; +} Bangle.on('accel',function(v) { var max = Math.max(Math.abs(v.x),Math.abs(v.y),Math.abs(v.z)); if (Math.abs(v.y)==max) { @@ -14,7 +18,7 @@ Bangle.on('accel',function(v) { var ang = Math.atan2(d,Math.abs(v.z))*180/Math.PI; g.setColor(1,1,1); - g.setFont("6x8",2); + g.setFont("6x8",fontS); g.setFontAlign(0,-1); g.clearRect(W*(1/4),0,W*(3/4),H*(1/16)); g.drawString(ang.toFixed(1),W/2,0); From 045251f55f9a71f755ffdcdb120e032dc437096a Mon Sep 17 00:00:00 2001 From: johan-m-o <85756863+johan-m-o@users.noreply.github.com> Date: Fri, 26 Nov 2021 11:50:19 +0100 Subject: [PATCH 27/66] Update spiritlevel.js --- apps/slevel/spiritlevel.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/apps/slevel/spiritlevel.js b/apps/slevel/spiritlevel.js index 030eeae97..9db54b825 100644 --- a/apps/slevel/spiritlevel.js +++ b/apps/slevel/spiritlevel.js @@ -2,10 +2,6 @@ g.clear(); var old = {x:0,y:0}; var W = g.getWidth(); var H = g.getHeight(); -var fontS = 1; -if (process.env.HWVERSION==1) { - fontS = 2; -} Bangle.on('accel',function(v) { var max = Math.max(Math.abs(v.x),Math.abs(v.y),Math.abs(v.z)); if (Math.abs(v.y)==max) { @@ -18,7 +14,7 @@ Bangle.on('accel',function(v) { var ang = Math.atan2(d,Math.abs(v.z))*180/Math.PI; g.setColor(1,1,1); - g.setFont("6x8",fontS); + g.setFont("6x8",2); g.setFontAlign(0,-1); g.clearRect(W*(1/4),0,W*(3/4),H*(1/16)); g.drawString(ang.toFixed(1),W/2,0); From 6220a88d29ace89e386ae3d7630c112bc8905b73 Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Fri, 26 Nov 2021 21:29:58 +0100 Subject: [PATCH 28/66] locale: Apply 12hour setting to time Fixes #892 --- apps.json | 2 +- apps/locale/ChangeLog | 1 + apps/locale/locale.html | 9 ++++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index a7a74f4cb..2935a118b 100644 --- a/apps.json +++ b/apps.json @@ -170,7 +170,7 @@ { "id": "locale", "name": "Languages", - "version": "0.09", + "version": "0.10", "description": "Translations for different countries", "icon": "locale.png", "type": "locale", diff --git a/apps/locale/ChangeLog b/apps/locale/ChangeLog index 3d64cf8d7..288dc6dde 100644 --- a/apps/locale/ChangeLog +++ b/apps/locale/ChangeLog @@ -9,3 +9,4 @@ 0.07: Improve handling of non-ASCII characters (fix #469) 0.08: Added Mavigation units and en_NAV 0.09: Added New Zealand en_NZ +0.10: Apply 12hour setting to time diff --git a/apps/locale/locale.html b/apps/locale/locale.html index 3d806b44b..25acb2fff 100644 --- a/apps/locale/locale.html +++ b/apps/locale/locale.html @@ -146,7 +146,7 @@ exports = { name : "en_GB", currencySym:"£", "%-m": "d.getMonth()+1", "%d": "('0'+d.getDate()).slice(-2)", "%-d": "d.getDate()", - "%HH": "('0'+d.getHours()).slice(-2)", + "%HH": "('0'+getHours(d)).slice(-2)", "%MM": "('0'+d.getMinutes()).slice(-2)", "%SS": "('0'+d.getSeconds()).slice(-2)", "%A": "day.split(',')[d.getDay()]", @@ -178,6 +178,13 @@ var month = ${js(locale.month + ',' + locale.abmonth)}; function round(n) { return n < 10 ? Math.round(n * 10) / 10 : Math.round(n); } +var is12; +function getHours(d) { + var h = d.getHours(); + if (is12==undefined) is12 = (require('Storage',1).readJSON('setting.json')||{})["12hour"]; + if (!is12) return h; + return (h%12==0) ? 12 : h%12; +} exports = { name: ${js(locale.lang)}, currencySym: ${js(locale.currency_symbol)}, From dabaa06efbe3698e11afad390bb06d3e48c93f12 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 11:33:19 -0800 Subject: [PATCH 29/66] Create app.js --- apps/93dub/app.js | 170 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 apps/93dub/app.js diff --git a/apps/93dub/app.js b/apps/93dub/app.js new file mode 100644 index 000000000..48365c646 --- /dev/null +++ b/apps/93dub/app.js @@ -0,0 +1,170 @@ +/*The following code was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources. Time and date keeping functions, and AFAIK the battery display works too. I cut off the top of the original background with a black rectangle to make room for the widgets. It is not pixel perfect. I am using the MIT license for this work. +MIT License +Copyright (c) 2021 Brandon Abbott +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +// define background +var imgBg = require("heatshrink").decompress(atob("yGogIqn4EwhgR/AAMN4Hw7k3hk8BQeAgEEgQGCh/h/H+n+MvwRKh1zjnnnPM48A69z1foxPfnXgCIMMmf84cw5n/gMZylsxGKmlDkARD8ARC/EAyMUlARBilCCIQ1Bhg1C4cAqIRILIP8LIV/CIVowtSmgRDPoP4PoU+gORieo8Uh686I4bmQCMYAig//AB3AIuYAUpGcxeAMxE8+lEgEB5GixIdIgmiwlHCwPI0H5CJXiw/ACIOmEZI1BwQRBGpskCIIFBp2eCJUi+MEVP4AJh//ABngCIM/CJv4CIN4GRs8AQImCABcOdIPDGpqzBgePCJvjCIMfCJvzwEDNZ3xwEHCJ35wEGCJ/Ag1/UJwRQ/gR/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4Rhn4RN/HAg4RO/PAgcfCJvxwEDz4RN+eAgOPCJvDgEB4YRNg8AgHgAQIALjwCBvARNvgCBPp3wCIMPCJvAGRoA/AA8Bi+l4gROykYw4ROq4RBPxsBqgRQmkkGp8X0mERFUfcgeACJcgAgdABYsHDof/oHx49/wEvBQh9GCIfAFAgAHoHz51/8ARP+IRO+4RLpMR73woH27n/8Eh8+ZmaBEqsoyGICIfAkMUktJEYgRBzgRBv34UAMhi8RkIRFnGQGoN8/H34FB8kJiIREkVEyGQkF8/Pj4GBkg1GCIOexEQvHx8fBgMXzMxPpEICIXCfZkEAYwAJgbiC/ARMAH4ABA==")); + +/* +I took the number bitmaps, added two columns to each digit (for spacing), and combined them for the Espruino Bitmap Font Generator. Here's the commands I used for processing the original 26 by 41 px font: +mogrify -gravity east -extent 28x41 *.png +montage num_[0-9].png -geometry +0+0 numcat.png +I then put numcat.png into the generator. +*/ + +// define fonts +// reg number first char 48 28 by 41 +var fontNum = atob("AAAAAAAAAAAAAA//8D//g//8P/+I//8//44//w//j4//A/+P4/8A/4/4AAAAD/4AAAAP/wAAAAf/gAAAA//AAAAB/+AAAAD/8AAAAH/4AAAAP/wAAAAf/gAAAA//AAAAB/+AAAAD/8AAAAH/wAAAAH/H/gH/H8f/gf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wB/4AP/4H/4A//4f/4D//5//4P//h//4//+B//4AAAAAAAAAAAAAAAAAf/+AAAB//4gAAD//jgAAD/+PgABj/4/gAHj/j/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8f88AAfx/8wAAfH/8AAAcf/8AAAR//4AAAH//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAA4AAAAAD4AAYAAP4AD8AA/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAHgAH/H/GH/H8f/gf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAP//AAAAP//AAAAP//AAAAP/8AAAAP/2AAAAP/eAAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAB/7x/4AH/7H/4Af/4f/4B//5//4H//h//4f/+B//4AAAAAAAAAAAAAD//wAAAD//wAAAj//gAADj/+AAAPj/5gAA/j/ngAD/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8AA8f8fwAAx/8fAAAH/8cAAAf/8QAAA//8AAAA//8AAAAAAAAAAAAAA//8D//g//8P/+I//8//44//0//j4//Y/+P4/94/4/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAPwAH/AAPH/H8AAMf/HwAAB//HAAAH//EAAAH//AAAAH//AAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAGAAAAAAOAAAAAAeAAAAAA+AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB8AAAAADx/4B/4HH/4H/4Mf/4f/4R//5//4H//h//4f/+B//4AAAAAAAAAAAAAD//wP/+D//w//4j//z//jj//T/+Pj/9j/4/j/3j/j/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8f+8f8fx/+x/8fH/+H/8cf/+f/8R//4f/8H//gf/8AAAAAAAAAAAAAA//8AAAA//8AAAI//8AAA4//0AAD4//YAAP4/94AA/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAPwAH/H/vH/H8f/sf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); +// tiny font for percentage first char 48 6 by 8 +var fontTiny = atob("AH6BgYF+ACFB/wEBAGGDhYlxAEKBkZFuAAx0hP8EAPqRkZGOAH6RkZFOAICHmKDAAG6RkZFuAHKJiYl+AAAAAAAAAAAAAAAA"); +// date font first char 48 12 by 15 +var fontDate = atob("AAAAAfv149wAeADwAeADwAeADvHr9+AAAAAAAAAAAAAAAAAAAAAAAAAPHn9/AAAAAAP0A9wweGDwweGDwweGDvAL8AAAAAAAAAAAgwOGDwweGDwweGDvHp98AAAAA/gB6AAwAGAAwAGAAwAGAPHj9/AAAAAfgF6BwweGDwweGDwweGDgHoB+AAAAAfv169wweGDwweGDwweGDgHoB+AAAAAAAAAAgAGAAwAGAAwAGAAvHh9/AAAAAfv169wweGDwweGDwweGDvHr9+AAAAAfgF6BwweGDwweGDwweGDvHr9+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); + +// define days of the week images +var imgMon = E.toArrayBuffer(atob("Ig8BgHwfD5AvB8HD8z8wMPzPzMQzM/M/DMz8z8c7f7f7z////3Oz+3+PzPzPw/M/M/D8z8z8PzPzPw/vB8/n/8H3/A==")); +var imgTue = E.toArrayBuffer(atob("Ig8BwDv9wDAOfmgf/5+Z///n5n/5+fmf/n5+Z//fv9oH////Af37/b/+fn5n/5+fmf/n5+Z/+fn5n/5/g+gfn+D8AA==")); +var imgWed = E.toArrayBuffer(atob("Ig8Bf7gHgM/NA9Az8z/z8PzP/Pw/M/8/D8z/z8c7QPf7z+A//3O3/3+MzP/PwzM/8/D8z/z8PzP/PxAtA9A4B4B4DA==")); +var imgThu = E.toArrayBuffer(atob("Ig8BgHf7f6Ac/M/P/z8z8//PzPzz8/M/PPz8z8+/QLf7/+A///v3+3+8/PzPzz8/M/PPz8z88/PzPzz8/vB/P3/8HA==")); +var imgFri = E.toArrayBuffer(atob("Ig8B/wDwP7+geg/P5/5+c/n/n5z+f+fnP5/5+c/oHoF7/AfAf/7/7/+/n/k/z+f+R/P5/5j8/n/nHz+/++PP7//8+A==")); +var imgSat = E.toArrayBuffer(atob("Ig8B4DwDwDgOgXAJ/5+f/n/n5/+f+fn55/5+fnoHoF/fAfAf//+b/f3/5n5+f/mfn5/+Z+fn//n5+eAef358B7//nA==")); +var imgSun = E.toArrayBuffer(atob("Ig8BwHf7D7Ac/MHD/z8wMP/PzMQ/8/M/D/z8z8QPf7f6A/////83+3+/zPzPz/M/M/P8z8z8//PzPwA/B8/oD8H3/A==")); + + + +// define icons +var imgSep = E.toArrayBuffer(atob("BhsBAAAAAA///////////////AAAAAAA")); +var imgBattery = E.toArrayBuffer(atob("EAkBAAF//X/8f/x//H/8f/x//QAB")); +var imgBattery_Charge = E.toArrayBuffer(atob("EAkBAAF//UEERwRf9EHEQQR//QAB")); +var imgPercent = E.toArrayBuffer(atob("BwcBuq7ffbqugA==")); +var img24hr = E.toArrayBuffer(atob("EwgBj7vO53na73tcDtu9uDev7vA93g==")); +var imgPM = E.toArrayBuffer(atob("EwgB+HOfdnPu1X3ar4dV9+q+/bfftg==")); + +//vars +var separator = true; +var is24hr = true; //assumed true until can find API to check +var leadingZero = true; + +//the following 2 sections are used from waveclk to schedule minutely updates +// timeout used to update every minute +var drawTimeout; + +// schedule a draw for the next minute +function queueDraw() { + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() { + drawTimeout = undefined; + draw(); + }, 60000 - (Date.now() % 60000)); +} + +// set background +g.setBgColor(0,0,0); +g.setColor(1,1,1); +g.clear(); +g.drawImage(imgBg,g.getWidth()/2 - 144/2 ,0); +// this covers the part of the background with branding, makes room for widgets +g.setColor(0,0,0); +g.fillRect(0,0,g.getWidth(),30); + +function draw(){ +var date = new Date(); +var h = date.getHours(), m = date.getMinutes(); +var d = date.getDate(), w = date.getDay(); +g.reset(); +g.setBgColor(0,0,0); +g.setColor(1,1,1); +// draw battery indicator +var batPercent = E.getBattery(); +if (Bangle.isCharging()) {selBattery = imgBattery_Charge;} +else {selBattery=imgBattery;} +g.drawImage(selBattery,127,42); +if (batPercent != null) { +g.drawImage(imgPercent, 118,43); + +} + +//draw 24 hr indicator and 12 hr specific behavior +if (is24hr){ +g.drawImage(img24hr,32, 70); +if (leadingZero){ + h = ("0"+h).substr(-2);}} +else if (h > 12) {g.drawImage(imgPM,40, 70); + h = h - 12; + if (leadingZero){ + h = ("0"+h).substr(-2);} + else + {h = " " + h;} + } + +//draw separator +if (separator){ +g.drawImage(imgSep, 85,96);} + +//draw day of week +var imgW = null; +if (w == 0) {imgW = imgSun;} +if (w == 1) {imgW = imgMon;} +if (w == 2) {imgW = imgTue;} +if (w == 3) {imgW = imgWed;} +if (w == 4) {imgW = imgThr;} +if (w == 5) {imgW = imgFri;} +if (w == 6) {imgW = imgSat;} +g.drawImage(imgW, 85, 66); + + +// draw nums +// draw time +g.setColor(0,0,0); +g.setBgColor(1,1,1); +g.setFontCustom(fontNum, 48, 28, 41); +if (h<10) { + if (leadingZero) { + h = ("0"+h).substr(-2); + } + else {h = " " + h;} +} +g.drawString(h, 25, 88, true); +g.drawString(("0"+m).substr(-2), 92, 88, true); +// draw date +g.setFontCustom(fontDate, 48, 12, 15); +g.drawString(("0"+d).substr(-2), 123,66, true); +// draw battery +g.setFontCustom(fontTiny, 48, 6, 8); +if (batPercent < 10) {batPercent = " " + batPercent;} //makes sure zero is next to percent sign +if (batPercent < 100) {g.drawString(batPercent, 105, 42, true);} + else {g.drawString(batPercent, 99, 42, true);} +queueDraw(); +} + + +draw(); + +//the following section is also from waveclk +Bangle.on('lcdPower',on=>{ + if (on) { + draw(); // draw immediately, queue redraw + } else { // stop draw timer + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + } +}); + +Bangle.setUI("clock"); +Bangle.loadWidgets(); +Bangle.drawWidgets(); From 7d646945df493e7c95a51c7ce6e7224662150090 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 11:37:56 -0800 Subject: [PATCH 30/66] Update apps.json --- apps.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps.json b/apps.json index a7a74f4cb..8830449ca 100644 --- a/apps.json +++ b/apps.json @@ -4456,5 +4456,15 @@ "storage": [ {"name":"timecal.app.js","url":"timecal.app.js"} ] + }, + { "id": "93dub", + "name": "93 Dub", + "shortName":"93 Dub", + "version":"0.01", + "description": "Fan recreation of 91 Dub app for the Pebble smartwatch", + "tags": "", + "storage": [ + {"name":"93dub.app.js","url":"app.js"}, + ] } ] From 33b3e918693959e9828cafa1354b6df3a5a5c90d Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 11:40:13 -0800 Subject: [PATCH 31/66] Update apps.json --- apps.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps.json b/apps.json index 8830449ca..88184fdad 100644 --- a/apps.json +++ b/apps.json @@ -4463,6 +4463,8 @@ "version":"0.01", "description": "Fan recreation of 91 Dub app for the Pebble smartwatch", "tags": "", + "type": "clock", + "supports":["BANGLEJS2"], "storage": [ {"name":"93dub.app.js","url":"app.js"}, ] From 228a3664c7ab9774a8dad99f05fc1bf3c5570e61 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 11:41:39 -0800 Subject: [PATCH 32/66] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 88184fdad..681767f81 100644 --- a/apps.json +++ b/apps.json @@ -4468,5 +4468,5 @@ "storage": [ {"name":"93dub.app.js","url":"app.js"}, ] - } + }, ] From 56f3044e5e5fedbbddffc9810e24135cca7acfbf Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 12:02:34 -0800 Subject: [PATCH 33/66] Update app.js background needed redraw after notification background redraw broke widgets, so temp fix --- apps/93dub/app.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index 48365c646..63309c0b3 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -1,14 +1,19 @@ /*The following code was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources. Time and date keeping functions, and AFAIK the battery display works too. I cut off the top of the original background with a black rectangle to make room for the widgets. It is not pixel perfect. I am using the MIT license for this work. + MIT License + Copyright (c) 2021 Brandon Abbott + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -25,6 +30,7 @@ var imgBg = require("heatshrink").decompress(atob("yGogIqn4EwhgR/AAMN4Hw7k3hk8BQ I took the number bitmaps, added two columns to each digit (for spacing), and combined them for the Espruino Bitmap Font Generator. Here's the commands I used for processing the original 26 by 41 px font: mogrify -gravity east -extent 28x41 *.png montage num_[0-9].png -geometry +0+0 numcat.png + I then put numcat.png into the generator. */ @@ -73,6 +79,7 @@ function queueDraw() { }, 60000 - (Date.now() % 60000)); } +function drawBackground() { // set background g.setBgColor(0,0,0); g.setColor(1,1,1); @@ -81,8 +88,11 @@ g.drawImage(imgBg,g.getWidth()/2 - 144/2 ,0); // this covers the part of the background with branding, makes room for widgets g.setColor(0,0,0); g.fillRect(0,0,g.getWidth(),30); +g.reset(); +} function draw(){ +drawBackground(); var date = new Date(); var h = date.getHours(), m = date.getMinutes(); var d = date.getDate(), w = date.getDay(); @@ -149,6 +159,8 @@ g.setFontCustom(fontTiny, 48, 6, 8); if (batPercent < 10) {batPercent = " " + batPercent;} //makes sure zero is next to percent sign if (batPercent < 100) {g.drawString(batPercent, 105, 42, true);} else {g.drawString(batPercent, 99, 42, true);} +// widget redraw +Bangle.drawWidgets(); queueDraw(); } From 0d6bfc7c13f024f36e9703dbb4b88289756621f5 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 20:59:32 -0800 Subject: [PATCH 34/66] Update app.js redid background, adjusted graphics to look nice on bangle 2 --- apps/93dub/app.js | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index 63309c0b3..fb485d72a 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -24,7 +24,7 @@ SOFTWARE. */ // define background -var imgBg = require("heatshrink").decompress(atob("yGogIqn4EwhgR/AAMN4Hw7k3hk8BQeAgEEgQGCh/h/H+n+MvwRKh1zjnnnPM48A69z1foxPfnXgCIMMmf84cw5n/gMZylsxGKmlDkARD8ARC/EAyMUlARBilCCIQ1Bhg1C4cAqIRILIP8LIV/CIVowtSmgRDPoP4PoU+gORieo8Uh686I4bmQCMYAig//AB3AIuYAUpGcxeAMxE8+lEgEB5GixIdIgmiwlHCwPI0H5CJXiw/ACIOmEZI1BwQRBGpskCIIFBp2eCJUi+MEVP4AJh//ABngCIM/CJv4CIN4GRs8AQImCABcOdIPDGpqzBgePCJvjCIMfCJvzwEDNZ3xwEHCJ35wEGCJ/Ag1/UJwRQ/gR/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4R/CP4Rhn4RN/HAg4RO/PAgcfCJvxwEDz4RN+eAgOPCJvDgEB4YRNg8AgHgAQIALjwCBvARNvgCBPp3wCIMPCJvAGRoA/AA8Bi+l4gROykYw4ROq4RBPxsBqgRQmkkGp8X0mERFUfcgeACJcgAgdABYsHDof/oHx49/wEvBQh9GCIfAFAgAHoHz51/8ARP+IRO+4RLpMR73woH27n/8Eh8+ZmaBEqsoyGICIfAkMUktJEYgRBzgRBv34UAMhi8RkIRFnGQGoN8/H34FB8kJiIREkVEyGQkF8/Pj4GBkg1GCIOexEQvHx8fBgMXzMxPpEICIXCfZkEAYwAJgbiC/ARMAH4ABA==")); +var imgBg = require("heatshrink").decompress(atob("2GwgJC/AH4A/AH4A/AH4A/AH4A/ACcGAhAV/Cp3gvdug+Gj0AgeABYMBAQMIggVEg/w/9/h/Gn8As3ACpk559zznmseAs0B13nq/Rie+uodCIIUZw9hzFmv+AgcCmco7MRilow1ACpN8gFhwMilFRCoMowgVEIIVhIINhwFg4GiCpfw/dhx/mn4uBCoXRhWktAVFTIVhw9mj8YseDkUnqPEoeuugVEAAlgSgICBACAVC8AUQCQQVSAEsD/4ASeYgA/ACkHNiK5Cj4VR/AVBng+RCQVwCqMOAQPhIKOHgEB44VR8YVBx4VR+eAgOfCqPxwEDCqX5CoKvS/PAgc/YqQVU/gV/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/CsMfCqP4CoOfCqP54EBx4VR+OAgPPCqPzwEA44VR4cAgHhCqMHCoNwAQIAPjwCBngVRvgCBV6XwCoMHCqPAHyIA/AEigEf4IAOkAEDoAPJWAtA+PHv+Al6uPCofAGAgALoHz51/8AVT+IVS+4VPpMR73woH27n/8Eh8+ZmadIqsoyGICofAkMUktJFZAVBzgVBv34YgMhi8RkIVJnGQIIN8/H34FB8kJiIVIkVEyGQkF8/Pj4GBkhBKCoOexEQvHx8fBgMXzMxTJkICoXCVx8AggDGABsD/4AB/AVQAH4APA")); /* I took the number bitmaps, added two columns to each digit (for spacing), and combined them for the Espruino Bitmap Font Generator. Here's the commands I used for processing the original 26 by 41 px font: @@ -84,10 +84,7 @@ function drawBackground() { g.setBgColor(0,0,0); g.setColor(1,1,1); g.clear(); -g.drawImage(imgBg,g.getWidth()/2 - 144/2 ,0); -// this covers the part of the background with branding, makes room for widgets -g.setColor(0,0,0); -g.fillRect(0,0,g.getWidth(),30); +g.drawImage(imgBg,0,0); g.reset(); } @@ -103,15 +100,15 @@ g.setColor(1,1,1); var batPercent = E.getBattery(); if (Bangle.isCharging()) {selBattery = imgBattery_Charge;} else {selBattery=imgBattery;} -g.drawImage(selBattery,127,42); +g.drawImage(selBattery,127,59); if (batPercent != null) { -g.drawImage(imgPercent, 118,43); +g.drawImage(imgPercent, 118,60); } //draw 24 hr indicator and 12 hr specific behavior if (is24hr){ -g.drawImage(img24hr,32, 70); +g.drawImage(img24hr,32, 82); if (leadingZero){ h = ("0"+h).substr(-2);}} else if (h > 12) {g.drawImage(imgPM,40, 70); @@ -124,7 +121,7 @@ else if (h > 12) {g.drawImage(imgPM,40, 70); //draw separator if (separator){ -g.drawImage(imgSep, 85,96);} +g.drawImage(imgSep, 85,108);} //draw day of week var imgW = null; @@ -135,7 +132,7 @@ if (w == 3) {imgW = imgWed;} if (w == 4) {imgW = imgThr;} if (w == 5) {imgW = imgFri;} if (w == 6) {imgW = imgSat;} -g.drawImage(imgW, 85, 66); +g.drawImage(imgW, 85, 78); // draw nums @@ -149,16 +146,16 @@ if (h<10) { } else {h = " " + h;} } -g.drawString(h, 25, 88, true); -g.drawString(("0"+m).substr(-2), 92, 88, true); +g.drawString(h, 25, 100, true); +g.drawString(("0"+m).substr(-2), 92, 100, true); // draw date g.setFontCustom(fontDate, 48, 12, 15); -g.drawString(("0"+d).substr(-2), 123,66, true); +g.drawString(("0"+d).substr(-2), 123,78, true); // draw battery g.setFontCustom(fontTiny, 48, 6, 8); if (batPercent < 10) {batPercent = " " + batPercent;} //makes sure zero is next to percent sign -if (batPercent < 100) {g.drawString(batPercent, 105, 42, true);} - else {g.drawString(batPercent, 99, 42, true);} +if (batPercent < 100) {g.drawString(batPercent, 105, 59, true);} + else {g.drawString(batPercent, 99, 59, true);} // widget redraw Bangle.drawWidgets(); queueDraw(); From c0e5d4432eb48ae7c83d1c62f28a8b8abdc1438b Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:19:34 -0800 Subject: [PATCH 35/66] Create app-icon.js added icon --- apps/93dub/app-icon.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/93dub/app-icon.js diff --git a/apps/93dub/app-icon.js b/apps/93dub/app-icon.js new file mode 100644 index 000000000..771a64556 --- /dev/null +++ b/apps/93dub/app-icon.js @@ -0,0 +1 @@ +E.toArrayBuffer(atob("AAAAAAAAAAAAAAAAAgBAAAAAA39zmsbAA/f6vbtgA3X2o0aAAAAAAAAAH//////4AAAAAAAAAAAAAAAAD//////wEAAAAAAIF//////oF//////oF//////oF//////oF//////oF//////oF///4iPoF///9rfoF/x/+jfoF/x/4rfoF//////oF//////oF//////oF//////oF/cP4YfoF/fv/ffoF/fufffoF/fufffoF/cP4ffoF/fv/ffoF/fv/ffoF/fufffoF/cOYffoF//////oF//////oF//////oEAAAAAAID//////wAAAAAAAAAAAAAAAAAf+id/+AAAC2dAAAAACcZAAAAACcVAAAAAAAAAAAAAAAAAAA")) From 2d21ce74459871c238dc12d2ed04c212bd1d814e Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:21:29 -0800 Subject: [PATCH 36/66] Add files via upload --- apps/93dub/app.png | Bin 0 -> 650 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/93dub/app.png diff --git a/apps/93dub/app.png b/apps/93dub/app.png new file mode 100644 index 0000000000000000000000000000000000000000..59950c8959c296dabb9cf98ef9721cba82763012 GIT binary patch literal 650 zcmV;50(Jd~P)EX>4Tx04R~2kiAO7U=)U*RIB38q&P^246X$iJGoSaAXJF4g3&2WQYDTsSyeb*-@o*)?BzGs=+MTZ z9fW1xcijPv@%gGb#Y@*{HP8JSOHo{gs&i!)=0ye8fw(uTa>GitZin8H_(5z(X%>l} z#Jf=%88*9KnoPqVO>@n9oL!uozOsYE38%Q&jF>VZp`xprsdG$^eN~5ofO|?p)r45R znPw_(M5UA*4n;$eu4(Ywsr_8JjHEG_CX>@2HM@dak zSAh-}0002hNkl$iJIG%Fl*5j zDS+@7MS=c1sV?Qg^i@b&5CuviM0ahgE7k9O^tN0Q9;dm__+B9>ceyJHhFdsrx^j@TOI0j9t!}DR= kje2Q0^&!ql94NdZKiy|bRt}#=Pyhe`07*qoM6N<$f{COZCjbBd literal 0 HcmV?d00001 From b49223d5b95c3802ca5b9a7e2478a227ad888652 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:24:09 -0800 Subject: [PATCH 37/66] Update apps.json --- apps.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 681767f81..9905a2352 100644 --- a/apps.json +++ b/apps.json @@ -4460,13 +4460,15 @@ { "id": "93dub", "name": "93 Dub", "shortName":"93 Dub", + "icon": "icon.png", "version":"0.01", - "description": "Fan recreation of 91 Dub app for the Pebble smartwatch", + "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch", "tags": "", "type": "clock", "supports":["BANGLEJS2"], "storage": [ {"name":"93dub.app.js","url":"app.js"}, + {"name":"93dub.img","url":"app-icon.js","evaluate":true} ] }, ] From 251ceb9dd1ee7064f86c4056a280169f299311d9 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:27:35 -0800 Subject: [PATCH 38/66] Update apps.json oops comma --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 9905a2352..93785f0d4 100644 --- a/apps.json +++ b/apps.json @@ -4470,5 +4470,5 @@ {"name":"93dub.app.js","url":"app.js"}, {"name":"93dub.img","url":"app-icon.js","evaluate":true} ] - }, + } ] From 4294a27279f7482cb9abe10fe22d254f2a9a7073 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:31:41 -0800 Subject: [PATCH 39/66] Update apps.json apps.json updates --- apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index 93785f0d4..554d18e11 100644 --- a/apps.json +++ b/apps.json @@ -4462,8 +4462,8 @@ "shortName":"93 Dub", "icon": "icon.png", "version":"0.01", - "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch", - "tags": "", + "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo", + "tags": "clock", "type": "clock", "supports":["BANGLEJS2"], "storage": [ From 8a3f9f848a4dc98f0f1108c46e406ba8007aa45b Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:36:48 -0800 Subject: [PATCH 40/66] Update app.js stripped license and info block of text since it's already enclosed in an MIT-licensed repo --- apps/93dub/app.js | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index fb485d72a..f89d26188 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -1,28 +1,3 @@ -/*The following code was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources. Time and date keeping functions, and AFAIK the battery display works too. I cut off the top of the original background with a black rectangle to make room for the widgets. It is not pixel perfect. I am using the MIT license for this work. - -MIT License - -Copyright (c) 2021 Brandon Abbott - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - // define background var imgBg = require("heatshrink").decompress(atob("2GwgJC/AH4A/AH4A/AH4A/AH4A/ACcGAhAV/Cp3gvdug+Gj0AgeABYMBAQMIggVEg/w/9/h/Gn8As3ACpk559zznmseAs0B13nq/Rie+uodCIIUZw9hzFmv+AgcCmco7MRilow1ACpN8gFhwMilFRCoMowgVEIIVhIINhwFg4GiCpfw/dhx/mn4uBCoXRhWktAVFTIVhw9mj8YseDkUnqPEoeuugVEAAlgSgICBACAVC8AUQCQQVSAEsD/4ASeYgA/ACkHNiK5Cj4VR/AVBng+RCQVwCqMOAQPhIKOHgEB44VR8YVBx4VR+eAgOfCqPxwEDCqX5CoKvS/PAgc/YqQVU/gV/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/CsMfCqP4CoOfCqP54EBx4VR+OAgPPCqPzwEA44VR4cAgHhCqMHCoNwAQIAPjwCBngVRvgCBV6XwCoMHCqPAHyIA/AEigEf4IAOkAEDoAPJWAtA+PHv+Al6uPCofAGAgALoHz51/8AVT+IVS+4VPpMR73woH27n/8Eh8+ZmadIqsoyGICofAkMUktJFZAVBzgVBv34YgMhi8RkIVJnGQIIN8/H34FB8kJiIVIkVEyGQkF8/Pj4GBkhBKCoOexEQvHx8fBgMXzMxTJkICoXCVx8AggDGABsD/4AB/AVQAH4APA")); From 82e515e0e5c05cd89f871f33fb24654e1e26d5b0 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:39:55 -0800 Subject: [PATCH 41/66] Create README.md added dub93's readme --- apps/93dub/README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 apps/93dub/README.md diff --git a/apps/93dub/README.md b/apps/93dub/README.md new file mode 100644 index 000000000..1732757a7 --- /dev/null +++ b/apps/93dub/README.md @@ -0,0 +1,5 @@ +# 93 Dub + +![icon](app.png) + +93 Dub was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources and adapted for Bangle.js 2's screen. Time, date and the battery display works. It is not pixel perfect to the original. From 0d5892769d6862ed8a56dcfcf3fd960893cec688 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:42:19 -0800 Subject: [PATCH 42/66] Add files via upload add screenshot for 93dub --- apps/93dub/screenshot.png | Bin 0 -> 3675 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/93dub/screenshot.png diff --git a/apps/93dub/screenshot.png b/apps/93dub/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..de25e4d2c173d0661775c3dd47f8a0713d5b1d62 GIT binary patch literal 3675 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 Date: Sat, 27 Nov 2021 21:44:49 -0800 Subject: [PATCH 43/66] Update README.md --- apps/93dub/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/93dub/README.md b/apps/93dub/README.md index 1732757a7..1f2d25b75 100644 --- a/apps/93dub/README.md +++ b/apps/93dub/README.md @@ -1,5 +1,5 @@ # 93 Dub -![icon](app.png) +![](screenshot.png) 93 Dub was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources and adapted for Bangle.js 2's screen. Time, date and the battery display works. It is not pixel perfect to the original. From 4a3e1bbe28e3180ab04685646a4e41de07993cf4 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 21:52:13 -0800 Subject: [PATCH 44/66] Update app.js 12 hr/24 hr specific behavior now from settings instead of hardcoded --- apps/93dub/app.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index f89d26188..fc52b8829 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -1,3 +1,6 @@ +// get 12 hour status, code from barclock +const is12Hour = (require("Storage").readJSON("setting.json", 1) || {})["12hour"]; + // define background var imgBg = require("heatshrink").decompress(atob("2GwgJC/AH4A/AH4A/AH4A/AH4A/ACcGAhAV/Cp3gvdug+Gj0AgeABYMBAQMIggVEg/w/9/h/Gn8As3ACpk559zznmseAs0B13nq/Rie+uodCIIUZw9hzFmv+AgcCmco7MRilow1ACpN8gFhwMilFRCoMowgVEIIVhIINhwFg4GiCpfw/dhx/mn4uBCoXRhWktAVFTIVhw9mj8YseDkUnqPEoeuugVEAAlgSgICBACAVC8AUQCQQVSAEsD/4ASeYgA/ACkHNiK5Cj4VR/AVBng+RCQVwCqMOAQPhIKOHgEB44VR8YVBx4VR+eAgOfCqPxwEDCqX5CoKvS/PAgc/YqQVU/gV/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/CsMfCqP4CoOfCqP54EBx4VR+OAgPPCqPzwEA44VR4cAgHhCqMHCoNwAQIAPjwCBngVRvgCBV6XwCoMHCqPAHyIA/AEigEf4IAOkAEDoAPJWAtA+PHv+Al6uPCofAGAgALoHz51/8AVT+IVS+4VPpMR73woH27n/8Eh8+ZmadIqsoyGICofAkMUktJFZAVBzgVBv34YgMhi8RkIVJnGQIIN8/H34FB8kJiIVIkVEyGQkF8/Pj4GBkhBKCoOexEQvHx8fBgMXzMxTJkICoXCVx8AggDGABsD/4AB/AVQAH4APA")); @@ -38,7 +41,7 @@ var imgPM = E.toArrayBuffer(atob("EwgB+HOfdnPu1X3ar4dV9+q+/bfftg==")); //vars var separator = true; -var is24hr = true; //assumed true until can find API to check +var is24hr = !is12Hour; var leadingZero = true; //the following 2 sections are used from waveclk to schedule minutely updates From 6fd7a0eb633ac47eea07c2befe8f0a96bda19a02 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:11:06 -0800 Subject: [PATCH 45/66] Update app.js battery icon actually works now --- apps/93dub/app.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index fc52b8829..a0def3c51 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -77,11 +77,14 @@ g.setColor(1,1,1); // draw battery indicator var batPercent = E.getBattery(); if (Bangle.isCharging()) {selBattery = imgBattery_Charge;} -else {selBattery=imgBattery;} +else { +selBattery=imgBattery; +g.setColor(0,0,0); +g.fillRect(129,61,(129 + batPercent / 10),65); +g.setColor(1,1,1);} g.drawImage(selBattery,127,59); if (batPercent != null) { g.drawImage(imgPercent, 118,60); - } //draw 24 hr indicator and 12 hr specific behavior From 9e897dfd50c2ff4cc6c012724305e5e079b02dab Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:13:21 -0800 Subject: [PATCH 46/66] Update app.js removed other nonfunctional comment block --- apps/93dub/app.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index a0def3c51..43ca5a5ea 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -4,14 +4,6 @@ const is12Hour = (require("Storage").readJSON("setting.json", 1) || {})["12hour" // define background var imgBg = require("heatshrink").decompress(atob("2GwgJC/AH4A/AH4A/AH4A/AH4A/ACcGAhAV/Cp3gvdug+Gj0AgeABYMBAQMIggVEg/w/9/h/Gn8As3ACpk559zznmseAs0B13nq/Rie+uodCIIUZw9hzFmv+AgcCmco7MRilow1ACpN8gFhwMilFRCoMowgVEIIVhIINhwFg4GiCpfw/dhx/mn4uBCoXRhWktAVFTIVhw9mj8YseDkUnqPEoeuugVEAAlgSgICBACAVC8AUQCQQVSAEsD/4ASeYgA/ACkHNiK5Cj4VR/AVBng+RCQVwCqMOAQPhIKOHgEB44VR8YVBx4VR+eAgOfCqPxwEDCqX5CoKvS/PAgc/YqQVU/gV/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/Cv4V/CsMfCqP4CoOfCqP54EBx4VR+OAgPPCqPzwEA44VR4cAgHhCqMHCoNwAQIAPjwCBngVRvgCBV6XwCoMHCqPAHyIA/AEigEf4IAOkAEDoAPJWAtA+PHv+Al6uPCofAGAgALoHz51/8AVT+IVS+4VPpMR73woH27n/8Eh8+ZmadIqsoyGICofAkMUktJFZAVBzgVBv34YgMhi8RkIVJnGQIIN8/H34FB8kJiIVIkVEyGQkF8/Pj4GBkhBKCoOexEQvHx8fBgMXzMxTJkICoXCVx8AggDGABsD/4AB/AVQAH4APA")); -/* -I took the number bitmaps, added two columns to each digit (for spacing), and combined them for the Espruino Bitmap Font Generator. Here's the commands I used for processing the original 26 by 41 px font: -mogrify -gravity east -extent 28x41 *.png -montage num_[0-9].png -geometry +0+0 numcat.png - -I then put numcat.png into the generator. -*/ - // define fonts // reg number first char 48 28 by 41 var fontNum = atob("AAAAAAAAAAAAAA//8D//g//8P/+I//8//44//w//j4//A/+P4/8A/4/4AAAAD/4AAAAP/wAAAAf/gAAAA//AAAAB/+AAAAD/8AAAAH/4AAAAP/wAAAAf/gAAAA//AAAAB/+AAAAD/8AAAAH/wAAAAH/H/gH/H8f/gf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wB/4AP/4H/4A//4f/4D//5//4P//h//4//+B//4AAAAAAAAAAAAAAAAAf/+AAAB//4gAAD//jgAAD/+PgABj/4/gAHj/j/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8f88AAfx/8wAAfH/8AAAcf/8AAAR//4AAAH//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAA4AAAAAD4AAYAAP4AD8AA/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAHgAH/H/GH/H8f/gf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAP//AAAAP//AAAAP//AAAAP/8AAAAP/2AAAAP/eAAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAB/7x/4AH/7H/4Af/4f/4B//5//4H//h//4f/+B//4AAAAAAAAAAAAAD//wAAAD//wAAAj//gAADj/+AAAPj/5gAA/j/ngAD/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8AA8f8fwAAx/8fAAAH/8cAAAf/8QAAA//8AAAA//8AAAAAAAAAAAAAA//8D//g//8P/+I//8//44//0//j4//Y/+P4/94/4/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAPwAH/AAPH/H8AAMf/HwAAB//HAAAH//EAAAH//AAAAH//AAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAGAAAAAAOAAAAAAeAAAAAA+AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB+AAAAAD8AAAAAH4AAAAAPwAAAAAfgAAAAA/AAAAAB8AAAAADx/4B/4HH/4H/4Mf/4f/4R//5//4H//h//4f/+B//4AAAAAAAAAAAAAD//wP/+D//w//4j//z//jj//T/+Pj/9j/4/j/3j/j/gAfgAP/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/AA/AAf8f+8f8fx/+x/8fH/+H/8cf/+f/8R//4f/8H//gf/8AAAAAAAAAAAAAA//8AAAA//8AAAI//8AAA4//0AAD4//YAAP4/94AA/4AH4AD/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/4APwAP/wAfgAf/gA/AA//AB+AB/+AD8AD/8AH4AH/wAPwAH/H/vH/H8f/sf/Hx//h//HH//n//Ef/+H//B//4H//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); From b28986c249a952edaac1b5e4b624ab357dcb81c3 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:19:09 -0800 Subject: [PATCH 47/66] Delete app.png --- apps/93dub/app.png | Bin 650 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/93dub/app.png diff --git a/apps/93dub/app.png b/apps/93dub/app.png deleted file mode 100644 index 59950c8959c296dabb9cf98ef9721cba82763012..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmV;50(Jd~P)EX>4Tx04R~2kiAO7U=)U*RIB38q&P^246X$iJGoSaAXJF4g3&2WQYDTsSyeb*-@o*)?BzGs=+MTZ z9fW1xcijPv@%gGb#Y@*{HP8JSOHo{gs&i!)=0ye8fw(uTa>GitZin8H_(5z(X%>l} z#Jf=%88*9KnoPqVO>@n9oL!uozOsYE38%Q&jF>VZp`xprsdG$^eN~5ofO|?p)r45R znPw_(M5UA*4n;$eu4(Ywsr_8JjHEG_CX>@2HM@dak zSAh-}0002hNkl$iJIG%Fl*5j zDS+@7MS=c1sV?Qg^i@b&5CuviM0ahgE7k9O^tN0Q9;dm__+B9>ceyJHhFdsrx^j@TOI0j9t!}DR= kje2Q0^&!ql94NdZKiy|bRt}#=Pyhe`07*qoM6N<$f{COZCjbBd From 47c8edba4f040716d5860b56588a98687914ac36 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:19:25 -0800 Subject: [PATCH 48/66] Add files via upload --- apps/93dub/93dub.png | Bin 0 -> 650 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/93dub/93dub.png diff --git a/apps/93dub/93dub.png b/apps/93dub/93dub.png new file mode 100644 index 0000000000000000000000000000000000000000..59950c8959c296dabb9cf98ef9721cba82763012 GIT binary patch literal 650 zcmV;50(Jd~P)EX>4Tx04R~2kiAO7U=)U*RIB38q&P^246X$iJGoSaAXJF4g3&2WQYDTsSyeb*-@o*)?BzGs=+MTZ z9fW1xcijPv@%gGb#Y@*{HP8JSOHo{gs&i!)=0ye8fw(uTa>GitZin8H_(5z(X%>l} z#Jf=%88*9KnoPqVO>@n9oL!uozOsYE38%Q&jF>VZp`xprsdG$^eN~5ofO|?p)r45R znPw_(M5UA*4n;$eu4(Ywsr_8JjHEG_CX>@2HM@dak zSAh-}0002hNkl$iJIG%Fl*5j zDS+@7MS=c1sV?Qg^i@b&5CuviM0ahgE7k9O^tN0Q9;dm__+B9>ceyJHhFdsrx^j@TOI0j9t!}DR= kje2Q0^&!ql94NdZKiy|bRt}#=Pyhe`07*qoM6N<$f{COZCjbBd literal 0 HcmV?d00001 From da41d04d2681afd5bafe9f39660ca6c8a15a787a Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:20:21 -0800 Subject: [PATCH 49/66] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 554d18e11..9ee92bfaf 100644 --- a/apps.json +++ b/apps.json @@ -4460,7 +4460,7 @@ { "id": "93dub", "name": "93 Dub", "shortName":"93 Dub", - "icon": "icon.png", + "icon": "93dub.png", "version":"0.01", "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo", "tags": "clock", From 6eb7a844d6839456c13a4402c5212b9bb9dbd3ad Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:26:36 -0800 Subject: [PATCH 50/66] Update app.js fix battery graphics --- apps/93dub/app.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index 43ca5a5ea..718c75e9a 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -68,13 +68,14 @@ g.setBgColor(0,0,0); g.setColor(1,1,1); // draw battery indicator var batPercent = E.getBattery(); -if (Bangle.isCharging()) {selBattery = imgBattery_Charge;} +if (Bangle.isCharging()) { +g.drawImage(imgBattery_Charge,127,59); +} else { -selBattery=imgBattery; +g.drawImage(imgBattery,127,59); g.setColor(0,0,0); g.fillRect(129,61,(129 + batPercent / 10),65); g.setColor(1,1,1);} -g.drawImage(selBattery,127,59); if (batPercent != null) { g.drawImage(imgPercent, 118,60); } From d87930e4d37ea5248b7de93825735967e75030b3 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:27:51 -0800 Subject: [PATCH 51/66] Update apps.json --- apps.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps.json b/apps.json index 9ee92bfaf..ba97bfeb4 100644 --- a/apps.json +++ b/apps.json @@ -4466,6 +4466,8 @@ "tags": "clock", "type": "clock", "supports":["BANGLEJS2"], + "readme": "README.md", + "allow_emulator": true, "storage": [ {"name":"93dub.app.js","url":"app.js"}, {"name":"93dub.img","url":"app-icon.js","evaluate":true} From 40d19aad2e4d672171b4feeee6b9c6f4cdbb11a1 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 22:29:57 -0800 Subject: [PATCH 52/66] Update apps.json added screenshot to app store listing --- apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps.json b/apps.json index ba97bfeb4..508bd253a 100644 --- a/apps.json +++ b/apps.json @@ -4461,6 +4461,7 @@ "name": "93 Dub", "shortName":"93 Dub", "icon": "93dub.png", + "screenshots": [{"url":"screenshot.png"}], "version":"0.01", "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo", "tags": "clock", From 89e88e717211d8c80b0e258114be7498722aa783 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sat, 27 Nov 2021 23:39:51 -0800 Subject: [PATCH 53/66] Update app-icon.js hopefully fix launcher icon --- apps/93dub/app-icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/93dub/app-icon.js b/apps/93dub/app-icon.js index 771a64556..39d11fd6a 100644 --- a/apps/93dub/app-icon.js +++ b/apps/93dub/app-icon.js @@ -1 +1 @@ -E.toArrayBuffer(atob("AAAAAAAAAAAAAAAAAgBAAAAAA39zmsbAA/f6vbtgA3X2o0aAAAAAAAAAH//////4AAAAAAAAAAAAAAAAD//////wEAAAAAAIF//////oF//////oF//////oF//////oF//////oF//////oF///4iPoF///9rfoF/x/+jfoF/x/4rfoF//////oF//////oF//////oF//////oF/cP4YfoF/fv/ffoF/fufffoF/fufffoF/cP4ffoF/fv/ffoF/fv/ffoF/fufffoF/cOYffoF//////oF//////oF//////oEAAAAAAID//////wAAAAAAAAAAAAAAAAAf+id/+AAAC2dAAAAACcZAAAAACcVAAAAAAAAAAAAAAAAAAA")) +require("heatshrink").decompress(atob("mEwwkBG2XwAgcPC6P/h//AAIDBA4Pwh/w+AGBAgIDBC4oVDAAITBCAIIBAYIBBAgIvHh4YCFgQPBAoIvCCwoAWIQYAQGLgAWI6bQVdQiiDOyAX/C/7+IAIYvSh4RBAYIXLAwJAHC6ZFCF5yn/C7wDBBAJ3EVAKBDC5QLBYAoLFC5nwCgoXlL44vSL653sL4QXBL6DvXC9YCBACIXCZ4YAQFaYAgPAhqCa4SDFLoZpICYIXDQKLyCDIQXVAAKI0AAYA==")) From 426ec0350fff5ce87dd2e8a6096c80f2f0e1b448 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:10:47 -0800 Subject: [PATCH 54/66] Update README.md added credits --- apps/93dub/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/93dub/README.md b/apps/93dub/README.md index 1f2d25b75..fd24d54d8 100644 --- a/apps/93dub/README.md +++ b/apps/93dub/README.md @@ -2,4 +2,10 @@ ![](screenshot.png) -93 Dub was made by Brandon Abbott and used many portions from Espruino documentation, example watchfaces, and the waveclk app (Gordon Williams). It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources and adapted for Bangle.js 2's screen. Time, date and the battery display works. It is not pixel perfect to the original. +Uses many portions from Espruino documentation, example watchfaces, and the waveclk app. It also sourced from Jon Barlow's 91 Dub v2.0 source code and resources and adapted for Bangle.js 2's screen. Time, date and the battery display works. It is not pixel perfect to the original. + +Contributors: +Leer10 +Orviwan (original watchface and assets) +Gordon Williams (Bangle.js, watchapps for reference code and documentation) +DiscoMinotaur (adjustments) From c3fac095b83c9936dedef8dad70578b4593923db Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:19:21 -0800 Subject: [PATCH 55/66] Update app.js add discominotaur's adjustments (cause a battery on the watchface isn't useful when the widget does the work anyways) maybe i'll do it as a setting later --- apps/93dub/app.js | 33 +++++++-------------------------- 1 file changed, 7 insertions(+), 26 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index 718c75e9a..516360043 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -25,8 +25,6 @@ var imgSun = E.toArrayBuffer(atob("Ig8BwHf7D7Ac/MHD/z8wMP/PzMQ/8/M/D/z8z8QPf7f6A // define icons var imgSep = E.toArrayBuffer(atob("BhsBAAAAAA///////////////AAAAAAA")); -var imgBattery = E.toArrayBuffer(atob("EAkBAAF//X/8f/x//H/8f/x//QAB")); -var imgBattery_Charge = E.toArrayBuffer(atob("EAkBAAF//UEERwRf9EHEQQR//QAB")); var imgPercent = E.toArrayBuffer(atob("BwcBuq7ffbqugA==")); var img24hr = E.toArrayBuffer(atob("EwgBj7vO53na73tcDtu9uDev7vA93g==")); var imgPM = E.toArrayBuffer(atob("EwgB+HOfdnPu1X3ar4dV9+q+/bfftg==")); @@ -66,23 +64,10 @@ var d = date.getDate(), w = date.getDay(); g.reset(); g.setBgColor(0,0,0); g.setColor(1,1,1); -// draw battery indicator -var batPercent = E.getBattery(); -if (Bangle.isCharging()) { -g.drawImage(imgBattery_Charge,127,59); -} -else { -g.drawImage(imgBattery,127,59); -g.setColor(0,0,0); -g.fillRect(129,61,(129 + batPercent / 10),65); -g.setColor(1,1,1);} -if (batPercent != null) { -g.drawImage(imgPercent, 118,60); -} //draw 24 hr indicator and 12 hr specific behavior if (is24hr){ -g.drawImage(img24hr,32, 82); +g.drawImage(img24hr,32, 65); if (leadingZero){ h = ("0"+h).substr(-2);}} else if (h > 12) {g.drawImage(imgPM,40, 70); @@ -95,7 +80,7 @@ else if (h > 12) {g.drawImage(imgPM,40, 70); //draw separator if (separator){ -g.drawImage(imgSep, 85,108);} +g.drawImage(imgSep, 85,98);} //draw day of week var imgW = null; @@ -106,7 +91,7 @@ if (w == 3) {imgW = imgWed;} if (w == 4) {imgW = imgThr;} if (w == 5) {imgW = imgFri;} if (w == 6) {imgW = imgSat;} -g.drawImage(imgW, 85, 78); +g.drawImage(imgW, 85, 63); // draw nums @@ -120,16 +105,12 @@ if (h<10) { } else {h = " " + h;} } -g.drawString(h, 25, 100, true); -g.drawString(("0"+m).substr(-2), 92, 100, true); +g.drawString(h, 25, 90, true); +g.drawString(("0"+m).substr(-2), 92, 90, true); // draw date g.setFontCustom(fontDate, 48, 12, 15); -g.drawString(("0"+d).substr(-2), 123,78, true); -// draw battery -g.setFontCustom(fontTiny, 48, 6, 8); -if (batPercent < 10) {batPercent = " " + batPercent;} //makes sure zero is next to percent sign -if (batPercent < 100) {g.drawString(batPercent, 105, 59, true);} - else {g.drawString(batPercent, 99, 59, true);} +g.drawString(("0"+d).substr(-2), 123,63, true); + // widget redraw Bangle.drawWidgets(); queueDraw(); From b25ad7573e19ccf6f617381e5ac78260ddeef36a Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:21:57 -0800 Subject: [PATCH 56/66] Delete screenshot.png --- apps/93dub/screenshot.png | Bin 3675 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/93dub/screenshot.png diff --git a/apps/93dub/screenshot.png b/apps/93dub/screenshot.png deleted file mode 100644 index de25e4d2c173d0661775c3dd47f8a0713d5b1d62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3675 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 Date: Sun, 28 Nov 2021 14:22:04 -0800 Subject: [PATCH 57/66] Add files via upload --- apps/93dub/screenshot.png | Bin 0 -> 3297 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/93dub/screenshot.png diff --git a/apps/93dub/screenshot.png b/apps/93dub/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..197c52c018739e13eb44b17b4273cc21d7e1d9f3 GIT binary patch literal 3297 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 Date: Sun, 28 Nov 2021 14:23:24 -0800 Subject: [PATCH 58/66] Create ChangeLog --- apps/93dub/ChangeLog | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/93dub/ChangeLog diff --git a/apps/93dub/ChangeLog b/apps/93dub/ChangeLog new file mode 100644 index 000000000..617319f8a --- /dev/null +++ b/apps/93dub/ChangeLog @@ -0,0 +1 @@ +0.01 Added DiscoMinotaur's adjustments From b9b7cfb50cfc62401a768653d9b4fd910256840c Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:23:49 -0800 Subject: [PATCH 59/66] Delete screenshot.png --- apps/93dub/screenshot.png | Bin 3297 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/93dub/screenshot.png diff --git a/apps/93dub/screenshot.png b/apps/93dub/screenshot.png deleted file mode 100644 index 197c52c018739e13eb44b17b4273cc21d7e1d9f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3297 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 Date: Sun, 28 Nov 2021 14:24:18 -0800 Subject: [PATCH 60/66] Add files via upload --- apps/93dub/screenshot.png | Bin 0 -> 3297 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/93dub/screenshot.png diff --git a/apps/93dub/screenshot.png b/apps/93dub/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..197c52c018739e13eb44b17b4273cc21d7e1d9f3 GIT binary patch literal 3297 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 Date: Sun, 28 Nov 2021 14:25:23 -0800 Subject: [PATCH 61/66] Update apps.json added new version in json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 508bd253a..3fefba71e 100644 --- a/apps.json +++ b/apps.json @@ -4462,7 +4462,7 @@ "shortName":"93 Dub", "icon": "93dub.png", "screenshots": [{"url":"screenshot.png"}], - "version":"0.01", + "version":"0.02", "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo", "tags": "clock", "type": "clock", From bb537b1738573c756207cb883c4ed8fd95256bb0 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:27:14 -0800 Subject: [PATCH 62/66] Update ChangeLog --- apps/93dub/ChangeLog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/93dub/ChangeLog b/apps/93dub/ChangeLog index 617319f8a..c9e9949ed 100644 --- a/apps/93dub/ChangeLog +++ b/apps/93dub/ChangeLog @@ -1 +1,2 @@ -0.01 Added DiscoMinotaur's adjustments +0.01 Initial version for upload +0.02 DiscoMinotaur's adjustments (removed battery and adjusted spacing) From f423a6b91bbd698e72fa6a7cc002b068f506e291 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:54:17 -0800 Subject: [PATCH 63/66] Update app.js --- apps/93dub/app.js | 123 ++++++++++++++++++++++++---------------------- 1 file changed, 63 insertions(+), 60 deletions(-) diff --git a/apps/93dub/app.js b/apps/93dub/app.js index 516360043..92544304c 100644 --- a/apps/93dub/app.js +++ b/apps/93dub/app.js @@ -48,72 +48,75 @@ function queueDraw() { } function drawBackground() { -// set background -g.setBgColor(0,0,0); -g.setColor(1,1,1); -g.clear(); -g.drawImage(imgBg,0,0); -g.reset(); + g.setBgColor(0,0,0); + g.setColor(1,1,1); + g.clear(); + g.drawImage(imgBg,0,0); + g.reset(); } function draw(){ -drawBackground(); -var date = new Date(); -var h = date.getHours(), m = date.getMinutes(); -var d = date.getDate(), w = date.getDay(); -g.reset(); -g.setBgColor(0,0,0); -g.setColor(1,1,1); + drawBackground(); + var date = new Date(); + var h = date.getHours(), m = date.getMinutes(); + var d = date.getDate(), w = date.getDay(); + g.reset(); + g.setBgColor(0,0,0); + g.setColor(1,1,1); -//draw 24 hr indicator and 12 hr specific behavior -if (is24hr){ -g.drawImage(img24hr,32, 65); -if (leadingZero){ - h = ("0"+h).substr(-2);}} -else if (h > 12) {g.drawImage(imgPM,40, 70); - h = h - 12; - if (leadingZero){ - h = ("0"+h).substr(-2);} - else - {h = " " + h;} - } - -//draw separator -if (separator){ -g.drawImage(imgSep, 85,98);} - -//draw day of week -var imgW = null; -if (w == 0) {imgW = imgSun;} -if (w == 1) {imgW = imgMon;} -if (w == 2) {imgW = imgTue;} -if (w == 3) {imgW = imgWed;} -if (w == 4) {imgW = imgThr;} -if (w == 5) {imgW = imgFri;} -if (w == 6) {imgW = imgSat;} -g.drawImage(imgW, 85, 63); - - -// draw nums -// draw time -g.setColor(0,0,0); -g.setBgColor(1,1,1); -g.setFontCustom(fontNum, 48, 28, 41); -if (h<10) { - if (leadingZero) { - h = ("0"+h).substr(-2); + //draw 24 hr indicator and 12 hr specific behavior + if (is24hr){ + g.drawImage(img24hr,32, 65); + if (leadingZero){ + h = ("0"+h).substr(-2); + } + } else if (h > 12) { + g.drawImage(imgPM,40, 70); + h = h - 12; + if (leadingZero){ + h = ("0"+h).substr(-2); + } else { + h = " " + h; } - else {h = " " + h;} -} -g.drawString(h, 25, 90, true); -g.drawString(("0"+m).substr(-2), 92, 90, true); -// draw date -g.setFontCustom(fontDate, 48, 12, 15); -g.drawString(("0"+d).substr(-2), 123,63, true); + } -// widget redraw -Bangle.drawWidgets(); -queueDraw(); + //draw separator + if (separator){ + g.drawImage(imgSep, 85,98);} + + //draw day of week + var imgW = null; + if (w == 0) {imgW = imgSun;} + if (w == 1) {imgW = imgMon;} + if (w == 2) {imgW = imgTue;} + if (w == 3) {imgW = imgWed;} + if (w == 4) {imgW = imgThr;} + if (w == 5) {imgW = imgFri;} + if (w == 6) {imgW = imgSat;} + g.drawImage(imgW, 85, 63); + + + // draw nums + // draw time + g.setColor(0,0,0); + g.setBgColor(1,1,1); + g.setFontCustom(fontNum, 48, 28, 41); + if (h<10) { + if (leadingZero) { + h = ("0"+h).substr(-2); + } else { + h = " " + h; + } + } + g.drawString(h, 25, 90, true); + g.drawString(("0"+m).substr(-2), 92, 90, true); + // draw date + g.setFontCustom(fontDate, 48, 12, 15); + g.drawString(("0"+d).substr(-2), 123,63, true); + + // widget redraw + Bangle.drawWidgets(); + queueDraw(); } From 590f022a91c430a832df0d9c64d9cde837b82cdf Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:55:32 -0800 Subject: [PATCH 64/66] Update ChangeLog --- apps/93dub/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/93dub/ChangeLog b/apps/93dub/ChangeLog index c9e9949ed..375e60d49 100644 --- a/apps/93dub/ChangeLog +++ b/apps/93dub/ChangeLog @@ -1,2 +1,3 @@ 0.01 Initial version for upload 0.02 DiscoMinotaur's adjustments (removed battery and adjusted spacing) +0.03 Style cleanup From ada93e894d76497dd48956020cd3dc3649441dbf Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:55:46 -0800 Subject: [PATCH 65/66] Update ChangeLog --- apps/93dub/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/93dub/ChangeLog b/apps/93dub/ChangeLog index 375e60d49..e7423b2c9 100644 --- a/apps/93dub/ChangeLog +++ b/apps/93dub/ChangeLog @@ -1,3 +1,3 @@ 0.01 Initial version for upload 0.02 DiscoMinotaur's adjustments (removed battery and adjusted spacing) -0.03 Style cleanup +0.03 Code style cleanup From 050b9c2b807c5e66405a8549bbfa47e4a1421f33 Mon Sep 17 00:00:00 2001 From: leer10 Date: Sun, 28 Nov 2021 14:56:18 -0800 Subject: [PATCH 66/66] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 3fefba71e..af798e293 100644 --- a/apps.json +++ b/apps.json @@ -4462,7 +4462,7 @@ "shortName":"93 Dub", "icon": "93dub.png", "screenshots": [{"url":"screenshot.png"}], - "version":"0.02", + "version":"0.03", "description": "Fan recreation of orviwan's 91 Dub app for the Pebble smartwatch. Uses assets from his 91-Dub-v2.0 repo", "tags": "clock", "type": "clock",