diff --git a/apps.json b/apps.json index d8f6db3c3..f98c6a1f8 100644 --- a/apps.json +++ b/apps.json @@ -4295,7 +4295,7 @@ "name": "LCARS Clock", "shortName":"LCARS", "icon": "lcars.png", - "version":"0.03", + "version":"0.04", "supports": ["BANGLEJS2"], "description": "Library Computer Access Retrieval System (LCARS) clock.", "type": "clock", diff --git a/apps/lcars/ChangeLog b/apps/lcars/ChangeLog index c8f9a262f..ff0677a04 100644 --- a/apps/lcars/ChangeLog +++ b/apps/lcars/ChangeLog @@ -1,3 +1,4 @@ 0.01: Launch app 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. \ No newline at end of file diff --git a/apps/lcars/bg_large.png b/apps/lcars/bg_large.png index d50c602ab..e11fb8e88 100644 Binary files a/apps/lcars/bg_large.png and b/apps/lcars/bg_large.png differ diff --git a/apps/lcars/bg_small.png b/apps/lcars/bg_small.png index 514e2f17d..5b705562d 100644 Binary files a/apps/lcars/bg_small.png and b/apps/lcars/bg_small.png differ diff --git a/apps/lcars/icon_hrm.png b/apps/lcars/icon_hrm.png deleted file mode 100644 index 38e50f837..000000000 Binary files a/apps/lcars/icon_hrm.png and /dev/null differ diff --git a/apps/lcars/lcars.app.js b/apps/lcars/lcars.app.js index 993d201c0..0a482f67e 100644 --- a/apps/lcars/lcars.app.js +++ b/apps/lcars/lcars.app.js @@ -3,12 +3,12 @@ */ const locale = require('locale'); var alarm = -1; -var hrmStr = "-" +var hrmValue = "-"; var backgroundImage = { width : 176, height : 151, bpp : 3, transparent : 2, - buffer : require("heatshrink").decompress(atob("AEcEiFBASFADpETps06YCcEYXnz15ASBBJzVp0wCdEYU8+fPASHAIJCAdQf6DpoUIkGCATCDWIBCDDzANJAGaDC6BB9QYWAQf804CD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/QbhA9Qf6D2oMEiFAQfoyB6ZBKQeYyBzVgQf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6Dnz1586D+AGaDNAGaD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qc8Bg8euPv337ASHwDQNz588+YCC5AlCjR6CARCDN+/fvoCV6AbBj158+eAQV4EwUTPQQCIQZcB859SQdkPQCyDpvaAWQbmYIBUDQC6DQAC8eQC6DQAC8XQf6D/AASAYQdCAYQf6DHAESDeAESD/Qf6D/Qf6DK+2LtmXQfu8FEiDb8BB9QYRA9QYZB+Qf6D/AAccuPHIPwA/AH4A/AH4AHyVJkhB+zVp0yD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6DlwCD/02QQf8kyVIkGChACeFAMo0WKAQOIC56/CQYQCi0kAgMv33794CUQYYChQYU9+/fvoCTviD/Qf6D/Qf6D/Qf6DLjSD/94=")) + buffer : require("heatshrink").decompress(atob("jlx44CdEQMHnnz54Ca/+OnHjAThlC8+evICaQf4CBQDqD/Qf6DruAlCAHJlC8BA8gCDDIPqD/Qf6D/QZEUQf6D/QYUEG2VwQf8D/yD/j//4CD+IIP4Qf6D/gH/Qf8HIIP/QfpBDGpCDzGQJBCj/x4CD4gY/CAAPj//4QZDCw+DFD/kBAQKD2n44Bn5BDJQWAQeh6BAQRBEgEf+CD0h7+CQYaACgf+Qel/4CDFYQYLCQeJ3DIJCPDQeNwII/wBASD0HAUPIJCDzj44DIJH/QeUffwZBE/yD6v5BE//AQesDIISD/QYvHj6D4PQRBCAoJBDh6DzgF+IIiJBIId/AQKDxGoZBCwCMB/6ABIIiDwF4RBB/hKEjlwCAaDwgP/8aCBGQcP/DLCQecB4/8QYJKFRIaDyAAKCB/AGDh6JEQeQABj//48cgEHHAKJEAGkD/0/QwIABAoJB4j/wQASGDIPQHFg/gIO59BIIyD4AH4A/AH4A/AH4A/AH4A/AEMcuPHAQoLLARvADQUYsOGASgZBkv/AA39EwUbtu27YCSwAaC6dNmgCUgEBNZImCj158+eASSDDjVp02aAScAh6CHQfDvKQesTQRCD3QBCD4QRKD/Qf6D/Qf6D/Qf6D/Qf6D/Qf6DNxkgwUIAQYmCiZoVDIUAyaDaD4YA5QQXgIPr+FQfxB+Qf6DD/qD/Qf4A/AH4A/AH4A/AH4A/AB0cuPHIP3z588Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6D/Qf6DbwCD/Qf6DC8CD/48cQf88+fNmnTpoCLkAXCi/fvv3ASgvCARk4QYYCP4CbGAUpQNAQqDE/4Am/qD/Qf6D/Qf6D/Qf6D/ARoA=")) } var iconPlanet = { @@ -23,12 +23,6 @@ var iconGps = { buffer : require("heatshrink").decompress(atob("pMkyQCFpH0BAwCJv/6CJ8l589CJ0kyf//wIDpVEChM8+/fBAdZ8QRIp++///0gIBlMkxI4IuZKB+/SKAPHzpKJ/YkB//pKAP2BYeXhIFDx88+fPvqYBnibEkmUAofv34lC/RQBBYdcmPCXIYjBEwPfvnzJoILBQoUlHAUuJQYmCDodw48cuBKGTA0WEYIEBJQ6YEQwMMuImBJQyYEkmZFAVkyVSJQ6YCyUcmPDjgmBTAJKETAlJiS4ETANPJQpxCJQtxTALgBEwnfvohBI4NZkmWpNlcAgAD/wzBEYaYCy8cJQiYEyIjCTAWS3wlGTAVIEwkerJKFTAkmOIclToK8GAAIPBIgImCufHyxxG59pEIS8DvfypMr968HEwOHEwfx8+cEYkpCIeSoiYByVf/uSkmTEQP7ZIiYDnl5AQNwBYgCGyOn38k2+2pIRKyVeuPPj1x4ccCJVKSgP/5cJA4NSExMps+cSoMMKAIVCCg7SBpd7TANZkmUHBMevPnjlwcwXCCJFEzYDBA4WWKIIRHpEw4+eNwUxEwKYIkVJk1IyIKFHA+DR4VcJQYCBJRBoCkxHBAgNkyyYKkmXEYaYMAQMSEYKYNAQOHEwnSfBYjBAgVaCJdJJSMkTAK8KYQyVKAQ4jBNxiYEcBCYJXIkgA=")) } -var iconHrm = { - width : 50, height : 50, bpp : 3, - transparent : 1, - buffer : require("heatshrink").decompress(atob("kmSpIC/AX4CT+PHjlxARfBkmGjFhAR2REZwCC7AjPAQIjQ48dw0//4ANsOB49/CJv8JQNjEh32JQN3BY/5AwpKLkhKQ8+eBIhKK/jZBJR/+vPnJR/JkmTJR3xJQN5JRPypMkz5uByfJk5KI/zXCFQMev/nC4JKIkhrBn4pB/+Sp5KJfwnnOIqVHSQS5CFgaVIDQPHj4FBOIJNCSo/9EAI/CFIJNCSo/njiSC/KYDcBH6IgQAFcBHx44RGcBYAHcBIAHJRAAJJRAAJJSrdEARfYsOGjACOngjP48EyQdHx04BAtkyTnCAQYsCDoILGAQ2OnfvCJ2TIgNwCJuSpHj335CJnxNYvBChU48ZKC3378gRJp6SGiQ4JkaSBJQP7EwIOEyA")) -} - var iconCompass = { width : 50, height : 50, bpp : 3, transparent : 2, @@ -72,50 +66,51 @@ function draw(queue){ g.drawImage(backgroundImage, 0, 24); // Draw raster - for(var x=0; x<6; x++){ - g.drawLine(115+x*10, 100, 115+x*10, 160); + // 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(110, 105+y*10, 170, 105+y*10); + g.drawLine(113, 105+y*10, 180, 105+y*10); } // Draw symbol var iconImg = - alarm >= 0 ? iconAlarm : - Bangle.isGPSOn() ? iconGps : - Bangle.isHRMOn() ? iconHrm : - Bangle.isCompassOn() ? iconCompass : - iconPlanet; - g.drawImage(iconImg, 115, 105); + alarm >= 0 ? iconAlarm : + Bangle.isGPSOn() ? iconGps : + Bangle.isCompassOn() ? iconCompass : + iconPlanet; + g.drawImage(iconImg, 120, 107); + + // Alarm within symbol + g.setFontAntonioMedium(); + if(alarm > 0){ + g.setFontAlign(0,0,0); + g.drawString(alarm, 120+25, 107+25); + g.setFontAlign(-1,-1,0); + } // Write time var currentDate = new Date(); var timeStr = locale.time(currentDate,1); g.setFontAlign(0,0,0); g.setFontAntonioLarge(); - g.drawString(timeStr, 57, 57); + g.drawString(timeStr, 55, 57); // Write date - g.setFontAlign(1,-1, 0); + g.setFontAlign(-1,-1, 0); g.setFontAntonioMedium(); var dayName = locale.dow(currentDate, true).toUpperCase(); var day = currentDate.getDate(); - g.drawString(day, 133, 37); - g.drawString(dayName, 133, 57); + g.drawString(day, 100, 37); + g.drawString(dayName, 100, 57); - // Alarm within symbol - if(alarm > 0){ - g.setFontAlign(0,0,0); - g.drawString(alarm, 115+25, 105+25); - g.setFontAlign(-1,-1,0); - } - - // HRM + // Temperature g.setFontAlign(-1,-1,0); g.drawString("HRM:", 20, 104); - g.drawString(hrmStr, 60, 104); + g.drawString(hrmValue, 60, 104); // Draw steps var steps = getSteps(); @@ -128,7 +123,6 @@ function draw(queue){ g.drawString("BAT:", 20, 144); g.drawString(charging + bat+ "%", 60, 144); - // Queue draw in one minute if(queue){ queueDraw(); @@ -153,6 +147,13 @@ function stepsWidget() { return undefined; } +/* + * HRM + */ +Bangle.on('HRM',function(hrm) { + hrmValue = hrm.bpm; +}); + /* * Handle alarm */ @@ -214,14 +215,6 @@ Bangle.on('swipe',function(dir) { }); -/* - * Measure heart rate - */ -Bangle.on('HRM', function(hrm) { - hrmStr = hrm.bpm; -}); - - /* * Stop updates when LCD is off, restart when on */ diff --git a/apps/lcars/screenshot.png b/apps/lcars/screenshot.png index 03b229b95..5622c4d86 100644 Binary files a/apps/lcars/screenshot.png and b/apps/lcars/screenshot.png differ