From cc2fc275328e68552deefb6e72da2e5d19195112 Mon Sep 17 00:00:00 2001 From: Philip Abbey Date: Fri, 27 Feb 2026 18:44:54 +0000 Subject: [PATCH] Changed the Glance behaviour and design to avoid out of memory errors Store the smaller "glance" subsection of the JSON menu in Storage under a new key (scStorageKeyGlance) and read the glance template from that cache to prevent out-of-memory errors from large menus. Removed menu status field from the Glance UI and simplified the status view to a single API status line when no custom template is present. Documentation and images updated to reflect changes. --- HISTORY.md | 5 +- README.md | 2 +- examples/Glance.md | 16 ++--- images/Venu2_Glance_good.png | Bin 17253 -> 0 bytes images/Venu2_glance2.png | Bin 0 -> 8933 bytes images/Venu2_glance_custom.png | Bin 8464 -> 9842 bytes images/Venu2_glance_default.png | Bin 8933 -> 8408 bytes images/Venu2_glance_no_api.png | Bin 0 -> 8460 bytes images/Venu2_glance_no_bt.png | Bin 8428 -> 9797 bytes images/Venu2_glance_no_menu.png | Bin 8985 -> 0 bytes source/HomeAssistantApp.mc | 109 ++++++++---------------------- source/HomeAssistantGlanceView.mc | 57 +++------------- 12 files changed, 49 insertions(+), 140 deletions(-) delete mode 100644 images/Venu2_Glance_good.png create mode 100644 images/Venu2_glance2.png create mode 100644 images/Venu2_glance_no_api.png delete mode 100644 images/Venu2_glance_no_menu.png diff --git a/HISTORY.md b/HISTORY.md index 0277698..c22e8c5 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -42,7 +42,7 @@ | 2.27 | Trivial bug fix for the glance view to prevent the "Unconfigured" result being erroneously displayed because the settings were not yet pulled from persistent storage. | | 2.28 | Added support for Vivoactive 6 device which also required an SDK update to 8.1.0. | | 2.29 | Added support for three new devices, Forerunners 570 42mm & 47mm and 970. | -| 2.30 |
Extensive re-work of the [Glance](examples/Glance.md) view, including the ability to customise it with a user supplied template. | +| 2.30 |
Extensive re-work of the [Glance](examples/Glance.md) view, including the ability to customise it with a user supplied template. | | 2.31 | Adding [two new options](./examples/Actions.md#exit-on-tap) to the menu items: 1) The ability to disable a menu item, e.g. temporarily for seasonal changes, 2) The option to exit after a menu item has been select. | | 2.32 | Bug fix for a breaking change extracting options caused by the need to rearrange function parameters for an [annoying compiler error](https://github.com/house-of-abbey/GarminHomeAssistant/issues/253). | | 3.0 | First version with the ability to use [Wi-Fi or LTE](Wi-Fi.md) instead of Bluetooth but with limited functionality, thanks to [@vincentezw](https://github.com/vincentezw). | @@ -55,4 +55,5 @@ | 3.7 | Bug fix for `numeric` menu items not working over Wi-Fi & LTE. | | 3.8 | Added icon for `numeric` menu items and revised icons in general. | | 3.9 | Small update to warn users with empty menu definitions to read the instructions! | -| 3.10 | Bug avoidance for a fatal "out of memory error" in the glance when caching the menu to [`Storage`](https://developer.garmin.com/connect-iq/api-docs/Toybox/Application/Storage.html). This is now delayed until the main application is opened. Added support for two new devices, D2 Mach 2 and eTrex Touch. | +| 3.10 | Bug avoidance for a fatal _"Error: Out Of Memory Error"_ in the glance when caching the menu to [`Storage`](https://developer.garmin.com/connect-iq/api-docs/Toybox/Application/Storage.html). This is now delayed until the main application is opened. Added support for two new devices, D2 Mach 2 and eTrex Touch. | +| 3.11 |
Better handling of menus larger than the Glance view can handle. As a result the Glance can no longer verify the availability of the JSON menu as fetching it might cause an _"Error: Out Of Memory Error"_. | diff --git a/README.md b/README.md index 9496fb2..8147380 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ As of version 2.0, there are now two installable versions. For older devices bef | Version | Explanation | |------------------------|-------------| -| Application (original) | For newer devices that allow glance views in their applications, e.g. Venu 2, the GarminHomeAssistant application can be started either from a glance or from the list of applications and activities. Head over to the [GarminHomeAssistant](https://apps.garmin.com/en-US/apps/61c91d28-ec5e-438d-9f83-39e9f45b199d) application page on the [Connect IQ application store](https://apps.garmin.com/en-US/) to download the application. The application can be started two different ways, either from the glance in the carousel, or as an application from the list of applications & activities. With the latter, it is worth marking the application as a favourite.

If you place the application on your list of favourites, and rearrange it to appear near the top, then the item is just one button press away from the watch face. This second picture here shows the application menu on a Vivoactive 3 watch.

On newer watches, you can also start the application from the glance carousel. The glance view here typically displays some trackable status, so ours provides some early indication of availability. Older watches will still allow you to start this application from the list of applications and activities. | +| Application (original) | For newer devices that allow glance views in their applications, e.g. Venu 2, the GarminHomeAssistant application can be started either from a glance or from the list of applications and activities. Head over to the [GarminHomeAssistant](https://apps.garmin.com/en-US/apps/61c91d28-ec5e-438d-9f83-39e9f45b199d) application page on the [Connect IQ application store](https://apps.garmin.com/en-US/) to download the application. The application can be started two different ways, either from the glance in the carousel, or as an application from the list of applications & activities. With the latter, it is worth marking the application as a favourite.

If you place the application on your list of favourites, and rearrange it to appear near the top, then the item is just one button press away from the watch face. This second picture here shows the application menu on a Vivoactive 3 watch.

On newer watches, you can also start the application from the glance carousel. The glance view here typically displays some trackable status, so ours provides some early indication of API availability or something custom as shown here. Older watches will still allow you to start this application from the list of applications and activities. | | Widget | **"Maintenance only mode"** so no new features will be added to this version.
For older devices that use widgets, e.g. Venu (1) as opposed to applications with "glances", the GarminHomeAssistant application can instead be started from the widget carousel. This is a separate item in the Connect IQ AppStore and with this installation, the application will no longer appear in the list of applications and activities. Head over to the [GarminHomeAssistant](https://apps.garmin.com/en-US/apps/) widget page on the [Connect IQ application store](https://apps.garmin.com/en-US/) to download the widget.

Typically the widget view implements something similar to the glance view, e.g. status, and exists in a widget carousel to allow you to select an application to launch.
**Please note that memory in widgets is more limited than applications. This means a large menu definition can crash the widget without the code catching the error.**
This version was born out of the application version and from Ver 2.0 shared the same source code repository until Ver 2.8 when they were [separated](https://github.com/house-of-abbey/GarminHomeAssistantWidget) to allow the application version to take advantage of its increase memory availability. | ### Features diff --git a/examples/Glance.md b/examples/Glance.md index 4319415..035a2e6 100644 --- a/examples/Glance.md +++ b/examples/Glance.md @@ -5,13 +5,13 @@ Since [version 2.30](../History.md), it is possible to ovverride the text displayed on the Glance view. This page explains how to customise the text. -## Default View +## Status View -The default view has always been to display the status of the menu and API availability to indicate if there's a problem. This view has now been updated to be more colourful. +The status view displays the accessibility of HomeAssistant API to indicate if there's a problem. -When either the API or the menu file is inaccessible, the fields will turn red. +When API is inaccessible the field will turn red. ## Customised View @@ -45,9 +45,9 @@ For example: } ``` -You may make this as complicated as you like! But you have limited space and only ASCII text characters. **It is best to turn on menu caching in order to speed up the display of the template**. The display is then nearly instantaneous. +The 'status' view will persist showing until the API becomes available as without the API the custom template cannot be evaluated. -The default view will persist showing until the errors are resolved. In order to extract the custom glance template both the menu and the API are required. So it is logical that the two tests must pass first. The exception here is if the menu is cached, in which case only the API needs to pass. +You may make this as complicated as you like! But you have limited space and only ASCII text characters. **It is essential to turn on menu caching in order to display of the template**. This is a change in v3.11 where multiple users are now making larger JSON menus than was originally envisaged for this watch application. As a result the Glance view would fail with an untrapable (fatal) _"Error: Out Of Memory Error"_. A work around is to pull out the glance subsection of the menu and cache that separately during execution of the full application, but that means any changes to the customised Glance view do not show until after the full application has been run. > [!IMPORTANT] > Sadly what you cannot do is use special characters like: 🌞🔋⛅đŸĒĢ. Whilst these do display in menu items, they do not seem to work on the Glance view. We really like them, so have tried but failed. Only ASCII text appears to be supported by the Garmin Connect IQ SDK's Glance View. This is not something we have any control over, please do not request this to be "fixed". @@ -71,10 +71,10 @@ So the glance view object has a `type` field with two possible values: `info` an ## Displayed Errors -The following shows the default glance when the menu file is not available at the specified URL. +The following shows the status Glance view when the API not available at the specified URL. - + -Once the custom glance template has been retrieved and evaluated the display will change. Should the connectivity to your HomeAssistant then be lost, e.g. you move out of range of your phone, the glance reflects this in the colour of the residual two rectangles. The top one remains an indicator for the API, and the bottom rectangle remains an indicator for the menu availability, reflecting the original placement in the default glance view that has now been replaced. +It is possible to loose connectivity with your HomeAssistant API after connecting and evaluating the Glance template. When the API connection is re-established, the Glance view will update. diff --git a/images/Venu2_Glance_good.png b/images/Venu2_Glance_good.png deleted file mode 100644 index 733cd9f937a46aa8d57bfed3b002246f2b536868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17253 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 OP<^7Q{0(Xu`u_l%N)DC) literal 0 HcmV?d00001 diff --git a/images/Venu2_glance_custom.png b/images/Venu2_glance_custom.png index e5bb73ee2c2cfe0ed6f796ee4f193b0a305753b5..13a2d8a11195879593ae494c926b0057601ff709 100644 GIT binary patch literal 9842 zcmaKS2UL^6vu{E|FA1RZ61qwaAiaYKigW~#7MdWv34|7U=qOT@DkvZzO{JI6q$x#d z(tDNO`}_Fcd+vMhoOj+iNxt3L$?ojze7iHh*(hzzhvXy-Bp?uoTwP5?7X$+50Of2V z0^qmVi98v2Ks=Px^@)gxCg!wefhyQT_n{J~w2x^Gs6byRK2ZdLDiTO9Q20Qd*j4SB z2M9#Nb@K(Q>vHY@e~7f#H}W)kq9JAF;v|5wcCoY(@NselxIrKpc^_Alm4l5Z!qVo2 zy|XOOc6~Ds!roez$MF6Wp(n1&Hg@)EXm=Yuw5Gll+QCZFnnzxaoJ7V)3h2Sf#uJ6` zadLF_kn)jb|4+wKK>3C&$Sx=2Zfz^2tD^ef96(K$-Okg~RZ39M+uK{fTSUOc{e>V> zQc_Y-NLWx=Na_waT0MEUSLdvN@B2P!rmR_^w$p7t)zh?@>kmM&hNvg}@7_SRCi zDBJs%*4Fp=Em0!Y{79rViXUYyg508e^#9QRwLbl#S<Cf`gZ@7oQ4uUEB?kTO$yHAc%l= zC6Iw^gMU3MkDr9Rav`p5dtlLrSO3Kvb29o~@lTx5D9^OG=EdCDAy#iMB7P%z`AYEm zC>))-Lfv;L1Uf-)Tg}uSt>fopmohQ7q{dIUKQ}S*1xCpVgplUs{`{SA|*})i@j)(3dB48x+FU{$JDTiaT%?s zpMq|?f|xF1s871K}9SWdY5x)2LxMV_T$jm98}CN9IFzeBSealW&L^Idn+kkz$+Z zt-cXMjerV4)ZYobJy-vHjd-*`nv9xXB9;Y9G1c$U>)jY&4X|&O`@vv~D)NoRyK|?W zTvvrJOB>>9tJq_KwWGVMC#dkV>a}z& zk&)z%ps`(`YqAV0u*7s}&fp#)qi{cq+!v@fQv>%YbtpMR(6_7V=Sa{c$79faP zV-{>=!w>|vX#6`6L@K0&X@C-zNyX6Fi%YL=cS9*B+|OI~O=3ar+oWARfdJ&B^xP>< z6%}ayQ;bnWu+1d%mwKj2;);R^(XU2>%Gg4_EJHah?dzlO&rdbr5aI85(ENr!Jd34Z zC{ovRkj=#sHXM@`7WnSlQGVFkZ3Nb4jH>BL{}mi*DXg0`|HQEFvRdbJ&N5u>}~NLE2>DbKdjVPViF{USr44$ zEOx**lM4elCkn6RyUJ6>S-Nwa=tY|a-YD9)rIe)<2S!@6wiJ}2%3{`}tREJ*>t}$8QWo5N7v4~2wm*4tN3xfl&sV|G`Tp_;Iez? zH*iXpJ~I?Z9h$;A)V#Brp5q@l`rw*EeGd6ylv!Vp%oi(XM-;CXLCSa)0zTFh>%yvs z^wgEJ_3VkzX*q8-*QbUd#bT0O`}Yf%)F3jeLMCZ}yBkS`r=fJ-r*Cx3QhCHLdr9;N zkZ?`~l?x`p((Q^ia;cQ(#KFN78G0q?1ttZ7O zGlI`$WUMe%{>S1!QONH)T!kh7HRpSy;!_-phsVmteVhSiiT&TXfL#lVr8QN%h}AL5 z+j^LtI){qA7|*E|Co>~3;_n?wDGy=%fhbbek! z!^X#kuwmB?U;Tq{m@D~ZQu-WOz|e(aY`uTC+i@}trzkZsF?`Y+VsoGnB9sFYM>9*E zCBAQRZS(9bT^X!h6o8Cu=#e+F{?}|07+I_X|4wll^a-wcQGcGFCDr~BaK4s-zhOsw z6k1?W_7)}I5cW(OHtmQ_A&d{c9c}THqU+}y3CfU-E!}OQ$UY(O zRn)$ka#`8DF`48w)y>-7GdGX8#MXz6i#Di#d=tu}pzFF!T7G>1wxA+e9+q;vJU}DXGP&j8O&l0@#PM?{Wm$5_cr;-?>_{x)Zofe5?8RPV@`j za;+?ovWC=XdsaZ5Fr8L42fLKSR7<4PJc%&V;hut3QU? ze#`blfjfNb{f(G$4_ck`xd)E2`<~l{mpkk)<^93mS!LqJMYQs+{)`S>E#3a+;y>wU zBi_3#DG2P#XhWwzZ}g^l4N2yqu>TQC zo+$r{L$_^_L_39ePSP;KYY%F>nX%)_M7WtyHQ>K+f5`lTl0n`N|4Vg|t6U95(-hu} zeXumez#K~?q-g=;Qa$Ux!@{tUI(V|SQFuK{t9|{~!EUC8K!PF>Y`e18#m|S6@+BF$ zkX@t;K>4`kBPNt zK`XQIkd+@a3>&%e0K-4Abr9wmFX7XBEockMpM6Q zou?HZgOR-O)U;N@GenRd(2QsKsZ`&y%5C0_GgUPXj8o;uaUYx=h^=L%(3*Lv zb_cPwpJQ_0!rD$B14i*E&)xLdxO3eVs#Gg&JJIm@!G`Jq63GHj7sR1=zQMD}aNfqQ z(*dwA-ldos$C|A8EQeT6u&0DiUhs%u8TQpb35AH@Df{5$M~mdAyC3R#D@U1yOhPTr zDtLk&%UDN~KjDPPNZ-Y#)1r+V`2z00>pOhn5*kgp2xEVF${I2DNoMu^Nk`m!p-rx% z*MTrB(&*u1OX34Q2q8}XZ^)lQ(m{3VX9NyS&|-Zm_HOXi18Vv_i$I1dbHiYC)q8$oVG!>vi(fMkkfly*Jaq!mYY-*$ zwfk=#g)JEpK2i`)zBp=Wh>iT^dY3}UTj}{eQZI=UO^=He>Pr6`Z}|OhGcC|+9au=iguj53R@Ampmw>JNqdQFcUIjk9{wFf{mya&!UC*X zE?#?@G*L&bPiNoTK|evt|BQ8}wxy{516N7bC4|CK?*#UgT|z)PXJgfeg(ntdj(y|Q zh`T*H#CPqQV7XW1nA@NSvg{Zsj2B3LfP*ZX;NaQVnD>{Fjf5yF~hJ!v^^4#npiTf5?ZPi`IdC#(#4KPS z9XWQkP?B4fTJ_E1*y}s(grGgp7HCKQkO%~mBjJ-LZ8)Ub=`jbz@yp^X!tEFScn4n_ z;M=ZXf_7a%D=})#Q`Ry$d=MOHXKZH8%H039#L{lj)#sWoGpkQP zxX+bpNznBj^WVJls$6n`KLxQU@el-e((!2fwgetAQDTPm$}YX}4+~)Ai)m`~Pq~vu zp0HHWq7D#h%^k@~@FbR-SrD22YcK<*s3F{pmfdUp0EKp4GP+~$2ybO1l&$1>6!GnG zB9s&^veeL-r=;Zak`?lzZ=M-;Du3E;Iu-L#_&F=&yPMcxKuiSDY{0wKd7*{NfI-SdJIixQJk82g(hAz!C3%LZ5&RhlqInEu8R$^s z;$&+pblKllL;+chWouuteA@0yHIb1h1^d`Z2~}ibnx{q#*Cce8pZz*jdsVN{n-jz@ zFz+8_rK#owA#bCEx?!SRc*4j$BFlf2pM$MhrHSFJ-ADo%k$&x-=xYb&+3<8G)<~xj zKZ9>(ObgR)Tbh)7yyuQYA?-sQHPo$z&6FZ&5JubuoRG$j*^55*Dk(KQM6`C4&3J~K z>G1dRZvGfo-QM3@cQ0vhXBsT8X;jboT-DjTeAa8C8o)78)M!_ zI?CEvFA9?-{3YwBrAt{(TS>89aD-H3_qv#G1#mCWu&l)uW_^shV-|DIB;6sGB}sxZ z%(@bP)j`%;bdi2%Qf5aVd}ji;k3Sm~aw_@3?R&5gwe>&`@6zp z7MB|KMT@+wL?1mJd{)680xzqvFR;5|!&k%1WN1z5fX}9#DkLbD=gw*!FR*Ecf>O zhd+okA8>2ftg7iKWA|+29ZQ`ot(@{kVW~4s8q+W&obV|ot$uDbCznn9?(pArP(-RB zwbkN@UdIGgogsA+P$Jn)@GEK-%gh$_j6}nrtK?! z#lm5r`d=+Mh>S-Xs+(r>i&wjw7vagE*hA^XulHZS4!EUk{)t}lCnv0X`D|GZ!V_mn z2azJVXo$|@v7xI9jdT-RB4&^h315RI2ZI|~)q!E3zq`}%wt>}Bd!9OH+C-i1E?t%h zfzP~<>y?meD^(0p);&-M=4A~1?7P;i6O+H-tj6x$e^26L$m0{F(eZ9n17mj;r=RsI zGn_|vdMFe<)Op2oY_K5pNYym|<;i8l7Qq8%?gLBsc4xw``@0P(f#d*;aROC4WclIq z!bOoN;ZamnTZ}(}PZ7=)t$7hNOv$1Z2e}`ABE!0x{_#u{O;U4lw3JoYCGBj_$s0lJ zcL$c>Tj6Jqe8sSPWt`r|>{=ka~F z*f-hGd=Qyebh5j(%OF8fO#bIsBX~gD?9{To>isuo{@oFkp2mk++;LeCsVujCBnaW< zqt%K=3y+-Wv{VlRt>3-8hVk~aw{V+*qfsn{Q@2^jMrBGrNiIv0y|7W4DBS|ly5Rld z^!|{4nysKgV9=P9nzaAhL--Tx?c3gm>7z)Zb(zGMJCTPPAyADkdGi9W)Q2+}&oMlA zBbA2@TyoHXGxpV;$9{2zHa5|_&^{4W^gePEUhg2%b(>)^s*H zX)z-qWaAKfn!S6}&&keH&6O|hX9^$sP^**6VDe|+cRBTT9h-P22VT{@PX9AOm!Y%< zR=cdZJB=#y7L?7P4k6gbKLk5@G@Z#KSv>mhCYmP{=hX(;Ho=p%gk{4vXY+W&1Jmxu zR)6+a3q1sW=S0RCu83Jn4-?uVKh7DD*QOq`*oZh2%e9z!mQ9nu) zo!(O)=BcH|ubiNaJy{xFl6#$)3#v9N`_!-4CEVCRdpYSfBo>=qgc>FCT1u~Dk4JdU z`*9RSpZBa4maWKLA73+$3ZDj7L4JXKT5TnQjC@cHq%sqrQnE8u{bMps&-9v$m1~Uz zhKv&Y<*LYE_Ap^`xHMPxtN0|! z95P5+&B6*Z&$kNE7DvXVYq_z6%$yO0VfxflaVY8a$`uwyzx( z0{mY8<1w`jQ3Aq}1K_%nM5w36NMG}%Z{0SJtqqv%yNp%x$3`g&SS0R?o9)X(-4fL_ zF%sKTpF|v>9xT++65h3EPSN2$Jvy{P8fTL*#V{^OFdl9x^mA-2DRq8q$#)*9KmYKl z8Uy~Q`D5+bYb6o1VlR%{BVELm`b{-t=rPO!Shi}n4392hdkVl&`4Dv?tvLk2n>28B zC9iba7$l^zr3Hx<69S&L26+@IT!N5^5XWaE#v_vpp-BJQQu1tk2ZO+V=Jo}@F@w9* zn`vJu2tKj^f*%Pj4*>Gjko^otc!Gfdd*75zDSW=gSb=9YuJgLi150`0|XU&vYB`ShbkiC@WKRe znKUQAqz3Sf#0WQ5k>#f$S;B|qO5l-zPF&@d`$jxu+Wt=i3~&$c;S;&*D3SL4V!(M% zohJENFq>z@ZoZ@o1rQH_8>9SFHk-Rfd0rW=&TjtZ;m6Q+Z>61%fG1#SUA*3v_Vo%u zW{K=8f(DdNh&=wy2!nnYuq}IB@I-xLkZ>&iz#eN*xfBn|^E9 z(@48GSS+Bbf}N>gU86y$r?k8m1R`7ujfN_Wc)F{zWAOIJ1p^Alz7VgOn|QsVkz!@` z31Nc);WnqxipU(^$1SoiBAe%*x{vXFk(-wb_{0NrL?_IIulv{}GASbWpON<+I?R7C zunnFv4GG96+i1~?lB?s#-?79AKSHh1#0x1vq#-!@;1oHxq|q!YwT2%2qn!kvEPmSHvC6cbuXcAs$|PBBc? zF)hojGwT3O{A{8p(tw)~3v3e8NRM-}Ll{y=BOZiu>4XCCi1D@=__~3>Gx!;A~hxBqTwj}f7OG(?Nu9hs{;(JL&T_PpwHWY%^&XV~PF< zy*bMjtLvRfkb0P6yB&uRa>L_XBXTJ`EOxNFw4~lNCSP^`X-s3g64NE`$>QxT(S^jfqy(qi0ZB(C5aboy>g}xC)N6JazcH>_;sHPSBViQub)!!+prqluzxd3 zO&Ks4953+bEM0|{H`y#r)A!RPqj6GXmVkzDC6la+HWQiCn9;<}E!}7Fh7Gj8N%!6> z|Cz8@C%m8O7;0F5Ij^z0);0vQG4f24(paMI7NL)UUvw$_BnGlm%P|(8sBAZLeU4O{ z912KXYd6VP#-{9#{O$;w5-8ZxeD&}XjJBe$W}@x$4t`3yxykMGm003#KoyU*-|s4- z4<#D6BHw8=FCp2QYn%SAkQXk!PfYra>e1`{&GYqgUd*57>B)D)ge0efb=GFFuuZ}+ zHPUKwGy8)&%G{rd8{)%rqy1ERa+X9gft{##8Zfm_8*;OM?Q#xVyuJmRJ-B>PmUr66 zJ)V7~N*0OqPTg$tE!QPJO)7XD)FsPergX)2EaAm)niNyMB@jGi0R6hJkP-|)iOxfV zSF;S`%{3v*^@c6gRX9e`NwJsup$xXd0W)~`-h&}h`h+%`DnI%sh_oR(cgTOi>zn)+up>>wX3o_Q2fM3_N{Q*(kdgE4meT_(iMYD4j-0QL zvotkUf8~QqqHY77bcggt z4gt?Hf#`>{$vuxgx!}M5msF#+Ck0;%fnw8$ipE0=laqTCempm&=i(`dq$i0Exy3eI z{8$(J20=a=tOf%T4n>K|!e(S5-*PE-^}kKsK45Ed;|SMhHDgMpwO|-8uHkKKh!A5`YSa;vO^K#}*?k0(r{Y-=8z1ffu@ z+HFMwYkgI;iO=_mjVS-atr^~JM4?$kYPCcWaZm^rNYuQ(H?;JJG% zr{YHygw~)(J?}tJM>0gX$_q7*s(U&Eax7`?QB#l>NLxr)y6ucCDF0mh*Zd; z*kSsGi+uM>ne*W{H@JL!xdWFJsTIBloHfKmH@!8H=ed1((aKIs=kuYIGwj1A_Z-9RHj_w{P$mai zfCgv(qKm2&=g%rsHa|yD6`on~hgWM{vfb9ydu-$1oK#;bQG5zR_9)ti&U=OYChYJ- zIyUL#Qs{I{#n<%7m!k7iz=56IY8W-lLC#Eu4=bhO)S^?V7bGCTT)!hKb1+Yof-V5xcOfv>6(atY< zI1&C!4FB6EN;tG2DT}}pKLn*7k77>oXD4IOK)T$1WikfWSkM7LPC;a|Wrw)Wv*`k^ zegu(CUbJJ?(KyyC*1Begkn6rdJx%VJRj_Scvv|ffIp~@Rm%UC2*%QFXk3vitp5y*8 z?PPXhIv!%24Z{E|)~v6QDC4pp*KBfoet-FaY=?rzW@sS@$47efj%%?$rKNe%Ze~nr zgMa&rK6msTSni`M0vrh@mxWS+87GBdU8N)ddYJTPD38JM{c59BDf;UK`6A`IaBpXS zd!qs(GK?2SX2C2Ue({&f$U7A$?~-$RWgsCgH=?J>k_QJcUMy0$(L=#?C79vH`rw~ruB&jV>jJiAF7D(z9sv3b zM+zO{g}Kz>wxw~*kwR^Bl{5F|tK{D+E^BS69J4-Oy;Afw@_KV~9fN%-5d>a!kKfW{ zJXyZBT#o0f3_^=L*IUtiJ*@}*ytyopascER;VM0BVE47F520J~f#4kq+eKHCS2U4V zK)yPYMtH`P$016L7!F{pFX{|i=x?0LZ_tfk>aM9~kXSFSc@eXK*%rOI1L0DIlXe2p zeeo7;(bEi8k*Y?LhpN8RBa3Ya;P}`1x|*NC-+D7@>>-CkCtRh-54#_)pN)ZbL9PCC zY~nA*r{I9|^DE83(ri7`s)S$W48Fvx^ZjDl{Nrb}xU=vL%WGPN$6t$`GwKAJwJsa4 z$xjcf?w< zlL+#C?bi6A?LoN`Wr>l>mMdl2R~$v{^A~<}99Q2XDL2D?+l%Lf77aT3dKD;c6{x*1 z_i1)L2oj^SD zw$;yXGO&BqcucUelmho&A|j!7aAA-z;bMoPm3R>W8xxn6i@YLy0mv)^fV^7R+H`c} mO@ZwHdEe&$dl_f$8uBm6JLi5gdE?DZFZBnSDy2#mA^!_B+A&%H literal 8464 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 diff --git a/images/Venu2_glance_default.png b/images/Venu2_glance_default.png index e0bcf140151018b06d0fd4c02a9763ebe0ceea9c..87549035c1052b52c660a6e3c1d0ac89e7b2eb2f 100644 GIT binary patch literal 8408 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 literal 8933 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 OP<^7Q{0(Xu`u_l%N)DC) diff --git a/images/Venu2_glance_no_api.png b/images/Venu2_glance_no_api.png new file mode 100644 index 0000000000000000000000000000000000000000..a9a7d1f66953d9d9b10e29dc7167fcac7afd68a7 GIT binary patch literal 8460 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 S1fKl|LHC9sqD0Fk;{O2ERN?;s literal 0 HcmV?d00001 diff --git a/images/Venu2_glance_no_bt.png b/images/Venu2_glance_no_bt.png index 512b9104b86b64d03b5659d6fcd7eef277739c07..5e43c8d629f57f70011d218e312f46cde9cb4dfa 100644 GIT binary patch literal 9797 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 literal 8428 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

$xcYM2sV{lNy6(DX@+M zx4xvUH8JM+{%`SX)*QPm_mJndwC6K7zpl&iPqN+QO9gYlH>>+6vw(d=)q5w*9Sn%53Lp-1DUp(p-7B;UTFm*JX(o`f_iWkK-wdAgJ zvVD$-dfA@DMg`LoR!xEbZHoh3FN*VD zL&BCGC4?Yx*z8Bvm9A0ty>BvCKcoAY#!P2?({4AN#HDczZvtVxhq{>sqi9SOY2Liy zP-YINmQ@^No)c$R2=ceY=M1IJ>dS>Uk)iqVJf;I?%O<^z-)f|of&YWsUtNcv?5DBr zZ%CGN6Od+oUu?HiLHn(8Z=0l*e=PjZUbto$sV3>EG5z`S#~;TVK+=zn^lH8mvA!2- z02R1J=&d9)D5U(lhtzmWGhq>H60?UPN35i@*2~>I`CV$CAF`DXV8}S}HBW_K7wmaR zF{7Y=|HNtb41&>QMRN~vW$#mo^*wi##C`2DGQfep!YQTwcuJ}2U$czWroUA7UE(&9 z<`^ZWiLUjhbib=K5x%b#VYjytSD`MIDbeOQq$;P?Ho=p!X*sZiWwZIdv&~|%y_`{` z^>(>**Twpu2bmEk?tM?&@nUY;kUsSRy;e-Q!oPVlE7H87ttg32&QIUEV{?YW*tV#> zdLfX8JFO8})BTM4rLx-JAR`YWdT?c1j$KH0Mm$zGIF<@1sVAzV`0}l#0_4k&th&4* zFr*U7@?*`Td%_hjl_dv{r5+}UYI-X2$dw+Zr2cs!|^0uEW{bIQwFFFc^-$Rm)K zPG#_(ukioC82m^_Yx(f4;=9;KgLYXqjBk=yoIB#Dg!CEBw}wP%a!jU%Pq=P7gH&A0 zG3Z}1;U3?te{HGbro&Y_#1r-v?f<6-{9iZtf4z=z;pZPugCAb=zk>$in%)4V7i#jQ IvZjIm56hb6%>V!Z diff --git a/images/Venu2_glance_no_menu.png b/images/Venu2_glance_no_menu.png deleted file mode 100644 index b6e93266537e2b851a83cc200258d46ab29bad24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8985 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 diff --git a/source/HomeAssistantApp.mc b/source/HomeAssistantApp.mc index 1be312c..e919c3a 100644 --- a/source/HomeAssistantApp.mc +++ b/source/HomeAssistantApp.mc @@ -27,11 +27,11 @@ using Toybox.Timer; // (:glance, :background) class HomeAssistantApp extends Application.AppBase { - static const scStorageKeyMenu as Lang.String = "menu"; + static const scStorageKeyMenu as Lang.String = "menu"; + static const scStorageKeyGlance as Lang.String = "glance"; private var mHasToast as Lang.Boolean = false; private var mApiStatus as Lang.String?; - private var mMenuStatus as Lang.String?; private var mHaMenu as HomeAssistantView?; private var mGlanceTemplate as Lang.String? = null; private var mGlanceText as Lang.String? = null; @@ -111,7 +111,6 @@ class HomeAssistantApp extends Application.AppBase { mQuitTimer = new QuitTimer(); mUpdateTimer = new Timer.Timer(); mApiStatus = WatchUi.loadResource($.Rez.Strings.Checking) as Lang.String; - mMenuStatus = WatchUi.loadResource($.Rez.Strings.Checking) as Lang.String; mHasToast = WatchUi has :showToast; Settings.update(); @@ -166,7 +165,6 @@ class HomeAssistantApp extends Application.AppBase { // System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: " + responseCode); // System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Data: " + data); - mMenuStatus = WatchUi.loadResource($.Rez.Strings.Unavailable) as Lang.String; switch (responseCode) { case Communications.BLE_HOST_TIMEOUT: case Communications.BLE_CONNECTION_UNAVAILABLE: @@ -205,12 +203,8 @@ class HomeAssistantApp extends Application.AppBase { break; case 200: - if (data == null) { - mMenuStatus = WatchUi.loadResource($.Rez.Strings.Unavailable) as Lang.String; - } else { - if (hasCachedMenu()) { - mMenuStatus = WatchUi.loadResource($.Rez.Strings.Cached) as Lang.String; - } else if (mIsApp) { + if (data != null) { + if (mIsApp) { // var stats = System.getSystemStats(); // stats.* values in bytes // System.println("HomeAssistantApp onReturnFetchMenuConfig() Memory: total=" + stats.totalMemory + ", used=" + stats.usedMemory + ", free=" + stats.freeMemory); @@ -219,14 +213,14 @@ class HomeAssistantApp extends Application.AppBase { // "Keys and values are limited to 8 KB each, and a total of 128 KB of storage is available." // "Storage.setValue() fails with an uncatchable out-of-memory error." Storage.setValue(scStorageKeyMenu, data as Lang.Dictionary); - mMenuStatus = WatchUi.loadResource($.Rez.Strings.Cached) as Lang.String; - } else { - mMenuStatus = WatchUi.loadResource($.Rez.Strings.Available) as Lang.String; + // Store the smaller glance section of the menu separately so the Glance view can retrieve it within memory limits. + var glance = (data as Lang.Dictionary)["glance"]; + if (glance != null) { + Storage.setValue(scStorageKeyGlance, glance as Lang.Dictionary); + } } } - if (!mIsApp) { - glanceTemplate(data); - } else { + if (mIsApp) { if (data == null) { ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoJson) as Lang.String); } else if (data.size() == 0) { @@ -268,13 +262,13 @@ class HomeAssistantApp extends Application.AppBase { function fetchMenuConfig() as Lang.Boolean { // System.println("Menu URL = " + Settings.getConfigUrl()); if (Settings.getConfigUrl().equals("")) { - mMenuStatus = WatchUi.loadResource($.Rez.Strings.Unconfigured) as Lang.String; WatchUi.requestUpdate(); } else { var menu = Storage.getValue(scStorageKeyMenu) as Lang.Dictionary; if (menu != null and (Settings.getClearCache() || !Settings.getCacheConfig())) { // System.println("HomeAssistantApp fetchMenuConfig(): Clearing cached menu on user request."); Storage.deleteValue(scStorageKeyMenu); + Storage.deleteValue(scStorageKeyGlance); menu = null; Settings.unsetClearCache(); } @@ -282,13 +276,8 @@ class HomeAssistantApp extends Application.AppBase { // System.println("HomeAssistantApp fetchMenuConfig(): Menu not cached, fetching."); fetchMenuConfigBasic(method(:onReturnFetchMenuConfig)); } else { - mMenuStatus = WatchUi.loadResource($.Rez.Strings.Cached) as Lang.String; WatchUi.requestUpdate(); - if (!mIsApp) { - glanceTemplate(menu); - } else { - buildMenu(menu); - } + buildMenu(menu); return true; } } @@ -329,7 +318,6 @@ class HomeAssistantApp extends Application.AppBase { } else { ErrorView.show(WatchUi.loadResource(errorRez) as Lang.String); } - mMenuStatus = WatchUi.loadResource(errorRez) as Lang.String; } else { Communications.makeWebRequest( Settings.getConfigUrl(), @@ -368,19 +356,17 @@ class HomeAssistantApp extends Application.AppBase { //! Extract the optional template to override the default glance view. // - function glanceTemplate(menu as Lang.Dictionary) { - if (menu != null) { - if (menu["glance"] != null) { - var glance = menu["glance"] as Lang.Dictionary; - if (glance["type"].equals("info")) { - mGlanceTemplate = glance["content"] as Lang.String; - // System.println("HomeAssistantApp glanceTemplate() " + mGlanceTemplate); - } else { // if glance["type"].equals("status") - mGlanceTemplate = null; - } + function glanceTemplate() { + var glance = Storage.getValue(scStorageKeyGlance) as Lang.Dictionary; + if ((glance != null) && (glance["type"] != null)) { + if (glance["type"].equals("info")) { + mGlanceTemplate = glance["content"] as Lang.String; + // System.println("HomeAssistantApp glanceTemplate() " + mGlanceTemplate); + } else { // if glance["type"].equals("status") + mGlanceTemplate = null; } } - } + } //! Test if two dictionaries are structurally equal. Used to see if the JSON menu has been //! amended but yet to be updated in the application cache. @@ -539,6 +525,11 @@ class HomeAssistantApp extends Application.AppBase { if (menu == null || !structuralEquals(data, menu)) { // System.println("HomeAssistantApp onReturnCheckMenuConfig() New menu found."); Storage.setValue(scStorageKeyMenu, data as Lang.Dictionary); + // Store the smaller glance section of the menu separately so the Glance view can retrieve it within memory limits. + var glance = (data as Lang.Dictionary)["glance"]; + if (glance != null) { + Storage.setValue(scStorageKeyGlance, glance as Lang.Dictionary); + } if (menu != null) { // Notify the the user we have just got a newer menu file var toast = WatchUi.loadResource($.Rez.Strings.MenuUpdated) as Lang.String; @@ -897,51 +888,18 @@ class HomeAssistantApp extends Application.AppBase { switch (responseCode) { case Communications.BLE_HOST_TIMEOUT: case Communications.BLE_CONNECTION_UNAVAILABLE: - // System.println("HomeAssistantApp onReturnFetchGlanceContent() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed."); - if (mIsApp) { - ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoPhone) as Lang.String); - } - break; - case Communications.BLE_QUEUE_FULL: - // System.println("HomeAssistantApp onReturnFetchGlanceContent() Response Code: BLE_QUEUE_FULL, API calls too rapid."); - if (mIsApp) { - ErrorView.show(WatchUi.loadResource($.Rez.Strings.ApiFlood) as Lang.String); - } - break; - case Communications.NETWORK_REQUEST_TIMED_OUT: - // System.println("HomeAssistantApp onReturnFetchGlanceContent() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection."); - if (mIsApp) { - ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoResponse) as Lang.String); - } - break; - case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE: - // System.println("HomeAssistantApp onReturnFetchGlanceContent() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned."); - if (mIsApp) { - ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoJson) as Lang.String); - } - break; - case 404: - // System.println("HomeAssistantApp onReturnFetchGlanceContent() Response Code: 404, page not found. Check Configuration URL setting."); - if (mIsApp) { - ErrorView.show(WatchUi.loadResource($.Rez.Strings.ConfigUrlNotFound) as Lang.String); - } break; case 200: if ((data != null) && (data instanceof Lang.Dictionary)) { mGlanceText = data["glanceTemplate"]; } + WatchUi.requestUpdate(); break; - - default: - // System.println("HomeAssistantApp onReturnFetchGlanceContent(): Unhandled HTTP response code = " + responseCode); - if (mIsApp) { - ErrorView.show(WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr) as Lang.String + responseCode); - } } WatchUi.requestUpdate(); } @@ -989,14 +947,6 @@ class HomeAssistantApp extends Application.AppBase { return mApiStatus; } - //! Return the Menu status result. - //! - //! @return A string describing the Menu status - // - function getMenuStatus() as Lang.String { - return mMenuStatus; - } - //! Return the optional glance text that overrides the default glance content. This //! is derived from the glance template. //! @@ -1047,11 +997,12 @@ class HomeAssistantApp extends Application.AppBase { function getGlanceView() as [ WatchUi.GlanceView ] or [ WatchUi.GlanceView, WatchUi.GlanceViewDelegate ] or Null { mIsApp = false; // A bit unnecessary given the default mApiStatus = WatchUi.loadResource($.Rez.Strings.Checking) as Lang.String; - mMenuStatus = WatchUi.loadResource($.Rez.Strings.Checking) as Lang.String; Settings.update(); updateStatus(); mGlanceTimer = new Timer.Timer(); mGlanceTimer.start(method(:updateStatus), Globals.scApiBackoffMs, true); + // Although this is now known immediately, wait before displaying so the status can be seen first. + glanceTemplate(); return [new HomeAssistantGlanceView(self)]; } @@ -1066,8 +1017,6 @@ class HomeAssistantApp extends Application.AppBase { //! Update the menu and API statuses. Required for the Glance update timer. // function updateStatus() as Void { - mGlanceTimer = null; - fetchMenuConfig(); fetchApiStatus(); if (!Settings.getWebhookId().equals("") && !Settings.getClearWebhookId()) { fetchGlanceContent(); diff --git a/source/HomeAssistantGlanceView.mc b/source/HomeAssistantGlanceView.mc index 015b367..f5ceaa8 100644 --- a/source/HomeAssistantGlanceView.mc +++ b/source/HomeAssistantGlanceView.mc @@ -47,8 +47,6 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView { private var mTitle as WatchUi.Text?; private var mApiText as WatchUi.Text?; private var mApiStatus as WatchUi.Text?; - private var mMenuText as WatchUi.Text?; - private var mMenuStatus as WatchUi.Text?; private var mGlanceContent as WatchUi.TextArea?; private var mAntiAlias as Lang.Boolean = false; @@ -69,7 +67,7 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView { function onLayout(dc as Graphics.Dc) as Void { var h = dc.getHeight(); - mTextWidth = dc.getTextWidthInPixels(WatchUi.loadResource($.Rez.Strings.GlanceMenu) as Lang.String + ":", Graphics.FONT_XTINY); + mTextWidth = dc.getTextWidthInPixels("API:", Graphics.FONT_XTINY); mTitle = new WatchUi.Text({ :text => WatchUi.loadResource($.Rez.Strings.AppName) as Lang.String, @@ -86,7 +84,7 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView { :font => Graphics.FONT_XTINY, :justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, :locX => scLeftRectMargin + scRectWidth + scRightRectMargin, - :locY => 3 * h / 6 + :locY => 4 * h / 6 }); mApiStatus = new WatchUi.Text({ :text => WatchUi.loadResource($.Rez.Strings.Checking) as Lang.String, @@ -94,28 +92,11 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView { :font => Graphics.FONT_XTINY, :justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, :locX => scLeftRectMargin + scRectWidth + scRightRectMargin + scMidSep + mTextWidth, - :locY => 3 * h / 6 - }); - - mMenuText = new WatchUi.Text({ - :text => WatchUi.loadResource($.Rez.Strings.GlanceMenu) as Lang.String + ":", - :color => Graphics.COLOR_WHITE, - :font => Graphics.FONT_XTINY, - :justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, - :locX => scLeftRectMargin + scRectWidth + scRightRectMargin, - :locY => 5 * h / 6 - }); - mMenuStatus = new WatchUi.Text({ - :text => WatchUi.loadResource($.Rez.Strings.Checking) as Lang.String, - :color => Graphics.COLOR_WHITE, - :font => Graphics.FONT_XTINY, - :justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, - :locX => scLeftRectMargin + scRectWidth + scRightRectMargin + scMidSep + mTextWidth, - :locY => 5 * h / 6 + :locY => 4 * h / 6 }); mGlanceContent = new WatchUi.TextArea({ - :text => "A longer piece of text to wrap.", + :text => "", :color => Graphics.COLOR_WHITE, :font => Graphics.FONT_XTINY, :justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, @@ -134,10 +115,8 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView { var h = dc.getHeight(); var w = dc.getWidth() - scLeftRectMargin - scRightGlanceMargin; var apiStatus = mApp.getApiStatus(); - var menuStatus = mApp.getMenuStatus(); var glanceText = mApp.getGlanceText(); var apiCol; - var menuCol; // System.println("HomeAssistantGlanceView onUpdate() glanceText=" + glanceText); GlanceView.onUpdate(dc); @@ -160,33 +139,15 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView { apiCol = Graphics.COLOR_RED; } - if (menuStatus.equals(WatchUi.loadResource($.Rez.Strings.Checking))) { - menuCol = Graphics.COLOR_YELLOW; - } else if (menuStatus.equals(WatchUi.loadResource($.Rez.Strings.Available))) { - menuCol = Graphics.COLOR_GREEN; - } else if (menuStatus.equals(WatchUi.loadResource($.Rez.Strings.Cached))) { - menuCol = Graphics.COLOR_GREEN; - } else { - menuCol = Graphics.COLOR_RED; - } - if (glanceText == null) { - // Default Glance View + // Status Glance View mApiText.draw(dc); mApiStatus.setText(apiStatus); mApiStatus.setColor(apiCol); dc.setColor(apiCol, apiCol); - dc.drawRoundedRectangle(scLeftRectMargin, 2 * h / 6 + scVertMargin, w, 2 * h / 6 - (2 * scVertMargin), scRectRadius); - dc.fillRoundedRectangle(scLeftRectMargin, 2 * h / 6 + scVertMargin, scRectWidth, 2 * h / 6 - (2 * scVertMargin), scRectRadius); + dc.drawRoundedRectangle(scLeftRectMargin, 2 * h / 6 + scVertMargin, w, 4 * h / 6 - (2 * scVertMargin), scRectRadius); + dc.fillRoundedRectangle(scLeftRectMargin, 2 * h / 6 + scVertMargin, scRectWidth, 4 * h / 6 - (2 * scVertMargin), scRectRadius); mApiStatus.draw(dc); - - mMenuText.draw(dc); - mMenuStatus.setText(menuStatus); - mMenuStatus.setColor(menuCol); - dc.setColor(menuCol, menuCol); - dc.drawRoundedRectangle(scLeftRectMargin, 4 * h / 6 + scVertMargin, w, 2 * h / 6 - (2 * scVertMargin), scRectRadius); - dc.fillRoundedRectangle(scLeftRectMargin, 4 * h / 6 + scVertMargin, scRectWidth, 2 * h / 6 - (2 * scVertMargin), scRectRadius); - mMenuStatus.draw(dc); } else { // Customised Glance View dc.setColor(Graphics.COLOR_BLUE, Graphics.COLOR_BLUE); @@ -198,9 +159,7 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView { scRectRadius ); dc.setColor(apiCol, apiCol); - dc.fillRoundedRectangle(scLeftRectMargin, 2 * h / 6 + scVertMargin, scRectWidth, 2 * h / 6 - (2 * scVertMargin), scRectRadius); - dc.setColor(menuCol, menuCol); - dc.fillRoundedRectangle(scLeftRectMargin, 4 * h / 6 + scVertMargin, scRectWidth, 2 * h / 6 - (2 * scVertMargin), scRectRadius); + dc.fillRoundedRectangle(scLeftRectMargin, 2 * h / 6 + scVertMargin, scRectWidth, 4 * h / 6 - (2 * scVertMargin), scRectRadius); mGlanceContent.setText(glanceText); mGlanceContent.draw(dc); }