From 1653569e8f67903dc56ccbad58ebe2bffdda20fe Mon Sep 17 00:00:00 2001 From: Philip Abbey Date: Fri, 10 Nov 2023 18:22:14 +0000 Subject: [PATCH] Added 54 devices Added vibrate knowledgement Fall back to a home made alert if no toast or vibrate Support for 80 devices, 54 new ones added --- HomeAssistant.code-workspace | 12 +++ iconResize.py | 22 ++-- manifest.xml | 96 +++++++++++++++++ monkey.jungle | 100 +++++++++++++++++- resources-ara/strings/strings.xml | 3 + resources-bul/strings/strings.xml | 3 + resources-ces/strings/strings.xml | 3 + resources-dan/strings/strings.xml | 3 + resources-deu/strings/strings.xml | 3 + resources-dut/strings/strings.xml | 3 + resources-est/strings/strings.xml | 3 + resources-fin/strings/strings.xml | 3 + resources-fre/strings/strings.xml | 3 + resources-gre/strings/strings.xml | 3 + resources-heb/strings/strings.xml | 3 + resources-hrv/strings/strings.xml | 3 + resources-hun/strings/strings.xml | 3 + resources-icons-18/drawables.xml | 20 ++++ resources-icons-18/error.svg | 1 + resources-icons-21/drawables.xml | 20 ++++ resources-icons-21/error.svg | 1 + resources-icons-24/drawables.xml | 20 ++++ resources-icons-24/error.svg | 1 + resources-icons-53/drawables.xml | 20 ++++ resources-icons-53/error.svg | 1 + resources-ind/strings/strings.xml | 3 + resources-ita/strings/strings.xml | 3 + resources-jpn/strings/strings.xml | 3 + resources-kor/strings/strings.xml | 3 + .../drawables.xml | 17 +++ .../launcher.png | Bin 0 -> 3840 bytes resources-launcher-54-54/drawables.xml | 17 +++ resources-launcher-54-54/launcher.png | Bin 0 -> 4942 bytes resources-launcher-62-62/drawables.xml | 17 +++ resources-launcher-62-62/launcher.png | Bin 0 -> 5196 bytes resources-launcher-65-65/drawables.xml | 17 +++ resources-launcher-65-65/launcher.png | Bin 0 -> 5360 bytes resources-launcher-80-80/drawables.xml | 17 +++ resources-launcher-80-80/launcher.png | Bin 0 -> 5869 bytes resources-lav/strings/strings.xml | 3 + resources-lit/strings/strings.xml | 3 + resources-nob/strings/strings.xml | 3 + resources-pol/strings/strings.xml | 3 + resources-por/strings/strings.xml | 3 + resources-ron/strings/strings.xml | 3 + resources-slo/strings/strings.xml | 3 + resources-slv/strings/strings.xml | 3 + resources-spa/strings/strings.xml | 3 + resources-swe/strings/strings.xml | 3 + resources-tha/strings/strings.xml | 3 + resources-tur/strings/strings.xml | 3 + resources-ukr/strings/strings.xml | 5 +- resources-vie/strings/strings.xml | 3 + resources-zhs/strings/strings.xml | 3 + resources-zht/strings/strings.xml | 3 + resources-zsm/strings/strings.xml | 3 + resources/strings/strings.xml | 3 + source/Globals.mc | 2 +- source/HomeAssistantApp.mc | 69 +++++++----- source/HomeAssistantMenuItem.mc | 46 +++++--- source/HomeAssistantToggleMenuItem.mc | 29 ++--- 61 files changed, 578 insertions(+), 74 deletions(-) create mode 100644 HomeAssistant.code-workspace create mode 100644 resources-icons-18/drawables.xml create mode 100644 resources-icons-18/error.svg create mode 100644 resources-icons-21/drawables.xml create mode 100644 resources-icons-21/error.svg create mode 100644 resources-icons-24/drawables.xml create mode 100644 resources-icons-24/error.svg create mode 100644 resources-icons-53/drawables.xml create mode 100644 resources-icons-53/error.svg create mode 100644 resources-launcher-25-25 - DELETE/drawables.xml create mode 100644 resources-launcher-25-25 - DELETE/launcher.png create mode 100644 resources-launcher-54-54/drawables.xml create mode 100644 resources-launcher-54-54/launcher.png create mode 100644 resources-launcher-62-62/drawables.xml create mode 100644 resources-launcher-62-62/launcher.png create mode 100644 resources-launcher-65-65/drawables.xml create mode 100644 resources-launcher-65-65/launcher.png create mode 100644 resources-launcher-80-80/drawables.xml create mode 100644 resources-launcher-80-80/launcher.png diff --git a/HomeAssistant.code-workspace b/HomeAssistant.code-workspace new file mode 100644 index 0000000..1b7e21b --- /dev/null +++ b/HomeAssistant.code-workspace @@ -0,0 +1,12 @@ +{ + "folders": [ + { + "path": "." + }, + { + "name": "abc", + "path": "../blah/abc" + } + ], + "settings": {} +} \ No newline at end of file diff --git a/iconResize.py b/iconResize.py index ca4d82f..fdbb378 100644 --- a/iconResize.py +++ b/iconResize.py @@ -48,14 +48,18 @@ original = (96, 48, 24) lookup = { # Doub Sing Half # 0 1 2 -# 416: (96, 48, 24), - 390: (90, 46, 23), - 360: (84, 42, 21), - 320: (74, 38, 19), - 280: (64, 32, 16), - 260: (60, 30, 15), - 240: (56, 28, 14), - 218: (50, 26, 13), + 454: (106, 53, 27), +# 416: ( 96, 48, 24), + 390: ( 90, 46, 23), + 360: ( 84, 42, 21), + 320: ( 74, 38, 19), + 280: ( 64, 32, 16), + 260: ( 60, 30, 15), + 240: ( 56, 28, 14), + 218: ( 50, 26, 13), + 208: ( 48, 24, 12), + 176: ( 42, 21, 11), + 156: ( 36, 18, 9) } # Delete all but the original 48x48 icon directories @@ -67,6 +71,8 @@ for entry in os.listdir("."): for screen_size, icon_sizes in lookup.items(): output_dir = output_dir_prefix + str(icon_sizes[Sing]) print("\nCreate directory:", output_dir) + if os.path.exists(output_dir) and os.path.isdir(output_dir): + shutil.rmtree(output_dir) os.makedirs(output_dir) for entry in os.listdir(input_dir): if entry.endswith(".svg"): diff --git a/manifest.xml b/manifest.xml index 643d0e3..53c1466 100644 --- a/manifest.xml +++ b/manifest.xml @@ -30,19 +30,100 @@ "Monkey C: Edit Products" - Lets you add or remove any product --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -50,6 +131,15 @@ + + + + + + + + + @@ -66,10 +156,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/resources-icons-18/error.svg b/resources-icons-18/error.svg new file mode 100644 index 0000000..5776799 --- /dev/null +++ b/resources-icons-18/error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources-icons-21/drawables.xml b/resources-icons-21/drawables.xml new file mode 100644 index 0000000..320d05b --- /dev/null +++ b/resources-icons-21/drawables.xml @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/resources-icons-21/error.svg b/resources-icons-21/error.svg new file mode 100644 index 0000000..48c2bf8 --- /dev/null +++ b/resources-icons-21/error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources-icons-24/drawables.xml b/resources-icons-24/drawables.xml new file mode 100644 index 0000000..320d05b --- /dev/null +++ b/resources-icons-24/drawables.xml @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/resources-icons-24/error.svg b/resources-icons-24/error.svg new file mode 100644 index 0000000..8ebdb16 --- /dev/null +++ b/resources-icons-24/error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources-icons-53/drawables.xml b/resources-icons-53/drawables.xml new file mode 100644 index 0000000..320d05b --- /dev/null +++ b/resources-icons-53/drawables.xml @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/resources-icons-53/error.svg b/resources-icons-53/error.svg new file mode 100644 index 0000000..eb83c50 --- /dev/null +++ b/resources-icons-53/error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources-ind/strings/strings.xml b/resources-ind/strings/strings.xml index 03b8937..aa3ba2f 100644 --- a/resources-ind/strings/strings.xml +++ b/resources-ind/strings/strings.xml @@ -26,4 +26,7 @@ Menu Tidak ada koneksi internet Kesalahan Pengambilan Menu + Tidak ada kunci API di pengaturan aplikasi + Tidak ada URL API di pengaturan aplikasi + Tidak ada URL konfigurasi di pengaturan aplikasi \ No newline at end of file diff --git a/resources-ita/strings/strings.xml b/resources-ita/strings/strings.xml index 43bbc2a..17a9326 100644 --- a/resources-ita/strings/strings.xml +++ b/resources-ita/strings/strings.xml @@ -26,4 +26,7 @@ Menù Nessuna connessione internet Errore di recupero del menu + Nessuna chiave API nelle impostazioni dell'applicazione + Nessun URL API nelle impostazioni dell'applicazione + Nessun URL di configurazione nelle impostazioni dell'applicazione \ No newline at end of file diff --git a/resources-jpn/strings/strings.xml b/resources-jpn/strings/strings.xml index 0b1318d..cd4e7e7 100644 --- a/resources-jpn/strings/strings.xml +++ b/resources-jpn/strings/strings.xml @@ -26,4 +26,7 @@ メニュー インターネット接続なし メニューフェッチエラー + アプリケーション設定に API キーがありません + アプリケーション設定に API URL がありません + アプリケーション設定に構成 URL がありません \ No newline at end of file diff --git a/resources-kor/strings/strings.xml b/resources-kor/strings/strings.xml index cfcfbe3..a951a06 100644 --- a/resources-kor/strings/strings.xml +++ b/resources-kor/strings/strings.xml @@ -26,4 +26,7 @@ 메뉴 인터넷에 연결되지 않음 메뉴 가져오기 오류 + 애플리케이션 설정에 API 키가 없습니다. + 애플리케이션 설정에 API URL이 없습니다. + 애플리케이션 설정에 구성 URL이 없습니다. \ No newline at end of file diff --git a/resources-launcher-25-25 - DELETE/drawables.xml b/resources-launcher-25-25 - DELETE/drawables.xml new file mode 100644 index 0000000..d8b5369 --- /dev/null +++ b/resources-launcher-25-25 - DELETE/drawables.xml @@ -0,0 +1,17 @@ + + + + + diff --git a/resources-launcher-25-25 - DELETE/launcher.png b/resources-launcher-25-25 - DELETE/launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7509b0b14ff1ddbcec3b71973449ccb0e4813a20 GIT binary patch literal 3840 zcmV+b5C8CqP)P000>X1^@s6#OZ}&00009a7bBm000XU z000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000ClNkl-~WjFVRGz(L@A|7=xJLi##AGm?#21+K?D;F$8T)louO(Fo6!8o|$vm%ZF*FQ(D^+ zUCBB*$vJy}YwxwzzvS^X39dK6;yGzl4b#IvQ4CfT#oZ>#Y88FgXmm*s#+owdHW8Q_ z1Pg%66irl~7NUdYcea9T0DhawS~J16=t!hb0SAX81+u^yAU8FLDpkH2)g!7LiP`+7 zxV?%Z-3spkM4?aM2Ur^c+^p~wuy9g{s#4{vRCSjsyBu3+bM3$biW~wc4f{oQ5XQ^6wU(kCW2g_lTsypN+-yz!+@ral|1^|QRZeENu^R8-MgD8^l{u+o5DGP zdx5`hFels&B#H%}?6TE7ao`klGmQYO-MoXHuY81Y5=3DLutec&pmAJ?U>SDMXw3!5jboaXlBOsh+C@tf0tMU2TfTDm7NGd@)@o&e4*O&Q|$>ix;E@0g$o-wSBS zw$io#6xrt1DK%BVYvA2qID?okNcyH&u$SsuTzEvi8Aed%SD? zJr{ob8Mo`zLxA8H3r;lvz-n1^BOR;I#8aRpAR0SS)MBkBHg@ghKEH?w!+0G8kvv;!w2&ei0GDMRnYttQ+TWhmR!$3^S6`ss@;n z%=ckJA4DdsL{)}UjQ5NAIITLnlB6bkr3FezlYTHaq|D@ji}(EqnXL8y#!S8&Z32z(p_ z!S}xJ>tv9OK + + + + diff --git a/resources-launcher-54-54/launcher.png b/resources-launcher-54-54/launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..76bfe319706b3f1b6fc14c8d0c5e6dbe9be3d18d GIT binary patch literal 4942 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 + + + + diff --git a/resources-launcher-62-62/launcher.png b/resources-launcher-62-62/launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bfd1b0811807bb907de6790affd8cc2d5d3e4b4d GIT binary patch literal 5196 zcmV-S6tnAzP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000ShNkl4}mU1yGCe5K`l~bS42P?!3xq+ zAFQrW9t)&MpfyUxqA1;JskQ0D_{BE1O=@G(q=~7mu}#yKR1F}n-DPEW9(V3NrypjQ zhs@5*!tSze`6u_&oVoY>&j0k0P`fpiewZ_QRRN)#b(&D7f`34Y`c}q)yUjZEG&ALPD1?bZ#wN}A>#h|aA`bCyDzJxCjM%fmIt~2kOI~YCfI?~1A z@9xz6fB?^;)RPLHDhQpj7<27RmNdRhyrPQoM2xDcDk{p$NR*Yccw-Y|r_U?}{%gRN zfdC%s^ucZ=)ow9j;xz8s)I_YTf@nC1rsWNRsnKbj3Qs6fL`vBj715bBYO#aes+`au( zMvR+GB4F#8*VEFeiiWSfC9Ht7S(fVscYCvI2{v5aIE(HI801xnWK=wf6io#b9d^%|{a`Lq-TECBQI6|z4(7Ax8k%&d{`+UrQ z@JYr@D=FG92VU-xsXM}?yGsf$Akw8mkD6M;(k(wGUU?PKa1g}B6q%pGlnF$U->)-;g3s#I>d3y1N{e)r(V&Nb{Tw3@LLJ*6D zain6&=9l=zj+OlDowxD&3)c4AK)M7p=Ju<4YU-d6c%0^Kg6z72&`FDm5o4%*>{-I` zGUAaiE?4h_4o%aDg@XhmaTafCV#0Md7BqW>hAxwvz4p;(a%`d}Q9ZZVw2$oZI42ra zfxw^cu$XxL%`D&bI+eq&CJ~MF8g!Q!hCx|8N+h1(&TsE$(yU^6Uc)V$A2jX5ubj(M z1Y7`UrhTNzEt|hp2s)Fpm~z8>7Oj7QSj7;c;XvNvq&Gy@b>iU=p-6;9>-I5a_WUB6 z*D>U&C8m9(sXNVU=R+%(X&*jd$kr7Ky`ZMY&G<5PkMG6w`G`ltm+aF;eO}XuMZ$PZ zle&hzRL`v=lPU(^y27*%cXo9mKe$4}V;_IQkf)Xvg3cr@hEJTz?T_rn^!Z7|W9Yix zFQZyb%cVNE+o1N*Jxr*XL#n-~=9ih-L$Bt>*Wz4ofkMM;AKT)Q&5sw;^vG+bvux{6 zhz}V~A{xfkPtfQ4d>q4YvEY%X7&Uc9!BnTvF;v?kuYGK1ZZsy&YTRodeZnJ;Z!P50 zR?1?0&1{x!JwPa4K_uw!H%;e*PsE~xt7%ciIa$g@OV62PB9FFNGO2E7hv&*{aiEa)}pD-BTsJd*hg0a zXl~hB(7ZDp7L#V(!ji_92}k23ViDYz8M;eM)1)jO#q0BP$GYcBiuP{Vx~{WH5z#_{ z?DKQ$SXlpk+#V0HNT^TD`(TIU#Sfg~y`lpPuhOXrpIzwndMVR&PBgg4! zIZ^}41OXyv-lL{Y=e9LFap`(z3dvt1D=A4^7Qbura@rQ>pPzy%x1`2zQRu~mO8|x_ z4lcl>b?@`haERvCQ{29GH;$9#-8X-Q=e*ipNlQ;`0dQG*^lgpw9Jh0FD`?f3j?C#% z(`Fr7w)uxM-DW@tRJYIongAsj{O`ZcaC_Y`h4wco%q>zFe>kT};ZIU{ZniSnanZ^l6YA=B@9+k~!p>$& zeyCqlIp|MaUZHx})nB}HS(THuFar_&)>Yf;4Uc!c%-UlW#`RJdzwc_o&KOQMlg48P zTI(KtCKDSn+{~s^e3m7XY!_pv&GO%R|K_A^$&Vc;dtRIBN_Dg&RFYVhm<{PaeM1VmJ%Q@yt1VRNZn2F`1=g|$Lk2{Ds;H9o(oca$7U%HvZiQ~NWm5sbRcRN_gfeS7bXiDcNlDT)ODKtM3jx1staz=d7~#@8_J%V&{8- zGpqpkhro|Ms}WlOjzYelRHw3%3*H^h07MCY#u=3IzX1U0m5h^!qBzt50000 + + + + diff --git a/resources-launcher-65-65/launcher.png b/resources-launcher-65-65/launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..16d697f9a274eae7d9e6d68a32e9c7574c1485b3 GIT binary patch literal 5360 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 + + + + diff --git a/resources-launcher-80-80/launcher.png b/resources-launcher-80-80/launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..3feefd131136b6900cd6ee06660bd1affccea83a GIT binary patch literal 5869 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ēlne Nav interneta savienojuma Izvēlnes ielādes kļūda + Lietojumprogrammas iestatījumos nav API atslēgas + Lietojumprogrammas iestatījumos nav API URL + Lietojumprogrammas iestatījumos nav konfigurācijas URL \ No newline at end of file diff --git a/resources-lit/strings/strings.xml b/resources-lit/strings/strings.xml index 88d1bb1..e599cbf 100644 --- a/resources-lit/strings/strings.xml +++ b/resources-lit/strings/strings.xml @@ -26,4 +26,7 @@ Meniu Nėra interneto ryšio Meniu gavimo klaida + Programos nustatymuose nėra API rakto + Programos nustatymuose nėra API URL + Programos nustatymuose nėra konfigūracijos URL \ No newline at end of file diff --git a/resources-nob/strings/strings.xml b/resources-nob/strings/strings.xml index cb80be2..edcddbf 100644 --- a/resources-nob/strings/strings.xml +++ b/resources-nob/strings/strings.xml @@ -26,4 +26,7 @@ Meny Ingen Internett-tilkobling Menyhentingsfeil + Ingen API-nøkkel i applikasjonsinnstillingene + Ingen API-URL i applikasjonsinnstillingene + Ingen konfigurasjons-URL i applikasjonsinnstillingene \ No newline at end of file diff --git a/resources-pol/strings/strings.xml b/resources-pol/strings/strings.xml index 236d5d5..5f7db9b 100644 --- a/resources-pol/strings/strings.xml +++ b/resources-pol/strings/strings.xml @@ -26,4 +26,7 @@ Menu Brak połączenia z internetem Błąd pobierania menu + Brak klucza API w ustawieniach aplikacji + Brak adresu API w ustawieniach aplikacji + Brak adresu URL konfiguracji w ustawieniach aplikacji \ No newline at end of file diff --git a/resources-por/strings/strings.xml b/resources-por/strings/strings.xml index 3f93633..4b98456 100644 --- a/resources-por/strings/strings.xml +++ b/resources-por/strings/strings.xml @@ -26,4 +26,7 @@ Cardápio Sem conexão com a Internet Erro ao buscar menu + Nenhuma chave de API nas configurações do aplicativo + Nenhum URL de API nas configurações do aplicativo + Nenhum URL de configuração nas configurações do aplicativo \ No newline at end of file diff --git a/resources-ron/strings/strings.xml b/resources-ron/strings/strings.xml index 2920cf6..430f2f4 100644 --- a/resources-ron/strings/strings.xml +++ b/resources-ron/strings/strings.xml @@ -26,4 +26,7 @@ Meniul Fără conexiune internet Eroare de preluare a meniului + Nicio cheie API în setările aplicației + Nicio adresă URL API în setările aplicației + Nicio adresă URL de configurare în setările aplicației \ No newline at end of file diff --git a/resources-slo/strings/strings.xml b/resources-slo/strings/strings.xml index ebe1983..70e5be8 100644 --- a/resources-slo/strings/strings.xml +++ b/resources-slo/strings/strings.xml @@ -26,4 +26,7 @@ Ponuka Žiadne internetové pripojenie Chyba načítania ponuky + V nastaveniach aplikácie nie je žiadny kľúč API + V nastaveniach aplikácie nie je žiadna adresa URL rozhrania API + V nastaveniach aplikácie nie je žiadna konfiguračná URL \ No newline at end of file diff --git a/resources-slv/strings/strings.xml b/resources-slv/strings/strings.xml index 258cfd2..77e7b24 100644 --- a/resources-slv/strings/strings.xml +++ b/resources-slv/strings/strings.xml @@ -26,4 +26,7 @@ meni Ni internetne povezave Napaka pri pridobivanju menija + V nastavitvah aplikacije ni ključa API + V nastavitvah aplikacije ni URL-ja API-ja + V nastavitvah aplikacije ni konfiguracijskega URL-ja \ No newline at end of file diff --git a/resources-spa/strings/strings.xml b/resources-spa/strings/strings.xml index fb8ef21..1cf43c5 100644 --- a/resources-spa/strings/strings.xml +++ b/resources-spa/strings/strings.xml @@ -26,4 +26,7 @@ Menú Sin conexión a Internet Error de recuperación del menú + Sin clave API en la configuración de la aplicación + No hay URL de API en la configuración de la aplicación + No hay URL de configuración en la configuración de la aplicación. \ No newline at end of file diff --git a/resources-swe/strings/strings.xml b/resources-swe/strings/strings.xml index bf32799..45f099d 100644 --- a/resources-swe/strings/strings.xml +++ b/resources-swe/strings/strings.xml @@ -26,4 +26,7 @@ Meny Ingen internetanslutning Menyhämtningsfel + Ingen API-nyckel i applikationsinställningarna + Ingen API-URL i applikationsinställningarna + Ingen konfigurations-URL i programinställningarna \ No newline at end of file diff --git a/resources-tha/strings/strings.xml b/resources-tha/strings/strings.xml index aa06e0f..ef40948 100644 --- a/resources-tha/strings/strings.xml +++ b/resources-tha/strings/strings.xml @@ -26,4 +26,7 @@ เมนู ไม่มีการเชื่อมต่ออินเทอร์เน็ต เมนูดึงข้อมูลผิดพลาด + ไม่มีคีย์ API ในการตั้งค่าแอปพลิเคชัน + ไม่มี URL API ในการตั้งค่าแอปพลิเคชัน + ไม่มี URL การกำหนดค่าในการตั้งค่าแอปพลิเคชัน \ No newline at end of file diff --git a/resources-tur/strings/strings.xml b/resources-tur/strings/strings.xml index d8574bf..e00cc00 100644 --- a/resources-tur/strings/strings.xml +++ b/resources-tur/strings/strings.xml @@ -26,4 +26,7 @@ Menü İnternet bağlantısı yok Menü Alma Hatası + Uygulama ayarlarında API anahtarı yok + Uygulama ayarlarında API URL'si yok + Uygulama ayarlarında yapılandırma URL'si yok \ No newline at end of file diff --git a/resources-ukr/strings/strings.xml b/resources-ukr/strings/strings.xml index aa0ecd7..75df959 100644 --- a/resources-ukr/strings/strings.xml +++ b/resources-ukr/strings/strings.xml @@ -15,7 +15,7 @@ @@ -26,4 +26,7 @@ Меню Немає підключення до Інтернету Помилка вибірки меню + У налаштуваннях програми немає ключа API + У налаштуваннях програми немає URL-адреси API + У налаштуваннях програми немає URL-адреси конфігурації \ No newline at end of file diff --git a/resources-vie/strings/strings.xml b/resources-vie/strings/strings.xml index 0386be7..c2a6afe 100644 --- a/resources-vie/strings/strings.xml +++ b/resources-vie/strings/strings.xml @@ -26,4 +26,7 @@ Thực đơn Không có kết nối Internet Lỗi tìm nạp menu + Không có khóa API trong cài đặt ứng dụng + Không có URL API trong cài đặt ứng dụng + Không có URL cấu hình trong cài đặt ứng dụng \ No newline at end of file diff --git a/resources-zhs/strings/strings.xml b/resources-zhs/strings/strings.xml index 42f14d9..f0a37d0 100644 --- a/resources-zhs/strings/strings.xml +++ b/resources-zhs/strings/strings.xml @@ -26,4 +26,7 @@ 菜单 没有网络连接 菜单获取错误 + 应用程序设置中没有 API 密钥 + 应用程序设置中没有 API URL + 应用程序设置中没有配置 URL \ No newline at end of file diff --git a/resources-zht/strings/strings.xml b/resources-zht/strings/strings.xml index 308aaf4..905c12e 100644 --- a/resources-zht/strings/strings.xml +++ b/resources-zht/strings/strings.xml @@ -26,4 +26,7 @@ 選單 沒有網路連線 選單取得錯誤 + 應用程式設定中沒有 API 金鑰 + 應用程式設定中沒有 API URL + 應用程式設定中沒有配置 URL \ No newline at end of file diff --git a/resources-zsm/strings/strings.xml b/resources-zsm/strings/strings.xml index 96a62b4..bc1a38b 100644 --- a/resources-zsm/strings/strings.xml +++ b/resources-zsm/strings/strings.xml @@ -26,4 +26,7 @@ Menu Tiada sambungan internet Ralat Pengambilan Menu + Tiada kunci API dalam tetapan aplikasi + Tiada URL API dalam tetapan aplikasi + Tiada URL konfigurasi dalam tetapan aplikasi \ No newline at end of file diff --git a/resources/strings/strings.xml b/resources/strings/strings.xml index 5296ac1..87c85f3 100644 --- a/resources/strings/strings.xml +++ b/resources/strings/strings.xml @@ -20,4 +20,7 @@ Menu No Internet connection Menu Fetch Error + No API key in the application settings + No API URL in the application settings + No configuration URL in the application settings diff --git a/source/Globals.mc b/source/Globals.mc index 10c699a..6420097 100644 --- a/source/Globals.mc +++ b/source/Globals.mc @@ -23,7 +23,7 @@ using Toybox.Lang; class Globals { // Enable printing of messages to the debug console (don't make this a Property // as the messages can't be read from a watch!) - static const debug = false; + static const debug = true; static const updateInterval = 5; // seconds static const alertTimeout = 2000; // ms static const tapTimeout = 1000; // ms diff --git a/source/HomeAssistantApp.mc b/source/HomeAssistantApp.mc index bfc4ffd..071d023 100644 --- a/source/HomeAssistantApp.mc +++ b/source/HomeAssistantApp.mc @@ -26,20 +26,25 @@ using Toybox.Timer; class HomeAssistantApp extends Application.AppBase { hidden var haMenu; - hidden var strNoInternet as Lang.String; - hidden var strNoMenu as Lang.String; - hidden var timer as Timer.Timer; + hidden var strNoApiKey as Lang.String; + hidden var strNoApiUrl as Lang.String; + hidden var strNoConfigUrl as Lang.String; + hidden var strNoInternet as Lang.String; + hidden var strNoMenu as Lang.String; + hidden var timer as Timer.Timer; function initialize() { AppBase.initialize(); - strNoInternet = WatchUi.loadResource($.Rez.Strings.NoInternet); - strNoMenu = WatchUi.loadResource($.Rez.Strings.NoMenu); - timer = new Timer.Timer(); + strNoApiKey = WatchUi.loadResource($.Rez.Strings.NoAPIKey); + strNoApiUrl = WatchUi.loadResource($.Rez.Strings.NoApiUrl); + strNoConfigUrl = WatchUi.loadResource($.Rez.Strings.NoConfigUrl); + strNoInternet = WatchUi.loadResource($.Rez.Strings.NoInternet); + strNoMenu = WatchUi.loadResource($.Rez.Strings.NoMenu); + timer = new Timer.Timer(); } // onStart() is called on application start up function onStart(state as Lang.Dictionary?) as Void { - fetchMenuConfig(); } // onStop() is called when your application is exiting @@ -51,7 +56,30 @@ class HomeAssistantApp extends Application.AppBase { // Return the initial view of your application here function getInitialView() as Lang.Array? { - return [new WatchUi.View(), new WatchUi.BehaviorDelegate()] as Lang.Array; + if ((Properties.getValue("api_key") as Lang.String).length() == 0) { + if (Globals.debug) { + System.println("HomeAssistantMenuItem Note - execScript(): No API key in the application settings."); + } + return [new ErrorView(strNoApiKey + "."), new ErrorDelegate()] as Lang.Array; + } else if ((Properties.getValue("api_url") as Lang.String).length() == 0) { + if (Globals.debug) { + System.println("HomeAssistantMenuItem Note - execScript(): No API URL in the application settings."); + } + return [new ErrorView(strNoApiUrl + "."), new ErrorDelegate()] as Lang.Array; + } else if ((Properties.getValue("config_url") as Lang.String).length() == 0) { + if (Globals.debug) { + System.println("HomeAssistantMenuItem Note - execScript(): No configuration URL in the application settings."); + } + return [new ErrorView(strNoConfigUrl + "."), new ErrorDelegate()] as Lang.Array; + } else if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) { + fetchMenuConfig(); + return [new WatchUi.View(), new WatchUi.BehaviorDelegate()] as Lang.Array; + } else { + if (Globals.debug) { + System.println("HomeAssistantApp Note - fetchMenuConfig(): No Internet connection, skipping API call."); + } + return [new ErrorView(strNoInternet + "."), new ErrorDelegate()] as Lang.Array; + } } // Callback function after completing the GET request to fetch the configuration menu. @@ -87,25 +115,12 @@ class HomeAssistantApp extends Application.AppBase { :method => Communications.HTTP_REQUEST_METHOD_GET, :responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON }; - if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) { - Communications.makeWebRequest( - Properties.getValue("config_url"), - null, - options, - method(:onReturnFetchMenuConfig) - ); - } else { - if (Globals.debug) { - System.println("HomeAssistantApp Note - fetchMenuConfig(): No Internet connection, skipping API call."); - } - new Alert({ - :timeout => Globals.alertTimeout, - :font => Graphics.FONT_SYSTEM_TINY, - :text => strNoInternet, - :fgcolor => Graphics.COLOR_RED, - :bgcolor => Graphics.COLOR_BLACK - }).pushView(WatchUi.SLIDE_IMMEDIATE); - } + Communications.makeWebRequest( + Properties.getValue("config_url"), + null, + options, + method(:onReturnFetchMenuConfig) + ); } } diff --git a/source/HomeAssistantMenuItem.mc b/source/HomeAssistantMenuItem.mc index 26c6f5b..0371c04 100644 --- a/source/HomeAssistantMenuItem.mc +++ b/source/HomeAssistantMenuItem.mc @@ -37,6 +37,7 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem { } or Null ) { strNoInternet = WatchUi.loadResource($.Rez.Strings.NoInternet); + WatchUi.MenuItem.initialize( label, subLabel, @@ -59,10 +60,28 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem { if (Globals.debug) { System.println("HomeAssistantMenuItem Note - onReturnExecScript(): Correct script executed."); } - WatchUi.showToast( - (d[i].get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String, - null - ); + if (WatchUi has :showToast) { + WatchUi.showToast( + (d[i].get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String, + null + ); + } + if (Attention has :vibrate) { + Attention.vibrate([ + new Attention.VibeProfile(50, 100), // On for 100ms + new Attention.VibeProfile( 0, 100), // Off for 100ms + new Attention.VibeProfile(50, 100) // On for 100ms + ]); + } + if (!(WatchUi has :showToast) && !(Attention has :vibrate)) { + new Alert({ + :timeout => Globals.alertTimeout, + :font => Graphics.FONT_MEDIUM, + :text => (d[i].get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String, + :fgcolor => Graphics.COLOR_WHITE, + :bgcolor => Graphics.COLOR_BLACK + }).pushView(WatchUi.SLIDE_IMMEDIATE); + } } } } @@ -77,10 +96,13 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem { :responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON }; if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) { - var url = Properties.getValue("api_url") + "/services/" + mIdentifier.substring(0, mIdentifier.find(".")) + "/" + mIdentifier.substring(mIdentifier.find(".")+1, null); + // Updated SDK and got a new error + // ERROR: venu: Cannot find symbol ':substring' on type 'PolyType'. + var id = mIdentifier as Lang.String; + var url = (Properties.getValue("api_url") as Lang.String) + "/services/" + id.substring(0, id.find(".")) + "/" + id.substring(id.find(".")+1, id.length()); if (Globals.debug) { - System.println("URL=" + url); - System.println("mIdentifier=" + mIdentifier); + System.println("HomeAssistantMenuItem execScript() URL=" + url); + System.println("HomeAssistantMenuItem execScript() mIdentifier=" + mIdentifier); } Communications.makeWebRequest( url, @@ -90,15 +112,9 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem { ); } else { if (Globals.debug) { - System.println("HomeAssistantMenuItem Note - executeScript(): No Internet connection, skipping API call."); + System.println("HomeAssistantMenuItem Note - execScript(): No Internet connection, skipping API call."); } - new Alert({ - :timeout => Globals.alertTimeout, - :font => Graphics.FONT_SYSTEM_TINY, - :text => strNoInternet, - :fgcolor => Graphics.COLOR_RED, - :bgcolor => Graphics.COLOR_BLACK - }).pushView(WatchUi.SLIDE_IMMEDIATE); + WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP); } } diff --git a/source/HomeAssistantToggleMenuItem.mc b/source/HomeAssistantToggleMenuItem.mc index 82474de..8abef5c 100644 --- a/source/HomeAssistantToggleMenuItem.mc +++ b/source/HomeAssistantToggleMenuItem.mc @@ -87,7 +87,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) { var url = Properties.getValue("api_url") + "/states/" + mIdentifier; if (Globals.debug) { - System.println("URL=" + url); + System.println("HomeAssistantToggleMenuItem getState() URL=" + url); } Communications.makeWebRequest( url, @@ -99,13 +99,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { if (Globals.debug) { System.println("HomeAssistantToggleMenuItem Note - getState(): No Internet connection, skipping API call."); } - new Alert({ - :timeout => Globals.alertTimeout, - :font => Graphics.FONT_SYSTEM_TINY, - :text => strNoInternet, - :fgcolor => Graphics.COLOR_RED, - :bgcolor => Graphics.COLOR_BLACK - }).pushView(WatchUi.SLIDE_IMMEDIATE); + WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP); } } @@ -141,15 +135,18 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { :responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON }; if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) { + // Updated SDK and got a new error + // ERROR: venu: Cannot find symbol ':substring' on type 'PolyType'. + var id = mIdentifier as Lang.String; var url; if (s) { - url = Properties.getValue("api_url") + "/services/" + mIdentifier.substring(0, mIdentifier.find(".")) + "/turn_on"; + url = Properties.getValue("api_url") + "/services/" + id.substring(0, id.find(".")) + "/turn_on"; } else { - url = Properties.getValue("api_url") + "/services/" + mIdentifier.substring(0, mIdentifier.find(".")) + "/turn_off"; + url = Properties.getValue("api_url") + "/services/" + id.substring(0, id.find(".")) + "/turn_off"; } if (Globals.debug) { - System.println("URL=" + url); - System.println("mIdentifier=" + mIdentifier); + System.println("HomeAssistantToggleMenuItem setState() URL=" + url); + System.println("HomeAssistantToggleMenuItem setState() mIdentifier=" + mIdentifier); } Communications.makeWebRequest( url, @@ -163,13 +160,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { if (Globals.debug) { System.println("HomeAssistantToggleMenuItem Note - setState(): No Internet connection, skipping API call."); } - new Alert({ - :timeout => Globals.alertTimeout, - :font => Graphics.FONT_SYSTEM_TINY, - :text => strNoInternet, - :fgcolor => Graphics.COLOR_RED, - :bgcolor => Graphics.COLOR_BLACK - }).pushView(WatchUi.SLIDE_IMMEDIATE); + WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP); } }