From faab31f3e703167a668ead8c6f8328cf46b5df27 Mon Sep 17 00:00:00 2001 From: David Peer Date: Fri, 21 Jan 2022 21:36:45 +0100 Subject: [PATCH] Performance Improvements. --- apps/lcars/README.md | 3 +++ apps/notanalog/notanalog.app.js | 46 +++++++++++++++++++------------- apps/notanalog/screenshot_1.png | Bin 3648 -> 3700 bytes apps/notanalog/screenshot_2.png | Bin 3693 -> 3745 bytes 4 files changed, 31 insertions(+), 18 deletions(-) diff --git a/apps/lcars/README.md b/apps/lcars/README.md index 2b86921e5..017be246c 100644 --- a/apps/lcars/README.md +++ b/apps/lcars/README.md @@ -35,6 +35,9 @@ Access different screens via tap on the left/ right side of the screen ![](screenshot_2.png) +# Ideas +- Tap top / bottom to disable steps (also icon) and start a timer + ## Contributors - [David Peer](https://github.com/peerdavid). - [Adam Schmalhofer](https://github.com/adamschmalhofer). diff --git a/apps/notanalog/notanalog.app.js b/apps/notanalog/notanalog.app.js index 3bee7eb08..7fe25838a 100644 --- a/apps/notanalog/notanalog.app.js +++ b/apps/notanalog/notanalog.app.js @@ -41,9 +41,9 @@ Graphics.prototype.setTimeFont = function(scale) { return this; }; -Graphics.prototype.setNormalFont = function(scale) { - // Actual height 20 (20 - 1) - this.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAf/nAf/3Af/nAAAAAAAAAfgAAfgAAfAAAAAAAfgAAfgAAfgAAAAAADMAAHOAAf/gAf/gADMAADMAAf/gAf/gAf/gADMAAAAAAAggAD54AH98AfefAeOPAeHPAH38AHz8ABxwAPwAAf4BAYYHAcYfAf4/APz8AAPwAA/gAB+AAH5+Afj/AeDnAcDDAQD/AAB+AAAYAH38AP/+Af//Ae+HAccHAccHAcf/Acf/AAf/AAcAAAcAAAAAAAAAAfgAAfgAAfgAAAAAAAAAAH/8AP/+Af//AeAPAcAHAcAHAAAAAAAAAcAHAcAHAeAPAf//AP/+AH/8AAAAAAAAANgAAPgAAfwAAfwAAPgAANgAAAAAAAMAAAMAAAMAAAOAAD/4AD/4AAMAAAMAAAMAAAMAAAAAAAAAAAAHYAAH4AAHwAAAAAAAAAOAAAOAAAOAAAOAAAOAAAAAAAAAAAAHAAAHAAAHAAAAAAADAAB/AB//Af/+Af/AAfAAAAAAAAAAAH/8AP/+Af//AeAPAcAHAcAHAeAPAf//AP/+AH/8AB/wAAAAAf//Af//Af//AAAAAHgPAPgfAfh/AeD/AcH3AcfnAf/HAP8HAH4HAAAAAAAAAHg8APg+Afg/AeOPAcOHAceHAf//AP/+AH78AAAwAAAAAAD4AAP4AA/4AD+4AP44Af//Af//Af//AAA4AAA4AAAAAAAAAf+8Af++Af+/AccPAccHAcePAcf/AcP+AcH8AAAAAH/8AP/+Af//AeePAccHAccHAff/APv+AHn8ABBwAYAAAcAAAcABAcAPAcB/AcP/Ac/8Af/gAf8AAfgAAAAAAAAAAH38AP/+Af//Ae+HAccHAe+PAf//AP/+AH38AAAAAAAAAH88AP++Af/fAcPPAcHHAePPAf//AP/+AH/8AAAAAAAAAAOHAAOHAAOHAAAAAAAAAAOHYAOH4AOHwAAAAAEAAAOAAAfAAA/AAA7gABxwADg4ADA4AAAQAAAAAAAAAAZgAAZgAAZgAAZgAAZgAAZgAAZgAAZgAAZgAAZgAAAAADAYADg4ABxwAB7gAA/gAAfAAAOAAAEAAAAAAHwAAPwAAfwAAeD3AcP3Aef3Af+AAP8AAH4AAAAAAD/4AP/+Af//AeAPAc/HAc/nAc/3AeB3Af/3AP/nAH/PAAAHAAAAAAA/AA//Af//Af/8AfwcAf/8Af//AA//AAA/AAAAAAAAAf//Af//Af//AcOHAcOHAcfPAf//AP/+AH78ABgwAAAAAH/8AP/+Af//AeAPAcAHAcAHAfg/APg+AHg8ABgwAAAAAf//Af//Af//AcAHAcAHAcAHAf//AP/+AP/8AD/4AAAAAf//Af//Af//AcOHAcOHAcOHAcOHAcOHAAAAAAAAAf//Af//Af//AcOAAcOAAcOAAcOAAcOAAAAAAAAAAH/8AP/+Af//AeAPAcHHAcHHAfn/APn+AHn8ABnwAf//Af//Af//Af//AAOAAAOAAAOAAf//Af//Af//AAAAAAAAAf//Af//Af//AAAAAAA8AAA+AAA/AAAHAAAHAAAPAf//Af/+Af/8AAAAAAAAAf//Af//Af//AA+AAD/gAP/4Afj+AeA/AYAPAQADAAAAAf//Af//Af//AAAHAAAHAAAHAAAHAAAHAAAAAAAAAf//Af//Af//AfgAAHwAAD4AAPwAAfgAAf//Af//Af//AAAAAAAAAf//Af//Af//AH+AAA/wAAP8Af//Af//Af//AAAAAB/wAH/8AP/+Af//AcAHAcAHAeAPAf//AP/+AH/8AAAAAAAAAf//Af//Af//AcHAAcHAAcPAAf/AAP+AAP8AADwAAB/wAH/8AP/+Af//AcAHAcAHAeAPAf//AP//gH//gAABAAAAAf//Af//Af//AcOAAcOAAcOAAefgAf//AP//AH5/AAAAAH48AP8+Af8/AeePAcPHAcPPAf3/APz+AHx8AAAAAcAAAcAAAcAAAf//Af//Af//AcAAAcAAAcAAAAAAAf/wAf/8Af/+Af//AAAHAAAHAAAPAf//Af/+Af/8AAAAAfAAAf+AAf/8AB//AAD/AA//Af/+Af/AAfgAAQAAAcAAAf8AAf/8AP//AAH/AD//Af/+Af/AAf//AB//AAP/Af//Af/4Af4AAYAAAYADAfAfAf7/AP/+AB/gAH/8Af//Afh/AcAHAAAAAcAAAfgAAf8AAH//AA//AH//Af8AAfgAAcAAAAAAAcAfAcB/AcH/Acf/Ad/nAf+HAf4HAfgHAeAHAAAAAAAAAf//Af//Af//AcAHAcAHAcAHAcAHAcAAAf4AAf/4AH//AAP/AAAPAAAAAcAHAcAHAcAHAcAHAf//Af//Af//AAAAA"), 32, atob("BAUJCwkQDAUICAgLBQcFBwwFCwsLCgsLCwsFBQoLCgoNCgsLCwoKCwsFCgsKDQsLCwsMCgoLCg8KCgoIBwg="), 24+(scale<<8)+(1<<16)); +Graphics.prototype.setNormalFont = function(scale) { + // Actual height 19 (18 - 0) + this.setFontCustom(atob("AAAAAAAAAAAAAAD/5wP/3A/+cAAAAPwAA/AADAAAAgAA/AAD8AAIAAAAAAAxgADGAA/+AD/4ADGAAMYAD/4AP/gAMYAAxgAB84AP7wD3jwPHPA+f8A+/AB54AAAAB+AAP8BAwwcDnHwP8/AfPwAD8AA/AAPxwB+fgPh/A4GMCAfwAA+AAAAA+/AH/+A//8DjhwOOHA4/8Dj/wAP/AA4AADgAAAAAAAAD8AAPwAAwAAAAAAB/4Af/4D//wPAPA4AcDgBwAAAAAAADgBwOAHA//8B//gD/8AD/AAoAAGwAA/gAD+AAHwAAbAAAAAAAAAAAAAABgAAGAAAYAA/+AD/4AAYAABgAAGAAAYAAAByAAH4AAfAAAAAGAAA4AADgAAOAAA4AAAAAAAAAAAAAABwAAHAAAcAAAAAA/AD/8D//gP+AA8AAAAAAD/8Af/4D//wOAHA4AcDgBwPAPA//8B//gB/4AAAAAAAAP//A//8D//wAAAADAMA8DwHw/A+H8Dg/wOP3A/8cB/hwD4HAAAAAYEAHw8AfD4D4HwOOHA44cD//wH/+APvwAAAAAB4AAfgAH+AB/4AfjgD//wP//A//8AAOAAA4AAAAD/vAP++A/58DnBwOcHA5/8Dj/gOH8AAHAA//AH/+A//8DnhwOcHA548D7/wHv+AOPgAAAAOAAA4AADgBwOA/A4f8Dv/AP/gA/wAD4AAAAAAACAA9/AH/+A//8DnBwOcHA//8B//gD38AAHAA/HAH++A/98DhzwOHHA4c8D//wH/+AP/wAAAAAAAAA4cADhwAOHAA4cgDh+AOHwAAAABgAAPAAB8AAH4AA5wAHDgAYGAAAQAAAAAGYAAZgABmAAGYAAZgABmAAGYAAZgABmAAAAAAAQAGDgAcOAA5wAB+AAHwAAPAAAYAAAAADwAAfgAD8AAOD3A4fcDz9wP+AAfwAAcAAAAAAP/wB//gP//A4A8Dn5wOf3A5/cD/9wH/3AP+cAABwAAAAAH8AP/wP//A/84D/zgP//AH/8AAfwAABAAAAD//wP//A//8DjhwOOHA488D//wH/+APngA//AH/+A//8DgBwOAHA8A8D8PwHw+AHDgAAAAAAAA//8D//wP//A4AcDgBwPAPA//8B//gD/4AAAAD//wP//A//8DjhwOOHA44cDjhwOOHAAAAD//wP//A//8DjgAOOAA44ADjgAOOAAP/wB//gP//A4AcDhxwOHPA/f8B9/gDn4AAAAAAAAP//A//8D//wAOAAA4AADgAP//A//8D//wAAAA//8D//wP//AAAAAAPAAA+AAD8AABwAAHAAA8D//wP/+A//gAAAAAAAA//8D//wP//AD8AA/8AH/8A+H8DgHwIAHAAAAD//wP//A//8AABwAAHAAAcAABwAAHAAAAD//wP//A//8D8AAD4AAPgAB8AAP//A//8D//wAAAAAAAD//wP//Af/8Af4AAf4A//4D//wP//AAAAA//AH/+A//8DgBwOAHA4A8D//wH/+AP/wAAAAAAAA//8D//wP//A4cADhwAOPAA/8AB/gAD4AAP/wB//gP//A4AcDgBwPAPA//8B//4D//gAAEAAAAP//A//8D//wOOAA44ADjwAP//Af/8A+fwAAAAPjwB/PgP+/A48cDhxwPn/Afv4B+fgBw4AAAADgAAOAAA4AAD//wP//A//8DgAAOAAA4AAD//AP/+A//8AABwAAHAAA8D//wP/+A//wAAAAPAAA/4AD//gA//AAP8Af/wP/8A/4ADgAAAAAA4AAD/gAP//AH/8AB/wP//A//AD//gB//AAP8D//wP/4A/gACAAAOAHA/D8D//wB/4AH/gD//wPx/A4AcAAAAMAAA+AAD/AAD//AB/8B//wP8AA+AADAAAOAfA4H8Dh/wOf3A/8cD/BwPwHA8AcAAAAP//A//8D//wOAHA4AcDgBwAAAAAAAD8AAP/wAf/8AD/wAAPAAAAAAAAOAHA4AcDgBwP//A//8D//wA=="), 32, atob("AwQJCggPCwUHBwgKBAcEBwsFCgoKCgoKCgoEBAkKCQoMCQoKCgkJCgoFCgoJDAoKCgoLCgkKCg4JCQkHBwc="), 22+(scale<<8)+(1<<16)); return this; }; @@ -86,12 +86,6 @@ function drawBackground() { } g.clearRect(16,16,W-16,H-16); - - var topStr = "B-JS"; - if(Bangle.isLocked()){ - topStr = "LOCK"; - } - g.drawString(topStr, cx/2, cy/2); } @@ -184,6 +178,19 @@ function drawDate(){ g.drawString(currentDate.getDate(), cx+cx/2+15, cy/2+22); } + +function drawLock(){ + g.setFontAlign(0,0,0); + g.setNormalFont(); + g.clearRect(cx/2-22, cy/2-13, cx/2+22, cy/2+13); + var topStr = "B-JS"; + if(Bangle.isLocked()){ + topStr = "LOCK"; + } + g.drawString(topStr, cx/2, cy/2); +} + + function draw(){ // Clear watch face g.reset(); @@ -193,6 +200,7 @@ function draw(){ g.setColor(1,1,1); drawBackground(); + drawLock(); drawDate(); drawData(); drawTime(); @@ -214,7 +222,18 @@ Bangle.on('lcdPower',on=>{ } }); +Bangle.on('charging',function(charging) { + draw(); +}); +Bangle.on('lock', function(isLocked) { + drawLock(); +}); + + +/* + * Some helpers + */ function queueDraw() { if (drawTimeout) clearTimeout(drawTimeout); drawTimeout = setTimeout(function() { @@ -224,15 +243,6 @@ function queueDraw() { } -Bangle.on('charging',function(charging) { - draw(); -}); - -Bangle.on('lock', function(isLocked) { - draw(); -}); - - /* * Lets start widgets, listen for btn etc. */ diff --git a/apps/notanalog/screenshot_1.png b/apps/notanalog/screenshot_1.png index 2e184feb6814d6ff0b7cc25ce1776046ac7a5f83..fa7aeac872b3fcc6316cb8afd12cf568640ddd63 100644 GIT binary patch delta 3687 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 FV1gYw?!W*5 delta 3635 zcmV-34$SfN9KalqFn-F>d``a?9ex@mV*w+4}_R)4wJ5y(a6w>q&vGv5|kOXO?CLL1t zAhQYZ3@5G*Sj9p*>g`7mK1DZrYGI8>8c!+tc$4RFfHmM)1%E?>rtw82C8zW3NIk*#w2kx)wXr0TSxGMSO%3oYCoK>o!SVVp zEjlCskqjo);eW|ol13KYXC}A2?%Ms<&ND`I3)0oQRF4 z&EB>v=$!WXV)bhd91UV=ZrL-7S)oASL~N|>d&{i~?>QAK9VM>>aYTSiJ`rH=F#Ee# zk*^=ByAXsJ7d(e^C4g7SzBL}3+h~y>jx4kUaLxCKPmgriM(|Hspo;szgc#4nHOr{e zhsa3*-G81F0hUI9KfKSbA#(POt~`=FA%LTIG^&4ucYI_B@IZ~DP8|kzd3x0Zc#!1G zzJr9#swKb!bSAt5M6FawfIDkVcsmO!R7Ze2>rH?=3n~HZxlTFP)%dLu-uW?lU#E<6 z>M~z~J}na7K00b@IroXL%RI=Yv8M9fY`JANH-F+6uOD;Z(rur)Zmro`>qxfMBR=(P z@lKQN64xnh-JDm70MF5S>FbnpB(k+afNi>IN|~=y9*yu(*Or<9Yf#kNw$^9RJ}?(} z1Xz!qzXY--g8=rs!WyW+7zGIM7+qQGBn5^8oX!uCxwK|K6|t?gpO-~^n-r7o%}8_f ztAFpP-Q}P*w%t2+tj|UtC2Km_5)gUM!X;2@TWWtNcn?ibFeSTuL9dDJ2zXC_-mm2u zwA+AoQX`(#wv=g}oOw%`vIG*Ef%61`#&!g}?*(28a4Ca%8%H~-$&|GWD%EiWYPam0 zXW-U=)lRq2*m@bt%YU?60=VbiFVe{tRDTGRwM>%(Tl#lzaU<4;#6SXF6Ngb66xTd8 zfO}~YcY(JDz?vyr&+H4Wbx?q< z(+UFIGo-etu?ElO`MBwxR#f%*G^HGd8u zAV&q*`b5#_6UA17A_BmYkG1tn@%_LW;U$P80nA;9_RYe(w$U{3=DamuuZn;i3EvUlCSmC&qG+QPT_^7?O@2#zcUx z#;w~?XeXt8#&piA$q1TyC81aS+EFh#2TZ4V{ z3OXv_s{t%AmFlblxHTGU!INOCK~-CIN>7A*cR{-_i3*{|uayASzvvzRCjLM3LY9*4?GddqW#orh1M%+fN)fs+w;8;lDhmnoC4RtIe(H>^}P`J zqc~hI=+IUQ)Uv(!D@6o(D^9|7HqExhO#oyU!a7F@rv@EbN&$pB(=NnPD$vazZR{%Ko5xUS$m`yx9 zqEKyGF>?yhnrlOIU}Qu25z%5Nz7)6gYUJc+wYdA8d{0VMk}19y>{mGo8sg_i*LR-W~_70|#-fPdX`vx43V@GeAe zMOoie1qkp|x!G861qg6&MOhye5ES4+1`%0W0Rp^q_~<+VCId?=00CT^-1C~{(y_nY zdGyG-x0J<<==4DvIKo20})%>Fj6ONo~^*J z46Mn%slK0zDXNzTmngbdSbe!~`pB8T7kn;T{Z`0Or9)d(Mmg7TZzF&JYg+SW0d^ z8kX8v>GM<%1W2v@N?K@q?ZFXrl$<)n?E4)eEs$D!4HPTcPJaiO@Rsq=0;#oM2}+Hx zApk}mnVL?mXsZQMYrmo$X@wjQv>() zuY#Sv-!dIwW`7Mk)UA>iyqC=`5Dx=b^C(OML%?l-=K${lG6A;n(zVnT1nc0f!Mg** z1h^}T`pS9);9SfIO+R%?(L+DzIwcxfYZgN5k7n0%p}Ql*1o%dxTk8bRKyHEjv`jn< z;2XJErs#;ebXOML#mlK>?Nvk~A7;HPBYT{7`)0Dq^MA=1KP^|^0r!STe4K(_!K^+g^} z%)U?GD;5FvzPMu*0e67+y#*!g3q^S%BIgp~dm(x+T%s;2b^=&B@QAq0R!gMClepf{ zMqg0u2JdQ__=BH+U+KCSJpt}LO|UK`u5z;pnVkZ7Ni96`EW?ba9kS6=y0r1Z7 zqJOa&olvwKrGATxxKcJnCfC(F2Ef7cXu(R4q>@|Kfemyqq{&^|Y#yFe0GG0rHptQ< zPFg^e%3FbF_Wd45cWiNbxPk%hwZZQJxOaviz~u+Q>^H`H*b)J51^LXDzqKC!hgQHjUZRvk4EryzeEWT1^(!F@ln8x55*DSrXR zA|nBu$E^ghrjFVmz`U(2AcgsGUh3mJaZ+RD;o&sqkK z1Td0~s{r2t?&UB6uIH^C0d9f(1%L1iaJ7p$X5hUu@WR#G@ycgnn#6-!uY4-{6IDZ&cuKCKw@B6?J;eAi!Go_=>eba?U4o75tR|WZm`0kT9 zM7%T$M~AnzU?RXsr1du9Hk!Ulmf#$C9s>k;fYt3Gh5o3Gh6v znSlprO@If8$_zYDR02FtYbXOpxX?3C5`Rks*smdaxF!Njc=f>`z<+wpY9%E8ngC0M z`?-nLbk~(W%)9@sRsnb=J!=O+&FhqrPLEa*d$p6eRdlT-)9}|Rue`R3&;(ffyu$7C zn`lSLFMy*>8)`sY-H!B>XbrZAey*4t^2OcPec*^f*RpR!Usub(D<+5(;y1t%Gw;gc z<`2fGgKgC;{D%1Ym48F4z*g{)a@Kh-TDP^&(yVRvE(FqFWM6fp-X+aYzgv2X`@pTj z9tV)J7D17Ekzh)YO1jL>z(~I(8;jm)2Dc;x$tNieW`I2nBW0~(qIFxumc+bs5!b8V zR^2^G0r9=2y$N7XgJ@Zckea%81Q>zLqPsT>BYt%Q7=^?$=YO$^i28=wp&2)d9nvq< zrV5Pk5)`EVTHThi>I`gYL_0!j083dD@eQ$w0;JXtv~QA~HGyd3ocB-itE7htU`qqq zPFcl6eM9ZE@I8fJ**=|==eB_GiKA$Bw3;hAb4Wg&o( z&U)d!MxSNwg)I7q+DVW^{v7QiV&?(al1)=x5&sVR{{YSGqgC)Cvd91c002ovPDHLk FV1ld)+)n@i diff --git a/apps/notanalog/screenshot_2.png b/apps/notanalog/screenshot_2.png index 9984a9540877ed25f8527d064dc2b78d01bef44b..1967b56b4ae5b3c2b2a33590a8a1526f06e70635 100644 GIT binary patch delta 3732 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