From c64882a82feee1bdb4836d8e9a46170cd2fa31df Mon Sep 17 00:00:00 2001 From: Noah Howard <3317164+nh-99@users.noreply.github.com> Date: Tue, 24 May 2022 12:09:25 -0400 Subject: [PATCH] Add r2d2 clock --- apps/r2d2clk/ChangeLog | 1 + apps/r2d2clk/README.md | 11 ++++++ apps/r2d2clk/app-icon.js | 1 + apps/r2d2clk/app.js | 67 ++++++++++++++++++++++++++++++++++++ apps/r2d2clk/app.png | Bin 0 -> 3143 bytes apps/r2d2clk/metadata.json | 15 ++++++++ apps/r2d2clk/screenshot.png | Bin 0 -> 2885 bytes 7 files changed, 95 insertions(+) create mode 100644 apps/r2d2clk/ChangeLog create mode 100644 apps/r2d2clk/README.md create mode 100644 apps/r2d2clk/app-icon.js create mode 100644 apps/r2d2clk/app.js create mode 100644 apps/r2d2clk/app.png create mode 100644 apps/r2d2clk/metadata.json create mode 100644 apps/r2d2clk/screenshot.png diff --git a/apps/r2d2clk/ChangeLog b/apps/r2d2clk/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/r2d2clk/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/r2d2clk/README.md b/apps/r2d2clk/README.md new file mode 100644 index 000000000..cd98b9170 --- /dev/null +++ b/apps/r2d2clk/README.md @@ -0,0 +1,11 @@ +# R2D2 Clock + +A clock with R2D2's shiny metal face on it. :) + +![](screenshot.png) + +## Creator + +Made by [Noah Howard](https://github.com/nh-99) + +Based on [Interlaced Clock](https://github.com/espruino/BangleApps/tree/master/apps/intclock) \ No newline at end of file diff --git a/apps/r2d2clk/app-icon.js b/apps/r2d2clk/app-icon.js new file mode 100644 index 000000000..246df9376 --- /dev/null +++ b/apps/r2d2clk/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("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")) \ No newline at end of file diff --git a/apps/r2d2clk/app.js b/apps/r2d2clk/app.js new file mode 100644 index 000000000..a7ead76f1 --- /dev/null +++ b/apps/r2d2clk/app.js @@ -0,0 +1,67 @@ +Graphics.prototype.setFontUndo = function(scale) { + // Actual height 19 (20 - 2) + this.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKqKAqooCqigKqKAAAACgAAKAAAoAACgAAAAAAAAACgAAKAAAoAACgAAAAAAKCgAoKAKqqAqqoCqqgKqqAKCgAoKAKqqAqqoCqqgKqqAKCgAoKAAAAAKgoAqCgKqKAqooKiioqKKiooqKiioKKqAoqoCgqAKCoAAAACoCgKgKAiCoCIKgKioAqKgACoAAKgACoAAKgACoqAKioCoIgKgiAoCoCgKgAAAAKqgAqqAKqqAqqoKiioqKKiooqKiioKAKAoAoCgCgKAKAAAACgAAKAAAoAACgAAAAAAKqgAqqAKqqAqqoCgCgKAKAAAACgCgKAKAqqoCqqgCqoAKqgAAAACigAKKAAqoACqgAqoACqgAKqAAqoAAqoACqgAKKAAooAAAAAAoAACgAAKAAAoAAqqACqoAKqgAqqAAKAAAoAACgAAKAAAAAAACoAAKgAAqAACoAAAAAoAACgAAKAAAoAACgAAKAAAoAACgAAKAAAoAACgAAKAAAAAAACgAAKAAAoAACgAAAAAAoAACgAAqAACoAAqAACoAAqAACoAAqAACoAAqAACoAAqAACoAAKAAAoAAAAAACqoAKqgCqqgKqqAoAoCgCgKAKAoAoCqqgKqqAKqgAqqAAAAAqqoCqqgKqqAqqoAAAAKCqAoKoCiqgKKqAoooCiigKKKAoooCqigKqKAKgoAqCgAAAAoAoCgCgKAKAoAoCiigKKKAoooCiigKqqAqqoAqqACqoAAAACqAAKoAAqoACqgAAKAAAoAACgAAKAAqqoCqqgKqqAqqoAAAAKoKAqgoCqigKqKAoooCiigKKKAoooCiqgKKqAoKgCgqAAAAAKqgAqqAKqqAqqoCiigKKKAoooCiigKKqAoqoCgqAKCoAAAACgAAKAAAoAACgAAKAAAoAACgAAKAAAqqoCqqgCqqAKqoAAAACqoAKqgCqqgKqqAoooCiigKKKAoooCqqgKqqAKqgAqqAAAAAKgAAqAAKqAAqoACigAKKAAooACigAKqqAqqoAqqgCqqAAAACgCgKAKAoAoCgCgAAAAoAqCgCoKAKgoAqAAAAAKAAAoAAKoAAqgAKqgAqqAKgqAqCoCgCgKAKAAAAAoKACgoAKCgAoKACgoAKCgAoKACgoAKCgAoKACgoAKCgAAAAKAKAoAoCoKgKgqAKqgAqqAAqgACqAACgAAKAAAAACgAAKAAAoAACgAAKKKAoooCiigKKKAqoACqgACoAAKgAAAAACqqAKqoCqqgKqqAoAACgAAKCoAoKgCiqgKKqAoooCiigKqqAqqoAqqACqoAAAAAqqgCqqAqqoCqqgKKAAooACigAKKAAqqoCqqgCqqAKqoAAAAKqqAqqoCqqgKqqAoooCiigKKKAoooCqqgKqqAKCgAoKAAAAAKqgAqqAKqqAqqoCgCgKAKAoAoCgCgKAKAoAoCgCgKAKAAAACqqgKqqAqqoCqqgKAKAoAoCoKgKgqAKqgAqqAAqgACqAAAAACqoAKqgCqqgKqqAoooCiigKKKAoooCgCgKAKAoAoCgCgAAAAKqoAqqgKqqAqqoCigAKKAAooACigAKAAAoAACgAAKAAAAAAAqqACqoAqqoCqqgKAKAoAoCiigKKKAoqoCiqgKKqAoqoAAAAKqqAqqoCqqgKqqAAoAACgAAKAAAoACqqgKqqAqqoCqqgAAAAoAoCgCgKAKAoAoCqqgKqqAqqoCqqgKAKAoAoCgCgKAKAAAAAAKAAAoAACoAAKgAAKAAAoAACgAAKAqqoCqqgKqoAqqgAAAAKqqAqqoCqqgKqqACqAAKoACqoAKqgCoKgKgqAoAoCgCgAAAAqqgCqqAKqqAqqoAACgAAKAAAoAACgAAKAAAoAACgAAKAAAACqqgKqqAqqoCqqgCoAAKgAAKgAAqAAKgAAqAAKqqAqqoCqqgKqqAAAACqqgKqqAqqoCqqgCoAAKgAAKgAAqAAqqoCqqgKqqAqqoAAAACqoAKqgCqqgKqqAoAoCgCgKAKAoAoCqqgKqqAKqgAqqAAAAAqqoCqqgKqqAqqoCigAKKAAooACigAKqAAqoAAqAACoAAAAAAqqACqoAqqoCqqgKAKAoAoCgKgKAqAqqoCqqgCqqAKqoAAAAKqqAqqoCqqgKqqAooACigAKKgAoqACqqgKqqAKioAqKgAAAAKgoAqCgKqKAqooCiigKKKAoooCiigKKqAoqoCgqAKCoAAAACgAAKAAAoAACgAAKqqAqqoCqqgKqqAoAACgAAKAAAoAAAAAAKqoAqqgCqqgKqqAAAoAACgAAKAAAoCqqgKqqAqqgCqqAAAAAqqACqoAKqoAqqgAAKgAAqAACoAAKgKqoAqqgCqoAKqgAAAACqqgKqqAqqoCqqgACoAAKgACoAAKgAAKgAAqAKqqAqqoCqqgKqqAAAACoKgKgqAqqoCqqgAqgACqAAKoAAqgAqqoCqqgKgqAqCoAAAAKoAAqgACqgAKqAAAqoACqgAKqAAqoCqgAKqAAqgACqAAAAAAoCoCgKgKCqAoKoCiqgKKqAqooCqigKoKAqgoCoCgKgKAAAACqqgKqqAqqoCqqgKAKAoAoAAAAKAAAoAACoAAKgAAKgAAqAAAqAACoAACoAAKgAAKgAAqAAAqAACoAACgAAKAAAACgCgKAKAqqoCqqgKqqAqqoAAA"), 32, atob("DQULDw0RDQUHBw0NBQ0FEQ0FDQ0NDQ0NDQ0FBQsNCw0RDQ0NDQ0NDQ0NDQ0NDw0NDQ0NDQ0NDQ8NDQ0HEQc="), 22+(scale<<8)+(1<<16)); + return this; +}; + +var IMAGEWIDTH = 117; +var IMAGEHEIGHT = 60; +var r2d2 = require("heatshrink").decompress(atob("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")); + +// 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)); +} + +function draw() { + //reset().clearRect(0,24,g.getWidth(),g.getHeight()-IMAGEHEIGHT); + // draw r2d2 + g.drawImage(r2d2, (g.getWidth()/2)-(IMAGEWIDTH/2), g.getHeight()-IMAGEHEIGHT); + + var x = g.getWidth()/2; + var y = g.getHeight()/2 - 30; + g.reset(); + // work out locale-friendly date/time + var date = new Date(); + var timeStr = require("locale").time(date,1).trim(); + var dateStr = require("locale").date(date).toUpperCase(); + + + // draw time + g.setFontAlign(0,0).setFont("Undo:3"); + g.clearRect(0,y-30,g.getWidth(),y+30); // clear the background + g.drawString(timeStr,x,y); + // draw date + y += 40; + g.setFontAlign(0,0).setFont("Undo"); + g.clearRect(0,y-10,g.getWidth(),y+20); // clear the background + g.drawString(dateStr,x,y); + // queue draw in one minute + queueDraw(); +} + +// Clear the screen once, at startup +g.clear(); +// draw immediately at first, queue update +draw(); +// Stop updates when LCD is off, restart when on +Bangle.on('lcdPower',on=>{ + if (on) { + draw(); // draw immediately, queue redraw + } else { // stop draw timer + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + } +}); +// Show launcher when middle button pressed +Bangle.setUI("clock"); +// Load widgets +Bangle.loadWidgets(); +Bangle.drawWidgets(); \ No newline at end of file diff --git a/apps/r2d2clk/app.png b/apps/r2d2clk/app.png new file mode 100644 index 0000000000000000000000000000000000000000..94502501d69c4d629548302d7d8b3fa7b5126452 GIT binary patch literal 3143 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 literal 0 HcmV?d00001 diff --git a/apps/r2d2clk/metadata.json b/apps/r2d2clk/metadata.json new file mode 100644 index 000000000..f2cde76f4 --- /dev/null +++ b/apps/r2d2clk/metadata.json @@ -0,0 +1,15 @@ +{ "id": "r2d2clk", + "name": "R2D2 Clock", + "shortName":"R2D2 Clock", + "version":"0.01", + "description": "A clock with R2D2's shiny metal face on it. :)", + "icon": "app.png", + "type": "clock", + "tags": "clock", + "supports" : ["BANGLEJS2"], + "readme": "README.md", + "storage": [ + {"name":"r2d2clk.app.js","url":"app.js"}, + {"name":"r2d2clk.img","url":"app-icon.js","evaluate":true} + ] +} diff --git a/apps/r2d2clk/screenshot.png b/apps/r2d2clk/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b3ca84f82f68f44b89a9c46a66fbe09adf0422 GIT binary patch literal 2885 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 literal 0 HcmV?d00001