From 32e1642555d656bcc88b0e84dc18076c6dd65d8c Mon Sep 17 00:00:00 2001 From: Stefano Baldan Date: Sat, 4 Apr 2020 14:14:01 +0200 Subject: [PATCH] Added minion themed clock --- apps.json | 13 +++++++ apps/minionclk/ChangeLog | 1 + apps/minionclk/app-icon.js | 1 + apps/minionclk/app.js | 65 +++++++++++++++++++++++++++++++++++ apps/minionclk/minionclk.png | Bin 0 -> 5654 bytes 5 files changed, 80 insertions(+) create mode 100755 apps/minionclk/ChangeLog create mode 100755 apps/minionclk/app-icon.js create mode 100755 apps/minionclk/app.js create mode 100755 apps/minionclk/minionclk.png diff --git a/apps.json b/apps.json index f0bc4874a..d5d321bbe 100644 --- a/apps.json +++ b/apps.json @@ -1059,5 +1059,18 @@ "storage": [ {"name":"widmp.wid.js","url":"widget.js"} ] + }, + { "id": "minionclk", + "name": "Minion clock", + "icon": "minionclk.png", + "version": "0.01", + "description": "Minion themed clock.", + "tags": "clock,minion", + "type": "clock", + "allow_emulator": true, + "storage": [ + {"name":"minionclk.app.js","url":"app.js"}, + {"name":"minionclk.img","url":"app-icon.js","evaluate":true} + ] } ] diff --git a/apps/minionclk/ChangeLog b/apps/minionclk/ChangeLog new file mode 100755 index 000000000..7b83706bf --- /dev/null +++ b/apps/minionclk/ChangeLog @@ -0,0 +1 @@ +0.01: First release diff --git a/apps/minionclk/app-icon.js b/apps/minionclk/app-icon.js new file mode 100755 index 000000000..f78fb9e35 --- /dev/null +++ b/apps/minionclk/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwhAaXlZEolVVvOj0mq1XOv9/qtWFb8rquj1XV5wBDAA2jvMqNLMqwAsCABBhBAIujqpbWvIsCLowBHMg0qFyVVFQJNDK4YoEAYxjFvIuQwHP6ur5+rDgfU5wBDMI2qCYOsC4XV0bFOwIWBAAeBAIOrMYYsF54sCCIWswQDB52AGBcrFIOtF4gAEMoJfDAAOrCYQuDAIowKFwQWIBIeA52pGQPWLYgAFA4YDBGA4uDEwQYFGQvPL4IuKC4wwHFglWAIQYIYoQuFCYwDGqrqFF4YYCYBKeHHwgRLlZhCLowMBKIIubWAtWF4PXBQRdEBAIBHGAoTRCIRfCDQQvBLofXB4NVBIQcDFweAOYdWp9WqwrDGA8ABoRJFAAOswFOqtUwBNFeQYVCwMqp4ABqwbDCowvCAgKOGf4N5aAIwKKIVPpwRBGQOBFw5fCIgZfGwFVlT/BqtVBQQwFUAVWFwMAlYvCL6mBqkqDgNUF4RLGAgVPFwMAklPwD0GX5gOCXoReBJgSvDIwWrAoN6py/Cp58DCYxQBVIYwHqyQBbgL6EX4qQDFwRdFLAifBaoQaEAJIuDCYWrEgoTIGAerWIJfHGRZdECZ5fD0bQBIwJgEIoynEGBJxIAAYPBwHNlUq6owBMIZ4OMKQPC0eiqsr53PX4guOwBhOComk0ejqpfB53OJZAeDU4lVvN5OQQXKBIeA0RfBvNV5wwBMI4uD1oLDFoN4AQJEMBYWl0fOL4NUL4QwCPw4BEwN4AAejvGACZaMBLoRfGAIWr1Z8HwGkFQRIBDgekwAVGFoOAB4QTDqgvBFwQDD1Wk1el1YsBv4oDAIoAB0d/GQOlAIV/CpF51ZfFAIgAEUoOiAJYmEAAoHDvOBFxWqAIWpFxwnDOJABBquJ1QwM5oDCMYYDDAIN/5+r6CABHRKOBmVewIwCYY4sC0bGB678B1ekZYIAB0ulwOlvWkIQLJCMY0yq2sr2sMJYABp96vQnB0tPz4FBBANzAAWj5pdI0dWq0zr2Ir2rMJKQCvNIp9PudIuYDBAIV0FwSMFL4d/LoMzL4WBwIwD6hhH5ujuZXBFAIDDAIOdFwPNL4hdCwBdCq15AgMrAQLDB52pRYYACBIWjvGdK4NJAQOdvIlB5oXB0QwBLoWjqsrAAaSCGANVGAJHBSQjBEAAINBewIDCLYIBCAAJfDv5dCLAIvBvIEDAAJoBwGqDQSUBY4htDBwIBBAoIwDL4WjvNdhAvCAAYFGhDGCY4IAB1QABFwQwDv4BB1V/0eA0mALINdP4IpGMYcAAIQABGAIxDAAIFBruCroAGq1eFALkDmdeD4IjDGQYCCBQYDBCgIqBAJAoBAQIDCmeBCoIDCGgIfBLooADL4YBCJAIiCAANdAIQoCAI4ABAYdWKQQDDMooEBlVPBwJfCGAwABFxABDSAZYGLo1OvFOIgQaBLYZhFAIsyFgYAEFAUqpxUBFYQ=")) \ No newline at end of file diff --git a/apps/minionclk/app.js b/apps/minionclk/app.js new file mode 100755 index 000000000..b613a5192 --- /dev/null +++ b/apps/minionclk/app.js @@ -0,0 +1,65 @@ +const bob = require("heatshrink").decompress(atob("nk8hAaXlYLWAEsqvN/0gBBql5lQ2tquj1XV5wBJ52j0hACPsdP1QsBAQQAGBIIBF51/P8OkN5R1GIxF5HLmAFgoDLPZfOpzmZ6vPFwomCPaA6DAYOjeq2A1YyCdI4HGQJQ8F1T2SJ4Oq1XW1es1mtAQOrPoPUAIh3J54ZHIAR5S62s64cBwIBGQIOqHQK4HKQYVDAAIFC1g+BHh9VHAQAFDwQDDHoJ5E54BB6AaBKQ5YGqo6MwJzGHQ4BDeIj/BR4JxDABY8BvI6OOYgaEHwZADHgQ6BZA42GAIusPJNW64eFqzJDlcrERA8BHQI2FqwaBDYYGBPI45GCoIgCLoVWQ5NWXA2rKhaiGLAwOGEAmADxJPDVA51ElQaMC4ouEWALdEHRg8Dc4woCDJo8EAIYxCHQQIFHiwaRegJ5EcYWsHgbrKbBA8GDSrNDO4wfRKgR3FDSh3CN4UrdwZbSHYZ5DHajMFHYQGCHalWO4jtQDQwABwAGCAAQfTKoK0EHahwCeARdFHakASIZWVZ4Q8CO4YgWO4QbCO6hWGEIKYZKzZ3DLog7UG4I6C1lWDSdWO4bpCO4bwUwKYEHajMDwOAlUkLojTUd4gaTZoRWC0YIB1eJLqo4EWiqRE0mjlcr1QkEeKFWOooBCHiB2CC4WA5wzB52rEQgfPHQwABAYJXOHQ2iO4XO6omFEJh1BEAgBGPJlWDIQbC0ej50qgHV1XPEwohKcwRbEvJ3EBQTrLFomkOwOjlR3C5w8GMAR8ClYuBLIgOCvN4HgIZFDQYbBlaOBR4YNCwA5B0XOpzvBHgWqTw4AFxB1EvQ6BAAI8GDZILEdgQBCqp3DPIRfIEQwABvJ1CvGkvGiwA6IAYoBCv6wCAAVOlQ6DAIWkL5ABEwN40Z1CAYJfCv7zEAJNWOYZ3KAIWq5yYHFYLOBLIrVCAIh7BOIzpECoYDDpw7BHAQDG1WqwGkAIN/CwIABLY4LDAAZ9BwAABvLCBC5IBBvOrO44BEAAmjAIPN0XOAJyHIAAgPEquBHBi4BAId+HwWiHxqJDRpYBDq2I1R3LIAQ6BAAOpPogABGgIDDOomk0nP5pIGd42Aq1ewI8CeZI6CHAJhCEAIDCdIo2B0er1esAQIZBC4Z9JlVW1leeKGp0es5+s6+s6ABB0oFBAIervWr0ulub7OqtWmdexJ4BGxB5G0V6pF6wItB0t6p9PvQABvINBudJudPzwXCHQwBDlY6BO4WIwPPPJbvDvA0BFgNzAAIDGugGCzrtHdYh1DAIOBrzxBPIgAIeIXNHgoBCGwYADzoVB0fNOpMyHQdW5+Bro7BHgQAB6jxJAAOjOYhxCAIukOoPN5ujdZFWqyyD0d6AwUrquBwAuB1I1FHgRJBMoQ9BWg1zzw0BDYI6B0R3DAAJ1BvMyp8rAAV4IQWBIodewAeCHAZ5IAAJoBAAXHHAJWDO4TtEdYQvEHgejAwIKClcqIQRdDXYbzFeoQBIGwIDDOot/VgQ6FAAIGBlgBCAAMzmZPBF4LzDACB1FAAOi1WjvFVr0zGYQ7GAAMAAYpPBwNeAIOIwOrfYOA1eA1WkAIWjAIekv4PBwCVBruBq5eBEYIABlcBF4wCEHw55CHwQABIQQBBABkzAILlCHQR1CFYavEPgsAAAIDEDQNdAwQAaHQNWEwQ0DHAh3KleBLoI7dHQKuFWQo0EAIsISoKdBHbyyHNgwADlVVpwEBDANWro7fd4Q6HO495vF5QgIYCd75eBHYUINAN5lQ3EA")); + +const locale = require("locale"); + +const black = 0x0000; +const white = 0xFFFF; + +let hour = ''; +let minute = ''; +let date = ''; + +function draw() { + const d = new Date(); + + const newHour = ('0' + d.getHours()).substr(-2); + const newMinute = ('0' + d.getMinutes()).substr(-2); + const newDate = locale.date(d).trim(); + + g.setFontAlign(0, 0, 0); + + if (newHour !== hour) { + g.setFontVector(48); + g.setColor(black); + g.drawString(hour, 64, 92); + g.setColor(white); + g.drawString(newHour, 64, 92); + hour = newHour; + } + + if (newMinute !== minute) { + g.setFontVector(48); + g.setColor(black); + g.drawString(minute, 172, 92); + g.setColor(white); + g.drawString(newMinute, 172, 92); + minute = newMinute; + } + + if (newDate !== date) { + g.setFontVector(12); + g.setColor(black); + g.drawString(date, 120, 228); + g.setColor(0xFFFF); + g.drawString(newDate, 120, 228); + date = newDate; + } +} + +function drawAll() { + g.drawImage(bob, 0, 0, { scale: 4 }); + draw(); +} + +Bangle.on('lcdPower', function(on) { + if (on) { + drawAll(); + } +}); + +Bangle.loadWidgets(); +Bangle.drawWidgets(); +setInterval(draw, 1000); +drawAll(); + +setWatch(Bangle.showLauncher, BTN2, {repeat:false,edge:"falling"}); diff --git a/apps/minionclk/minionclk.png b/apps/minionclk/minionclk.png new file mode 100755 index 0000000000000000000000000000000000000000..77cac31df144daa3092f595ab388d5459e39903f GIT binary patch literal 5654 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 literal 0 HcmV?d00001