From 9910fdcf85ec9748f2b1caeb25fc1d2d3877375d Mon Sep 17 00:00:00 2001 From: Bundyo Date: Mon, 14 Feb 2022 12:13:50 +0200 Subject: [PATCH] Initial push --- apps/neonx/ChangeLog | 1 + apps/neonx/README.md | 16 ++++ apps/neonx/metadata.json | 19 ++++ apps/neonx/neoniox-screenshot.png | Bin 0 -> 1409 bytes apps/neonx/neonx-icon.js | 1 + apps/neonx/neonx-screenshot.png | Bin 0 -> 1532 bytes apps/neonx/neonx.app.js | 153 ++++++++++++++++++++++++++++++ apps/neonx/neonx.png | Bin 0 -> 885 bytes apps/neonx/neonx.settings.js | 54 +++++++++++ 9 files changed, 244 insertions(+) create mode 100644 apps/neonx/ChangeLog create mode 100644 apps/neonx/README.md create mode 100644 apps/neonx/metadata.json create mode 100644 apps/neonx/neoniox-screenshot.png create mode 100644 apps/neonx/neonx-icon.js create mode 100644 apps/neonx/neonx-screenshot.png create mode 100644 apps/neonx/neonx.app.js create mode 100644 apps/neonx/neonx.png create mode 100644 apps/neonx/neonx.settings.js diff --git a/apps/neonx/ChangeLog b/apps/neonx/ChangeLog new file mode 100644 index 000000000..af7f83942 --- /dev/null +++ b/apps/neonx/ChangeLog @@ -0,0 +1 @@ +0.01: Initial release diff --git a/apps/neonx/README.md b/apps/neonx/README.md new file mode 100644 index 000000000..4fb209951 --- /dev/null +++ b/apps/neonx/README.md @@ -0,0 +1,16 @@ +# Neon X and IO X Clock + +This is a clock based on Pebble's Neon X and Neon IO X watchfaces. +Can be switched between in Settings menu. +It can be accessed through the app/widget settings menu of the Bangle.js + +## Settings available + +### Neon IO X: +Activate the Neon IO X clock look, a bit hard to read until one gets used to it. + +### Thickness +The thickness of watch lines, from 1 to 5. + +### Date on touch +Shows the current date as DD MM on touch and reverts back to time after 5 seconds or with another touch. diff --git a/apps/neonx/metadata.json b/apps/neonx/metadata.json new file mode 100644 index 000000000..c271c4c57 --- /dev/null +++ b/apps/neonx/metadata.json @@ -0,0 +1,19 @@ +{ + "id": "neonx", + "name": "Neon X & IO Clock", + "shortName": "Neon X Clock", + "version": "0.01", + "description": "Pebble Neon X & Neon IO X for Bangle.js", + "icon": "neonx.png", + "type": "clock", + "tags": "neonx,neonio,neoniox,clock", + "supports": ["BANGLEJS", "BANGLEJS2"], + "allow_emulator": true, + "screenshots": [{"url": "neonx-screenshot.png"}], + "storage": [ + {"name": "neonx.app.js", "url": "neonx.app.js"}, + {"name": "neonx.img", "url": "neonx-icon.js", "evaluate": true}, + {"name": "neonx.settings.js", "url": "neonx.settings.js"} + ], + "data": [{"name": "neonx.json"}] +} diff --git a/apps/neonx/neoniox-screenshot.png b/apps/neonx/neoniox-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0b33b0819b3fe137ca02e84663215b891cd400ef GIT binary patch literal 1409 zcmc(f`%hbS6u`f?FQm4slwk@5iDQ6LaYco~25kq-(g7_}1bLMXhk(-BO<kk zTlaa3?nC2eysJan`3%4+S;ld1GP*OfD~6>8txiX%3cyIJf|VPN6A*lo@fkpxOf4$d z^MCQ|;V4a;I7t&7Y*wfy&?i^~C_7G|fFzTI6v_A^WE|n z52rTpCurw@juehxTT=^_pv!w5E{LWQUDPCJkWg}oij0iq()HU>f$y}gD zW`rRCf13ySKE0j4ST<^C8136UOyG1e`z{y3ybJdgM-nYlJ|E}JDSNXGddDAbMUQLus9DnE$SN4%pwW~|35)ceJ;FhsIj2*%3coB0p#L|WZeicr#C4GW1d zPNxwWXz|%PCZH(whRq&`6z-G0Oal0ND@!ehA(5cAA3{L>&gmSc48D6kPXX9SopE}e z^dF~PB%mhoE9u(F%J!Vew%It?jC{?P29sp4;nTv^g~k<3Q6$aoLutgzUT0z;i?jIV$U#+R?P zIQb2I&nE)BH!9(I$Y7fXDF`r7(74kI@L2|Sl9PgqeMaoWRdz)~2BdJLr6LFc^DIh= zvpB@vk~pFN{Zg063SQg&2Os5DMwvGErM;X?n*R4kZMIOa{t%5x5AH1xTk|K%o4$ zqlpA``vPZPYx||ZmhSm(CWMYO_lKz%+^K>Fb~(xtA8nLR`YOgaVvhXy#%az;|IL(8m=GEZIeF Z?cvKd=utviL$&j#0^uo9Y-hCW(qG6ARo?&r literal 0 HcmV?d00001 diff --git a/apps/neonx/neonx-icon.js b/apps/neonx/neonx-icon.js new file mode 100644 index 000000000..b67932ccb --- /dev/null +++ b/apps/neonx/neonx-icon.js @@ -0,0 +1 @@ +E.toArrayBuffer(atob("hYWDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA22AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG22wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA22AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkAAAAAAAAAAAAAAAAAAAAAAAAkkAAAAABtttttttttttttttttttttttttsAAAAAAEkgAAAAAAAAAAAAAAAAAAAAAAAEkgAAAANtttttttttttttttttttttttttttgAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAABtttttttttttttttttttttttttttsAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAANtttttttttttttttttttttttttttgAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAABtttttttttttttttttttttttttttsAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAANtttttttttttttttttttttttttgAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkgAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAAANtttttttttttttttttttttttttgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAABtttttttttttttttttttttttttttsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkkAAAANtttttttttttttttttttttttttttgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkkgAAABtttttttttttttttttttttttttttsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkgAAAANtttttttttttttttttttttttttttgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkkAAAAABtttttttttttttttttttttttttsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=")) diff --git a/apps/neonx/neonx-screenshot.png b/apps/neonx/neonx-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..f18348f529313acdce3a2f26aa48075a9046094c GIT binary patch literal 1532 zcmeAS@N?(olHy`uVBq!ia0vp^8$g(Y4M?uv{v-}aF%}28J29*~C-ahlfpwdwi(^Pd z+}pd3elngSu7O$qyUVzjt`-0~M)a}{3_ixo__r|5Hat!)= zEsy`xU@+iV&CRgq*Do2l1hz17hKjFWEo~0)tkGlm@alDOMT2BSEW?AV*Pnl2Fy63> z;lS$k=N~erC6qEYgvZZ6%zWm+D<+2Z`|R4;XEa`AWr(Y-<>NPCriy_U5$NZmB{oWcILZU5)}iAB%c_-#+8?{_PErnv9_ z?z+SIBDH^#uFs6uv?_Udzn*u#$S>}CNydM_a_2Grxf$QNzu;wj{S)zhhZjC){L#Am z$6Id(Jzhq=ssC=g`Kx|pA$R@CNB4g$az6i<_s`eUAKCPH`5FIxcaP`&RKBP3e=hq6 zeukL7gwJ~z4!9nBXkK91#Cu@9G{cXtW$pVfN$+4`+YusllObjkbBtDR4ujrJpuuit z4Ab8*O!rcjZtyN^@LoER_kgPPfu)yDusxV0`yePYg}LA)U%^U~O^iEI*lDMIwsFIK z`KPbu_kR1=6K$`R-EwQDJXgWXSG*vXo@11&oa1aS^1wN9|G!*DaDWUFcO!+`@5BTD zw*M;PJa5i0y{w%fp7-5*P5JvDHZn6X$8hc0!uVrp4*R|n(m$52VAwz9?E!JwUsDwS zxBU1O`%~Q|lcQkem*dBPk~#Zc__6M3d|z@~ye6zczhY&1l}ZB@dDrS0j_+WQe{uLf R3$Qq6@O1TaS?83{1OVRWcLx9f literal 0 HcmV?d00001 diff --git a/apps/neonx/neonx.app.js b/apps/neonx/neonx.app.js new file mode 100644 index 000000000..a9d89f9bd --- /dev/null +++ b/apps/neonx/neonx.app.js @@ -0,0 +1,153 @@ +/** + * Bangle.js Neon X/IO X Clock + * + * Author: Bundyo + * Repo: + * Initial code based on Numerals Clock by Raik M. + * Pebble Watchface Author: Sam Jerichow + * Created: February 2022 + */ + +const digits = { + 0:[[15,15,85,15,85,85,15,85,15,15]], + 1:[[85,15,85,85]], + 2:[[15,15,85,15,85,50], [15,50,15,85,85,85]], + 3:[[15,15,85,15,85,85,15,85]], + 4:[[15,15,15,50], [85,15,85,85]], + 5:[[85,15,15,15,15,50], [85,50,85,85,15,85]], + 6:[[85,15,15,15,15,85,85,85,85,50]], + 7:[[15,15,85,15,85,85]], + 8:[[15,15,85,15],[15,85,85,85]], + 9:[[15,50,15,15,85,15,85,85,15,85]], +}; + +const colors = { + x: [ + ["#FF00FF", "#00FFFF"], + ["#00FF00", "#FFFF00"] + ], + io: [ + ["#FF00FF", "#FFFF00"], + ["#00FF00", "#00FFFF"] + ] +}; + +const is12hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"]||false; +const screenWidth = g.getWidth(); +const halfWidth = screenWidth / 2; +const scale = screenWidth / 240; +const REFRESH_RATE = 10E3; + +let interval = 0; +let showingDate = false; + +function drawLine(poly, thickness){ + for (let i = 0; i < poly.length; i = i + 2){ + if (poly[i + 2] === undefined) { + break; + } + + if (poly[i] !== poly[i + 2]) { + g.fillRect(poly[i], poly[i + 1] - thickness / 2, poly[i + 2], poly[i + 3] + thickness / 2); + } else { + g.fillRect(poly[i] - thickness / 2, poly[i + 1], poly[i + 2] + thickness / 2, poly[i + 3]); + } + + g.fillCircle(poly[i], poly[i + 1], thickness / 2); + g.fillCircle(poly[i + 2], poly[i + 3], thickness / 2); + } +} + +let settings = require('Storage').readJSON('neonx.json', 1); + +if (!settings) { + settings = { + thickness: 4, + io: 0, + showDate: 1 + }; +} + +function drawClock(num){ + let tx, ty; + + for (let x = 0; x <= 1; x++) { + for (let y = 0; y <= 1; y++) { + const current = ((y + 1) * 2 + x - 1); + let newScale = scale; + + g.setColor(colors[settings.io ? 'io' : 'x'][y][x]); + + if (!settings.io) { + tx = (x * 100 + 18) * newScale; + ty = (y * 100 + 32) * newScale; + } else { + newScale = 0.33 + current * 0.4; + + tx = (halfWidth - 139) * newScale + halfWidth; + ty = (halfWidth - 139) * newScale + halfWidth + 12; + } + + for (let i = 0; i < digits[num[y][x]].length; i++) { + drawLine(g.transformVertices(digits[num[y][x]][i], { x: tx, y: ty, scale: newScale}), settings.thickness); + } + } + } +} + +function draw(date){ + let d = new Date(); + let l1, l2; + + showingDate = date; + + if (date) { + setUpdateInt(0); + + l1 = ('0' + (new Date()).getDate()).substr(-2); + l2 = ('0' + ((new Date()).getMonth() + 1)).substr(-2); + + setTimeout(_ => { + draw(); + setUpdateInt(1); + }, 5000); + } else { + l1 = ('0' + (d.getHours() % (is12hour ? 12 : 24))).substr(-2); + l2 = ('0' + d.getMinutes()).substr(-2); + } + + g.clearRect(0,24,240,240); + + drawClock([l1, l2]); +} + +function setUpdateInt(set){ + if (interval) { + clearInterval(interval); + } + + if (set) { + interval = setInterval(draw, REFRESH_RATE); + } +} + +g.clear(1); + +Bangle.setUI("clock"); + +setUpdateInt(1); +draw(); + +if (settings.showDate) { + Bangle.on('touch', () => draw(!showingDate)); +} + +Bangle.on('lcdPower', function(on){ + if (on){ + draw(); + setUpdateInt(1); + } else setUpdateInt(0); +}); + +Bangle.loadWidgets(); +Bangle.drawWidgets(); diff --git a/apps/neonx/neonx.png b/apps/neonx/neonx.png new file mode 100644 index 0000000000000000000000000000000000000000..5c7563051a5438ac8abc37c41938a8e399dd2c0b GIT binary patch literal 885 zcmeAS@N?(olHy`uVBq!ia0vp^tsu<71|&;wS=%r$Fy?1EI|pPYCo?c;Oe~$a*V`#j z;#hrFqWm;xUO`?yF<#Cff!@^S?v@#jVcl{2ne6qxYbmaE^lrW&u=R`S7x^nvTf|r# z1zk+OvVYm?a_8RSCZS5b=lksE70;VqJdgQXfZyravUMlKz1&nJKIj||vpE<3=F8=? zD))Azy()fK(6R0DYq{C0%I&VM{=2WMubE8(@!ylW+kRcy3nZfU&iDsN%mnq#9` zqhgbIg0Xe|)OjmDcR%u(YcC>w@r2EdP=Ehrt-`u%QhWD&*s;NUzIJx+=M}Se1hp=8 zU3u8Z-JnxIrJSNEjLXO_RXy6l-P z%XhIk@upjk$i?IwzOY!%{E_KN#mn>j4&Rpiax~$ASXJ2TNYiVUwGA(p*<9p(BY$AV zoAUL4nf^9qaI%V+-2=t|XMsm#F#`j)5C}6~x?A@L7$0jqT^vIy;@;jp?RUt5!QtYy zAOH8q_-=8l=JuGvYW)07g>G7rq*T<5R7Qpd_K1AjM3LK@a_{G_KW%mPM*WStbBBMM zq{zkfl^+m!Kkc#B#@TsWE!GL`KAe@fRKdluqe*~Ok;_S>MS~+yU=i&EW~A}!?&huA zbXx)FO$LVK-GBc6-zKw9x&G5%+d literal 0 HcmV?d00001 diff --git a/apps/neonx/neonx.settings.js b/apps/neonx/neonx.settings.js new file mode 100644 index 000000000..7defe131b --- /dev/null +++ b/apps/neonx/neonx.settings.js @@ -0,0 +1,54 @@ +(function(back) { + function updateSettings() { + storage.write('neonx.json', neonXSettings); + } + + function resetSettings() { + neonXSettings = { + thickness: 4, + io: 0, + showDate: 1 + }; + + updateSettings(); + } + + let neonXSettings = storage.readJSON('neonx.json',1); + + if (!neonXSettings) resetSettings(); + + let thicknesses = [1, 2, 3, 4, 5]; + + const menu = { + "" : { "title":"Neon X & IO"}, + "Neon IO X": { + value: 0 | neonXSettings.io, + min: 0, max: 1, + format: v => v ? "On" : "Off", + onchange: v => { + neonXSettings.showDate = v; + updateSettings(); + } + }, + "Thickness": { + value: 0 | thicknesses.indexOf(neonXSettings.thickness), + min: 0, max: thicknesses.length - 1, + format: v => thicknesses[v], + onchange: v => { + neonXSettings.thickness = thicknesses[v]; + updateSettings(); + } + }, + "Date on touch": { + value: 0 | neonXSettings.showDate, + min: 0, max: 1, + format: v => v ? "On" : "Off", + onchange: v => { + neonXSettings.showDate = v; + updateSettings(); + } + }, + "< back": back + }; + E.showMenu(menu); +})