From e480433307488e8f94296512e13c761e7164b44a Mon Sep 17 00:00:00 2001 From: stweedo <108593831+stweedo@users.noreply.github.com> Date: Wed, 10 May 2023 16:47:51 -0500 Subject: [PATCH] Update fonts and images --- apps/shadowclk/app-icon.js | 2 +- apps/shadowclk/app.js | 182 ++++++++++++++++---------------- apps/shadowclk/app.png | Bin 2377 -> 13926 bytes apps/shadowclk/interface.html | 13 ++- apps/shadowclk/screenshot-1.png | Bin 3510 -> 3155 bytes apps/shadowclk/screenshot.png | Bin 3505 -> 3203 bytes 6 files changed, 98 insertions(+), 99 deletions(-) diff --git a/apps/shadowclk/app-icon.js b/apps/shadowclk/app-icon.js index afbb8269a..f77ccb81c 100644 --- a/apps/shadowclk/app-icon.js +++ b/apps/shadowclk/app-icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwxH+64Afq17AAlWq2sBYOtB4Urq2BFzeBwONAAeyHAQvCrPX1g3BlYvb02BjwADF4QmBwdZF4MrleBgAvlgAwBgqQBlcAF72HF46PBwaPDwK/dVoLpBAAwMBweDFTYA/AH4A/AH4A/AF2lAAOsBRIAF6AMDp9Wp+lFyNWkYABitWFwoKCAAsHBgMyBAkVwIuO6EVCod6F50A6+BBI0VMRxGEF6BfBIwZqHABRGCo5EIF4cOgEHAAUA0scBYQDDCAIvMhx7CCYTfDAYIvDK4McNoaODh1PPgcO1jsNiskOYQTBh0cjlW1iDHfwJfDjmeoDKEABSlCgAlCF4QJGcgwPEfQ5eMFQIvDRYIfClesioADEgcrSAguEwJeNh1AAgQkBwOlkkkQoOBvQACIgRAB685F4wJBF5oAGp4UJ1i6CeQK/Dg4ECZYQvTComsnNdrp+B0rADlaKD1l6X52BgAACJIgvEFIcO0sOF4cAAgeISgYvLMg8HKoOBAAIvEAAsOL4bwGFxyuDg/QGoYZBT5AKBXQYvVCYUH1gvFqwjGTwWBGA0AOwIAN6EOhytBAwIFBh1PAoN6g8VskVmUAZoelBQVABQIuPMAS6DfYWBMgI9CwMrq2lDA2Bq1PFqLpCHBAWKMIJGBAgRDEABiKBlYTDAYcA1gKBqwgFlYMBLoIaBCIKZDABh+BDIQVBC4WsF4YOBGAmsBQSgCAIIvQFYIiBKwReDFQI3DEIlWFIIsBCwIABF6JhClZhBZQo8BAYIOBIoh0CBIJ5DAH4AEPYKBDWwSGCAoKIDAoIwcEwJ/CRYICCFoI8BQ4YKBMDhWBEwIjBYQcAAYQKBZIRfdAIJVCQgLkDAYJjCcX4A/AH4A/AFwA==")) +require("heatshrink").decompress(atob("mEwxH+64Af1gAIB4uBwIIGFy+yAAoJBBgOt1o+DwIvdjwAEtBYBFwQvBLwUAF8sAGAODF4VWwIvetAAFL4zIJF6x/Bd5IvCAH4A/AH4A/AH4A/AA2sABAQLC5QvOkYAHjguGBYgmBC5FdF7tAF59WF5scAAQvKxALFF7KiDxAxDipeJF40VAAmBeaQjDmSeKF4pFBjlkdx4AEshMDEQJbBDwOsrsVNgSPKGCQbEUwIGCE4KSFF5VAF6LjDLwIvINoQvCjgADMCmso5eEAAOBAALyGG4QxBAARJDrpeWABC/EVJM5F54TCjheDF5haBAAKiEJQJeeH4jvErusTQQvQJwa3EWQYvMAAovOLwcOVg63EF5yqLAARyCLw4vLI4NrFolHhyqLEgU5isVmQKGoEcY4ldjkcEgeIoFkx9krtWFxo7NX4oHCB42BBI4A/AH4AcwNWwK/IWIILBWYesc4OBBYIEDcyQWBAQI0BEwQdCqwHBHwgtCHwwvTC4RJDEgQ3CB4IJFO4QLCNoYvOAAIDDlYJCAIYCCSYQSEAAbEWDAodXFyJ6CQQZaCAYQLGHzQgCVoIkEeATNEewYvZEoIgCLAbhCFgQ6GT1B0GF1oA/AH4AeA")) diff --git a/apps/shadowclk/app.js b/apps/shadowclk/app.js index 45d64e35d..20c2fe7d1 100644 --- a/apps/shadowclk/app.js +++ b/apps/shadowclk/app.js @@ -1,95 +1,95 @@ // Clock with large colored digits using the "Londrina" font and a slightly larger "Londrina Shadow" font on top Graphics.prototype.setFontLondrinaSolid = function() { - // Actual height 59 (64 - 6) - return this.setFontCustom( - E.toString(require('heatshrink').decompress(atob('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'))), - 46, - atob("DyEqHigoJikpJygqEQ=="), - 81 | 65536 - ); - }; - - Graphics.prototype.setFontLondrinaShadow = function() { - // Actual height 63 (67 - 5) - return this.setFontCustom( - E.toString(require('heatshrink').decompress(atob('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'))), - 46, - atob("DyEqHigoJikpJygqEQ=="), - 81 | 65536 - ); - }; - - Graphics.prototype.setFontDotGothic16 = function() { - // Actual height 20 (19 - 0) - return this.setFontCustom( - E.toString(require('heatshrink').decompress(atob('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'))), - 32, - atob("CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoA"), - 20|65536 - ); - }; - - let storage = require('Storage'); - - var settings = Object.assign({ - // default values - color: "#0ff", - theme: "light", - }, storage.readJSON("shadowclk.json", true) || {}); - - (function() { - let drawTimeout; - - function draw() { - var x = g.getWidth() / 2; - var y = g.getHeight() / 2; - g.reset().clearRect(Bangle.appRect); - var date = new Date(); - var hour = String(date.getHours()).padStart(2, '0'); - if (hour[0] === '0') hour = hour[1]; - var minutes = String(date.getMinutes()).padStart(2, '0'); - var timeStr = hour + ':' + minutes; - var color = settings.color; - g.setFontAlign(0, 0).setFont("LondrinaSolid").setColor(color).drawString(timeStr, x - 1, y); - g.reset().setFontAlign(0, 0).setFont("LondrinaShadow").drawString(timeStr, x - 1, y); - - var locale = require("locale"); - var dayOfMonth = date.getDate(); - var month = locale.month(date, 1).slice(0, 1).toUpperCase() + locale.month(date, 1).slice(1).toLowerCase(); - var year = date.getFullYear(); - var dayOfMonthStr = dayOfMonth.toString(); - if (dayOfMonth === 1 || dayOfMonth === 21 || dayOfMonth === 31) { - dayOfMonthStr += "st"; - } else if (dayOfMonth === 2 || dayOfMonth === 22) { - dayOfMonthStr += "nd"; - } else if (dayOfMonth === 3 || dayOfMonth === 23) { - dayOfMonthStr += "rd"; - } else { - dayOfMonthStr += "th"; - } - var dayOfWeek = locale.dow(date, 0).slice(0, 1).toUpperCase() + locale.dow(date, 0).slice(1).toLowerCase(); - var dateStr = month + " " + dayOfMonthStr + ", " + year + "\n" + dayOfWeek; - g.setFontAlign(0, 0).setFont("DotGothic16").drawString(dateStr, x, y + 48); - - if (drawTimeout) clearTimeout(drawTimeout); - drawTimeout = setTimeout(() => { - drawTimeout = undefined; - draw(); - }, 60000 - (Date.now() % 60000)); + // Actual height 59 (64 - 6) + return this.setFontCustom( + E.toString(require('heatshrink').decompress(atob('ADX/4AJHv/gBI8/+AJHj/4BI8P/gJHg/+BI8D/4JHgP/wBQbAFEBBJEHKBEfKCJuBUI6CBUI8P/6hHn//UI//AAImHAAJQFg4JCKAsfBJF/Do5XBAAI7FEwZPFEwZtFEwaBEEwYwFEwYwFEwaKFPwImGCYh1FTgKTHGISxGSYTPGJ4TjHWA5tCZw5QBew5QBJooACgwIHAELmIOAReGRwR8GBIhpEVgYeFBIozDBIr9DBIooDBIooDHYjhEBIxRCBIwyCdAXgbAQyCO4LxCBwP+dAb7Dv48CBIpLBHgRVEG4JvCv4iCFARGCn5fDG4JGCEQgtEEQgtEKAgTBKAgeCa4TmFS4w8BS46rGBISNCagwtCbw4JJGQoJDYAoJDFAoJDFApFCKIwJEDwavDaAjDECgq9CAEMBEpEDcYQAFg5DGQYRXGNwYJJRIirEHg4JBHg6BB/AJIIw4dBIw47BCY7dBE4LrCBwUHfgoiCc4oABSoQJGb4QJGOYTcCAAZzCHAQADOYRQBAAhzCKAIAEKF7+IAHUHNQR0BKASOCMAJVBKYaiBB4KhEB4ihEBIQPBUIgJCB4KhEBIQPBUIgJCB4KhFbwSbDKAQJCwAJCKAToC4AJCKAToC8AXCKAToC+AJCeQuABITyEBwIrB57yEBIeHeQgJBGoODeQgiBBIOBKAYuBBIWAKAa0CH4JmBKAQQB4DHCn5QE+AJCj5QE/wWB8ACBKAYAC8AqCKAQAC+AZBUIoJBDIKhFaoahFBIRQDEQKeDKAY8DR4TyFR4gJCGQQJBKAjACBIJQELYQJBKAgeCHAV/KAQPCJgQAjj5LCAAt/IIRPESQiMDBIQFCe4QJDLIReBNwiSCRgJkDPAIJDFAahBIwKRBVYojBYgQJCG4JQBYgRfCBIItCBII8CIIPwgfAEQLyE+DlBHgg3B+DlBGQJfCBITlCIwYOB/DlCPIbICcoQ3BIwQiBBIPgEAJGCv/+CwPwEAKwCEQQgDKAQiCv/8ewgYB4AWBBIJQCIwRsB8JQDRAQAEWogAEKAQbBBI48BAAhaCL4IAELQTFCBIw8GBIQyGfgZiBCY4yFBIYyFIoQoGLIQUEDYYAjh4oIeAgAEM4JPEBIgeHLgKBDAAZbBeAQADUYTwCBIzwCPIzwDAAUHRg6sEKAoJB/hQGNgP8v5QFBIP4n5QFNgPwj5QFNgPgh5QFBIRIBOw3ALgJQEBIRwCKQYdBCAIJCKQQ7Bf4hSCJ4IAEKQR3DAARSCRYYACKQSfDAAazEAAhSCBIxQEAAhQEAAhQSWwoNDBAxeCdApeDdApeDdAqvDGI4AkHAJCHS4fwBwJbDS4R/BI4iXCaAN/aYSXDaAL3DS4gOCG4ToDwAOBPQToD4AOBWoToD8AOBfgRQGGQZQFLYZQFGQZQGMoRBBBYJLCHgQEBx4kBGQJvCIIPHMIV/IwQOB8YuCPIn/+IkCFYJGCv/4EgQ3BQYU//gkCG4JQD/wkBwAJBKA3gKBH8BwJQE4aPCBIZQB8IJDUInwBIahE/CZCBIhQBTISrEKALgDMgZBBawbyFwDMCBIZQB4AoDPAQbBNgQJEKAT1DBIZQBcIYnCKAIhDJ4YAEgIcDAFhOEAASEBAALcCKIaqGBIwUEBIjTDBIpvEBIo+DBIqSBagQJEFAYJFFAZZDdA4AEKIT6EGQgJG/jyD/4MDHgTQBDAIKDHgQJGHgTyCEIRvDv4sBEIPPIwc/FgIJB4JGDNwIrC4AJDMgI2Bv/An5QCHAIsBn/gj5QCHAIOBj/wEYYkBEoMP/AjDEgIeBg/8EYJaCX4PwEIIJEDAP4KAJkEBwIyBBIoQBIIIrBNwYQCa4YJDGQOAZoTyDAwPAS4QJDFAItBBIovBEYIhBBIkHBIIhBGIYAEJ4YAgsAEDgL8DG4kDfgpLDHoTYDOgQZCbAYFCeQhzEeQg2CG4LyEGwTLCSwoOCDIZQDEQIZDKAbACKAzUFKAa1BWwZQDeQpQDBAJBF4BOCKovgIgRpF+BECPov4IgQJEKAJECTYv+IgSvFDYRYDPwhYESQgJGK4ZiDKAZiFKAZiGSYhYEU4hYEKAgJGKARiEKAhiEKAhYEKAhYFIwZYFIwYIGAEcBMwxQBn5xFI4KbCJQgGB8ByGQYSQGYAa4FBIp9DBIooDBIqvDbwbXFBIwyCdAb/FdAQADYgQJGHgTyCAAOHHgbyB/A0BwJvDeQP4CwOABgLyD/gWB4BBBIwQYBCwPgG4JGCDAIWB+AgBQYQYCEAZQEWgP+IIRQG45QFAAhQEBI6rGUKgJCHgirEHgwJCNgLyLz4JFGQS0BBIgoCQgInDFAaRDBISOBNQJzBBAYAzv48BgKqDN4ZXBLQgJCbQN/boQJDDYM/DwiyDe4JvDTwa6BFAYJC/CRB+DeF/yDB/joGTYIyDdAfAeRHgDAIyCIIIAB+AOBZQT8D/gOBMoT8DHgoEB/AlBKoI8CBIRsCBgTnCMQXAPIgiBCwJ5FWgRGBCwJGCJYIJBEARGCF4YJFEQU/LQRQCTgR7DKAgAFKAYAFKAYAFKAQlDBIqhDVwahFBIo8GdAQ8GeQwJGGQoJDZQYxELYxPCCgwIDAAcBEwYA/QoK8Bn5IFMQUfeQQJDOwMPeQSZDDQMHeQQACn4aBXYIJEj4aBGoYACh4aCTA4rCVggkBKCQAkA='))), + 46, + atob("DyEqHigoJikpJygqEQ=="), + 81 | 65536 + ); +}; + +Graphics.prototype.setFontLondrinaShadow = function() { + // Actual height 63 (67 - 5) + return this.setFontCustom( + E.toString(require('heatshrink').decompress(atob('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'))), + 46, + atob("DyEqHigoJikpJygqEQ=="), + 81 | 65536 + ); +}; + +Graphics.prototype.setFontRighteous = function() { + // Actual height 16 (15 - 0) + return this.setFontCustom( + E.toString(require('heatshrink').decompress(atob('ABN//ABBv0QA4N4AIVwAogACoEC+EH+EP4EOAovACIcPsEfsF7vABBjfghPAjEAv0As0Yv14n/gg+Aj34vP4sPYgH4gFgEgMP8Ef+F7nABBjcwjEwIwZNFEYM//H//3wn3AgwLBwEC8EO/3+v/8E4IfDmMAn+A/8A/0AAYIHBncAGQMDAIUHgEf4ABBBIYAEjwBChgGBB4YBJAAU4AIS1BhAFBgP4h/wHoKPBXYIlDj/gn/wuF4uE4sEYAYLXBBYK9BSwLhDAIKODuP4uYBB3ABDv84n84jgSCEoNzAIIRFFoUc8DFBv/gAIN+A4IBCWoIBBj7XEFoIBDu4BCH4XwsPggPAdIItBf4N+nFOnEOnB/Bg4tBwAmBQINwOoP4u5rB4CNEsEdS4ILBLIMYAIIFBBIINBgFAhznCn/AuPIuHYRIN7N4TnBZQcHnABBgTLBXoOeAIMBdYUHgEPwAZBnvgnHgiFAD4cNwABLCIcwsAbBdILbBg+AeIJoCPIfYTIR7BgABBv8AnwTCgIZB8EHuEP7ABE4EOoEH4CzBCoLNBQ4N48FwAIjvCboYACBIIBDuapBAIQJDnypBQYKBBcIU4vFwnABHmEwFI4PFXoSBCHpoVBsEYCJGAAISZDJY14JZD7BmJhCE48DVIIBEBYYVJgE4AIYJC+F/MYQVHJIXAJISBCoEIFJoBEgDRBToRxCU4wJECYI/Jn8AWIMD8EBG4rjQUILTNuHgAId/EYPAj+AFZ0+vF+n/2FaBhD7ArBjiHBXIM4ue4AI34uLtBoCLDS5YBBHIRbBDIN4dJXgCYNggF+C4JvB/CjBgZLBCIOADwNAFIYJBc4jxJF4YXBoEIRYN8E4SHBToa/BBoIRBvgtBAIOAgfAIIJDCwAJBBoIRBsAnCToKJBGoW4vzEBnFgIIMA//+AIfgh3AgxhBRoJ1BcoMH+AxBLYUACIIVBAIIdDBYMYCAQdBAYMQQoUAgYBMAAUwDY0BHYUP/EOnEOjADBA4ILDWYR5BWoPwCYQBECYMDboQnIAIUPnEGmA3NcogjH/ADBh+4EYcMTIK3C//49kA5gbHnYBCn8P/8H/0P/iFDaoQTBgABDPYRBB/EgCIgFBkEPv/+v/8A4IhFgPggY9Ch14hiwBhARFHYZlCHYgHFNYJBDgYZCB45THXJjhCZoaBC/7fHCYYjBEp3/EIJjLJoIBBgcYh/YAIMMAIf4AIVwCIN/8D3DSoMMjABBh+Ah4/CgChBAIQ1DHYKRCCYUBQISFBh/Ah66CAoQjGEIgHFCIPAhEIOYV4TIaBDJZE7gE/AIMP/0P/hLChBlCGYQBCNYUAjEDRoOAv/8//+/n+8EOAIIfBBIIBBv/+4EGBoYJC/kHwAfBCoMHAIgrBAYMGgA='))), + 32, + atob("BAQHCQcLCAQGBgkIBAgECAoFCQkKCQoICgoEBAgJCAoKCwsKCgkJCwsEBwoJDQsMCgwKCgkLCg0KCgkGCAYFCgQKCggKCAYKCQQECQQMCQkKCgcIBwkJDAgJCAcEBwcA"), + 16 | 65536 + ); +}; + +let storage = require('Storage'); + +var settings = Object.assign({ + // default values + color: "#0ff", + theme: "light", +}, storage.readJSON("shadowclk.json", true) || {}); + +(function() { + let drawTimeout; + + function draw() { + var x = g.getWidth() / 2; + var y = g.getHeight() / 2; + g.reset().clearRect(Bangle.appRect); + var date = new Date(); + var hour = String(date.getHours()).padStart(2, '0'); + if (hour[0] === '0') hour = hour[1]; + var minutes = String(date.getMinutes()).padStart(2, '0'); + var timeStr = hour + ':' + minutes; + var color = settings.color; + g.setFontAlign(0, 0).setFont("LondrinaSolid").setColor(color).drawString(timeStr, x - 1, y); + g.reset().setFontAlign(0, 0).setFont("LondrinaShadow").drawString(timeStr, x - 1, y); + + var locale = require("locale"); + var dayOfMonth = date.getDate(); + var month = locale.month(date, 1).slice(0, 1).toUpperCase() + locale.month(date, 1).slice(1).toLowerCase(); + var year = date.getFullYear(); + var dayOfMonthStr = dayOfMonth.toString(); + if (dayOfMonth === 1 || dayOfMonth === 21 || dayOfMonth === 31) { + dayOfMonthStr += "st"; + } else if (dayOfMonth === 2 || dayOfMonth === 22) { + dayOfMonthStr += "nd"; + } else if (dayOfMonth === 3 || dayOfMonth === 23) { + dayOfMonthStr += "rd"; + } else { + dayOfMonthStr += "th"; } - - Bangle.setUI({ - mode: "clock", - remove: function() { - if (drawTimeout) clearTimeout(drawTimeout); - drawTimeout = undefined; - delete Graphics.prototype.setFontLondrinaSolid; - delete Graphics.prototype.setFontLondrinaShadow; - delete Graphics.prototype.setFontDotGothic16; - } - }); - Bangle.loadWidgets(); - draw(); - setTimeout(Bangle.drawWidgets, 0); - })(); + var dayOfWeek = locale.dow(date, 0).slice(0, 1).toUpperCase() + locale.dow(date, 0).slice(1).toLowerCase(); + var dateStr = month + " " + dayOfMonthStr + ", " + year + "\n" + dayOfWeek; + g.setFontAlign(0, 0).setFont("Righteous").drawString(dateStr, x, y + 56); + + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(() => { + drawTimeout = undefined; + draw(); + }, 60000 - (Date.now() % 60000)); + } + + Bangle.setUI({ + mode: "clock", + remove: function() { + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + delete Graphics.prototype.setFontLondrinaSolid; + delete Graphics.prototype.setFontLondrinaShadow; + delete Graphics.prototype.setFontRighteous; + } + }); + Bangle.loadWidgets(); + draw(); + setTimeout(Bangle.drawWidgets, 0); +})(); \ No newline at end of file diff --git a/apps/shadowclk/app.png b/apps/shadowclk/app.png index c50f7ed61dafde3e84b71fa223a687f8a80dbed9..b1aa5c0b7df023904b24ac4a8a2383e046943474 100644 GIT binary patch literal 13926 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�>Wq&0JuDIux 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 - - 3-Bit Color Picker + 3-Bit Color Picker