mirror of
https://github.com/house-of-abbey/GarminHomeAssistant.git
synced 2025-06-16 03:18:35 +00:00
Merge branch 'main' into 22-add-internationalisation-for-application-settings
This commit is contained in:
10
manifest.xml
10
manifest.xml
@ -9,19 +9,19 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
Test Application id="98c36259-498a-4458-9cef-74a273ad2bc3"
|
||||
Live Application id="40131e87-31ff-454b-a8e2-92276ee399d6"
|
||||
SomeoneOnEarth's Test App id="bf69be91-5833-4d96-92ea-c5f1a9db5dcc"
|
||||
philipabbey's Test App id="98c36259-498a-4458-9cef-74a273ad2bc3"
|
||||
Live Application id="40131e87-31ff-454b-a8e2-92276ee399d6"
|
||||
|
||||
-->
|
||||
|
||||
<iq:manifest version="3" xmlns:iq="http://www.garmin.com/xml/connectiq">
|
||||
<!--
|
||||
Use "Monkey C: Edit Application" from the Visual Studio Code command palette
|
||||
to update the application attributes.
|
||||
-->
|
||||
<iq:application id="98c36259-498a-4458-9cef-74a273ad2bc3" type="watch-app" name="@Strings.AppName" entry="HomeAssistantApp" launcherIcon="@Drawables.LauncherIcon" minApiLevel="3.1.0">
|
||||
<iq:application id="bf69be91-5833-4d96-92ea-c5f1a9db5dcc" type="widget" name="@Strings.AppName" entry="HomeAssistantApp" launcherIcon="@Drawables.LauncherIcon" minApiLevel="3.1.0">
|
||||
<!--
|
||||
Use the following from the Visual Studio Code comand palette to edit
|
||||
the build targets:
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">على</string>
|
||||
<string id="MenuItemOff">عن</string>
|
||||
<string id="MenuItemTap">مقبض</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">لم يتم العثور على عنوان URL. خطأ محتمل في عنوان URL للتكوين في الإعدادات.</string>
|
||||
<string id="UnhandledHttpErr">قام طلب HTTP بإرجاع رمز الخطأ =</string>
|
||||
<string id="TrailingSlashErr">يجب ألا يحتوي عنوان URL لواجهة برمجة التطبيقات على شرطة مائلة لاحقة '/'</string>
|
||||
<string id="FetchingMenuConfig">جارٍ جلب تكوين القائمة..</string>
|
||||
<string id="ExitViewTouch">مرّر سريعًا إلى اليمين للخروج\nانقر للبقاء</string>
|
||||
<string id="ExitViewButtons">اضغط على "الرجوع للخروج"\nأدخل للبقاء</string>
|
||||
<!-- لإعدادات واجهة المستخدم الرسومية -->
|
||||
<string id="SettingsApiKey">مفتاح API لمساعد المنزل.</string>
|
||||
<string id="SettingsApiKey">مفتاح API لـ HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">رمز الوصول طويل الأمد.</string>
|
||||
<string id="SettingsApiUrl">عنوان URL لواجهة برمجة تطبيقات Home Assistant.</string>
|
||||
<string id="SettingsApiUrl">عنوان URL لواجهة برمجة تطبيقات HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">عنوان URL لتكوين القائمة (JSON).</string>
|
||||
<string id="SettingsAppTimeout">المهلة بالثواني. قم بالخروج من التطبيق بعد هذه الفترة من عدم النشاط لحفظ بطارية الجهاز.</string>
|
||||
<string id="SettingsConfirmTimeout">بعد هذا الوقت (بالثواني)، يتم إغلاق مربع حوار تأكيد الإجراء تلقائيًا ويتم إلغاء الإجراء. اضبط على 0 لتعطيل المهلة.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">На</string>
|
||||
<string id="MenuItemOff">Изкл</string>
|
||||
<string id="MenuItemTap">Докоснете</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL не е намерен. Потенциална грешка в URL адреса на конфигурацията в настройките.</string>
|
||||
<string id="UnhandledHttpErr">HTTP заявката върна код на грешка =</string>
|
||||
<string id="TrailingSlashErr">URL адресът на API не трябва да има наклонена черта '/' в края</string>
|
||||
<string id="FetchingMenuConfig">Извличане на конфигурацията на менюто..</string>
|
||||
<string id="ExitViewTouch">Плъзнете надясно, за да излезете\nДокоснете, за да останете</string>
|
||||
<string id="ExitViewButtons">Натиснете Назад, за да излезете\nВлезте, за да останете</string>
|
||||
<!-- За GUI за настройки -->
|
||||
<string id="SettingsApiKey">API ключ за домашен асистент.</string>
|
||||
<string id="SettingsApiKey">API ключ за HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Токен за дълготраен достъп.</string>
|
||||
<string id="SettingsApiUrl">URL адрес за API на Home Assistant.</string>
|
||||
<string id="SettingsApiUrl">URL адрес за API на HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">URL за конфигурация на менюто (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Изчакване в секунди. Излезте от приложението след този период на неактивност, за да запазите батерията на устройството.</string>
|
||||
<string id="SettingsConfirmTimeout">След това време (в секунди) диалоговият прозорец за потвърждение за действие се затваря автоматично и действието се отменя. Задайте 0, за да деактивирате изчакването.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Na</string>
|
||||
<string id="MenuItemOff">Vypnuto</string>
|
||||
<string id="MenuItemTap">Klepněte</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">Adresa URL nenalezena. Potenciální chyba konfigurační adresy URL v nastavení.</string>
|
||||
<string id="UnhandledHttpErr">Požadavek HTTP vrátil kód chyby =</string>
|
||||
<string id="TrailingSlashErr">Adresa URL rozhraní API nesmí mít koncové lomítko „/“</string>
|
||||
<string id="FetchingMenuConfig">Načítání konfigurace nabídky...</string>
|
||||
<string id="ExitViewTouch">Přejetím prstem doprava ukončíte\nKlepnutím zůstanete</string>
|
||||
<string id="ExitViewButtons">Stisknutím Zpět ukončíte\nVstupte a zůstanete</string>
|
||||
<!-- Pro nastavení GUI -->
|
||||
<string id="SettingsApiKey">Klíč API pro domácího asistenta.</string>
|
||||
<string id="SettingsApiKey">Klíč API pro HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Přístupový token s dlouhou životností.</string>
|
||||
<string id="SettingsApiUrl">URL pro Home Assistant API.</string>
|
||||
<string id="SettingsApiUrl">URL pro HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">Adresa URL pro konfiguraci nabídky (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Časový limit v sekundách. Po této době nečinnosti aplikaci ukončete, abyste šetřili baterii zařízení.</string>
|
||||
<string id="SettingsConfirmTimeout">Po uplynutí této doby (v sekundách) se dialog pro potvrzení akce automaticky zavře a akce se zruší. Nastavením na 0 deaktivujete časový limit.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">På</string>
|
||||
<string id="MenuItemOff">Af</string>
|
||||
<string id="MenuItemTap">Tryk på</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL ikke fundet. Potentiel konfigurations-URL-fejl i indstillinger.</string>
|
||||
<string id="UnhandledHttpErr">HTTP-anmodning returnerede fejlkode =</string>
|
||||
<string id="TrailingSlashErr">API URL må ikke have en efterfølgende skråstreg '/'</string>
|
||||
<string id="FetchingMenuConfig">Henter menukonfiguration..</string>
|
||||
<string id="ExitViewTouch">Stryg til højre for at afslutte\nTryk for at blive</string>
|
||||
<string id="ExitViewButtons">Tryk på Tilbage for at afslutte\nEnter for at blive</string>
|
||||
<!-- Til indstillingerne GUI -->
|
||||
<string id="SettingsApiKey">API-nøgle til Home Assistant.</string>
|
||||
<string id="SettingsApiKey">API-nøgle til HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Adgangstoken med lang levetid.</string>
|
||||
<string id="SettingsApiUrl">URL til Home Assistant API.</string>
|
||||
<string id="SettingsApiUrl">URL til HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">URL til menukonfiguration (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Timeout i sekunder. Afslut applikationen efter denne periode med inaktivitet for at spare på enhedens batteri.</string>
|
||||
<string id="SettingsConfirmTimeout">Efter dette tidspunkt (i sekunder) lukkes en bekræftelsesdialog for en handling automatisk, og handlingen annulleres. Indstil til 0 for at deaktivere timeout.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 14 November 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 14 November 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -22,4 +22,7 @@
|
||||
<string id="MenuItemTap">Antippen</string>
|
||||
<string id="MenuItemMenu">Menü</string>
|
||||
<string id="UnhandledHttpErr">Die HTTP-Anfrage gab folgenden Fehlercode zurück = </string>
|
||||
<string id="ExitViewTouch">Zum Beenden nach rechts swipen\nZum Bleiben antippen</string>
|
||||
<string id="ExitViewButtons">Drücke „Zurück“, um zu Beenden.\n„Enter“, um zu bleiben</string>
|
||||
<string id="FetchingMenuConfig">Lade Config vom Server ... </string>
|
||||
</strings>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">An</string>
|
||||
<string id="MenuItemOff">Aus</string>
|
||||
<string id="MenuItemTap">Antippen</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL nicht gefunden. Möglicher Konfigurations-URL-Fehler in den Einstellungen.</string>
|
||||
<string id="UnhandledHttpErr">Die HTTP-Anfrage gab folgenden Fehlercode zurück = </string>
|
||||
<string id="TrailingSlashErr">Die API-URL darf keinen abschließenden Schrägstrich „/“ enthalten.</string>
|
||||
<string id="FetchingMenuConfig">Lade Config vom Server ... </string>
|
||||
<string id="ExitViewTouch">Zum Beenden nach rechts swipen\nZum Bleiben antippen</string>
|
||||
<string id="ExitViewButtons">Drücke „Zurück“, um zu Beenden.\n„Enter“, um zu bleiben</string>
|
||||
<!-- Für die Einstellungs-GUI -->
|
||||
<string id="SettingsApiKey">API-Schlüssel für Home Assistant.</string>
|
||||
<string id="SettingsApiKey">API-Schlüssel für HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Langlebiges Zugriffstoken.</string>
|
||||
<string id="SettingsApiUrl">URL für die Home Assistant-API.</string>
|
||||
<string id="SettingsApiUrl">URL für die HomeAssistant-API.</string>
|
||||
<string id="SettingsConfigUrl">URL zur Menükonfiguration (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Timeout in Sekunden. Beenden Sie die Anwendung nach dieser Zeit der Inaktivität, um den Akku des Geräts zu schonen.</string>
|
||||
<string id="SettingsConfirmTimeout">Nach dieser Zeit (in Sekunden) wird automatisch ein Bestätigungsdialog für eine Aktion geschlossen und die Aktion abgebrochen. Auf 0 setzen, um das Timeout zu deaktivieren.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Op</string>
|
||||
<string id="MenuItemOff">Uit</string>
|
||||
<string id="MenuItemTap">Kraan</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL niet gevonden. Mogelijke configuratie-URL-fout in de instellingen.</string>
|
||||
<string id="UnhandledHttpErr">HTTP-verzoek retourneerde foutcode =</string>
|
||||
<string id="TrailingSlashErr">API-URL mag geen afsluitende slash '/' bevatten</string>
|
||||
<string id="FetchingMenuConfig">Menuconfiguratie ophalen..</string>
|
||||
<string id="ExitViewTouch">Veeg naar rechts om af te sluiten\nTik om te blijven</string>
|
||||
<string id="ExitViewButtons">Druk op Terug om af te sluiten\nEnter om te blijven</string>
|
||||
<!-- Voor de instellingen-GUI -->
|
||||
<string id="SettingsApiKey">API-sleutel voor Home Assistant.</string>
|
||||
<string id="SettingsApiKey">API-sleutel voor HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Toegangstoken met lange levensduur.</string>
|
||||
<string id="SettingsApiUrl">URL voor Home Assistant-API.</string>
|
||||
<string id="SettingsApiUrl">URL voor HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">URL voor menuconfiguratie (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Time-out in seconden. Sluit de applicatie af na deze periode van inactiviteit om de batterij van het apparaat te sparen.</string>
|
||||
<string id="SettingsConfirmTimeout">Na deze tijd (in seconden) wordt automatisch een bevestigingsvenster voor een actie gesloten en wordt de actie geannuleerd. Stel in op 0 om de time-out uit te schakelen.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Peal</string>
|
||||
<string id="MenuItemOff">Väljas</string>
|
||||
<string id="MenuItemTap">Puudutage</string>
|
||||
@ -32,15 +32,18 @@
|
||||
<string id="NoAPIKey">Rakenduse seadetes pole API-võtit</string>
|
||||
<string id="NoApiUrl">Rakenduse seadetes pole API URL-i</string>
|
||||
<string id="NoConfigUrl">Rakenduse seadetes pole konfiguratsiooni URL-i</string>
|
||||
<string id="ApiFlood">API-kutsed liiga kiired. Palun aeglustage oma taotlusi.</string>
|
||||
<string id="ApiFlood">API-kõned liiga kiired. Palun aeglustage taotluste esitamist.</string>
|
||||
<string id="ApiUrlNotFound">URL-i ei leitud. Võimalik API URL-i viga seadetes.</string>
|
||||
<string id="ConfigUrlNotFound">URL-i ei leitud. Võimalik konfiguratsiooni URL-i viga seadetes.</string>
|
||||
<string id="UnhandledHttpErr">HTTP päring tagastas veakoodi =</string>
|
||||
<string id="TrailingSlashErr">API URL-i lõpus ei tohi olla kaldkriipsu „/”</string>
|
||||
<string id="FetchingMenuConfig">Menüü konfiguratsiooni toomine...</string>
|
||||
<string id="ExitViewTouch">Väljumiseks pühkige paremale\nPuudutage, et jääda</string>
|
||||
<string id="ExitViewButtons">Väljumiseks vajutage Tagasi\nSisestage, et jääda</string>
|
||||
<!-- Seadete GUI jaoks -->
|
||||
<string id="SettingsApiKey">Koduabilise API võti.</string>
|
||||
<string id="SettingsApiKey">API-võti HomeAssistantile.</string>
|
||||
<string id="SettingsApiKeyPrompt">Pikaealine juurdepääsuluba.</string>
|
||||
<string id="SettingsApiUrl">Koduabilise API URL.</string>
|
||||
<string id="SettingsApiUrl">HomeAssistant API URL.</string>
|
||||
<string id="SettingsConfigUrl">URL menüü konfigureerimiseks (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Aegumine sekundites. Seadme aku säästmiseks sulgege rakendus pärast seda tegevusetusperioodi.</string>
|
||||
<string id="SettingsConfirmTimeout">Pärast seda aega (sekundites) suletakse automaatselt toimingu kinnitusdialoog ja toiming tühistatakse. Ajalõpu keelamiseks määrake väärtusele 0.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Päällä</string>
|
||||
<string id="MenuItemOff">Vinossa</string>
|
||||
<string id="MenuItemTap">Napauta</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL-osoitetta ei löydy. Mahdollinen konfigurointi-URL-virhe asetuksissa.</string>
|
||||
<string id="UnhandledHttpErr">HTTP-pyyntö palautti virhekoodin =</string>
|
||||
<string id="TrailingSlashErr">API-URL-osoitteessa ei saa olla perässä olevaa kauttaviivaa '/'</string>
|
||||
<string id="FetchingMenuConfig">Haetaan valikon asetuksia...</string>
|
||||
<string id="ExitViewTouch">Poistu pyyhkäisemällä oikealle\nPysy napauttamalla</string>
|
||||
<string id="ExitViewButtons">Poistu painamalla Takaisin\nSyötä jäädäksesi</string>
|
||||
<!-- GUI-asetusten osalta -->
|
||||
<string id="SettingsApiKey">API-avain Home Assistantille.</string>
|
||||
<string id="SettingsApiKey">API-avain HomeAssistantille.</string>
|
||||
<string id="SettingsApiKeyPrompt">Pitkäikäinen pääsytunnus.</string>
|
||||
<string id="SettingsApiUrl">URL Home Assistant API:lle.</string>
|
||||
<string id="SettingsApiUrl">HomeAssistant API:n URL-osoite.</string>
|
||||
<string id="SettingsConfigUrl">URL-osoite valikon määrityksiä varten (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Aikakatkaisu sekunneissa. Poistu sovelluksesta tämän käyttämättömyyden jälkeen säästääksesi laitteen akkua.</string>
|
||||
<string id="SettingsConfirmTimeout">Tämän ajan kuluttua (sekunneissa) toiminnon vahvistusikkuna suljetaan automaattisesti ja toiminto peruutetaan. Aseta arvoksi 0 poistaaksesi aikakatkaisun käytöstä.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 14 November 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 14 November 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Activé</string>
|
||||
<string id="MenuItemOff">Désactivé</string>
|
||||
<string id="MenuItemTap">Clic</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL introuvable. Erreur potentielle d'URL de configuration dans les paramètres.</string>
|
||||
<string id="UnhandledHttpErr">La requête HTTP a renvoyé un code d'erreur =</string>
|
||||
<string id="TrailingSlashErr">L'URL de l'API ne doit pas comporter de barre oblique finale '/'</string>
|
||||
<string id="FetchingMenuConfig">Récupération de la configuration du menu.</string>
|
||||
<string id="ExitViewTouch">Balayez vers la droite pour quitter\nAppuyez pour rester</string>
|
||||
<string id="ExitViewButtons">Appuyez sur Retour pour quitter\nEntrez pour rester</string>
|
||||
<!-- Pour l'interface graphique des paramètres -->
|
||||
<string id="SettingsApiKey">Clé API pour Home Assistant.</string>
|
||||
<string id="SettingsApiKey">Clé API pour HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Jeton d'accès de longue durée.</string>
|
||||
<string id="SettingsApiUrl">URL de l’API Home Assistant.</string>
|
||||
<string id="SettingsApiUrl">URL de l’API HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">URL de configuration des menus (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Délai d'expiration en secondes. Quittez l'application après cette période d'inactivité pour économiser la batterie de l'appareil.</string>
|
||||
<string id="SettingsConfirmTimeout">Passé ce délai (en secondes), une boîte de dialogue de confirmation d'une action se ferme automatiquement et l'action est annulée. Réglez sur 0 pour désactiver le délai d'attente.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Επί</string>
|
||||
<string id="MenuItemOff">Μακριά από</string>
|
||||
<string id="MenuItemTap">Παρακέντηση</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">Η διεύθυνση URL δεν βρέθηκε. Πιθανό σφάλμα διεύθυνσης URL διαμόρφωσης στις ρυθμίσεις.</string>
|
||||
<string id="UnhandledHttpErr">Το αίτημα HTTP επέστρεψε κωδικό σφάλματος =</string>
|
||||
<string id="TrailingSlashErr">Η διεύθυνση URL του API δεν πρέπει να έχει τελική κάθετο "/"</string>
|
||||
<string id="FetchingMenuConfig">Ανάκτηση παραμέτρων μενού..</string>
|
||||
<string id="ExitViewTouch">Σύρετε προς τα δεξιά για έξοδο\nΠατήστε για να μείνετε</string>
|
||||
<string id="ExitViewButtons">Πατήστε Επιστροφή για Έξοδος\nEnter για να μείνετε</string>
|
||||
<!-- Για τις ρυθμίσεις GUI -->
|
||||
<string id="SettingsApiKey">Κλειδί API για Home Assistant.</string>
|
||||
<string id="SettingsApiKey">Κλειδί API για το HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Διακριτικό πρόσβασης μακράς διαρκείας.</string>
|
||||
<string id="SettingsApiUrl">URL για το Home Assistant API.</string>
|
||||
<string id="SettingsApiUrl">URL για το HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">URL για τη διαμόρφωση μενού (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Timeout σε δευτερόλεπτα. Κλείστε την εφαρμογή μετά από αυτήν την περίοδο αδράνειας για να εξοικονομήσετε την μπαταρία της συσκευής.</string>
|
||||
<string id="SettingsConfirmTimeout">Μετά από αυτό το χρονικό διάστημα (σε δευτερόλεπτα), ένα παράθυρο διαλόγου επιβεβαίωσης για μια ενέργεια κλείνει αυτόματα και η ενέργεια ακυρώνεται. Ορίστε στο 0 για να απενεργοποιήσετε το χρονικό όριο.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">עַל</string>
|
||||
<string id="MenuItemOff">כבוי</string>
|
||||
<string id="MenuItemTap">בֶּרֶז</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">כתובת האתר לא נמצאה. שגיאת כתובת אתר פוטנציאלית של תצורה בהגדרות.</string>
|
||||
<string id="UnhandledHttpErr">בקשת HTTP החזירה קוד שגיאה =</string>
|
||||
<string id="TrailingSlashErr">כתובת ה-API לא חייבת לכלול לוכסן אחורי '/'</string>
|
||||
<string id="FetchingMenuConfig">מביא את תצורת התפריט...</string>
|
||||
<string id="ExitViewTouch">החלק ימינה כדי לצאת\nהקש כדי להישאר</string>
|
||||
<string id="ExitViewButtons">לחץ על חזרה ליציאה\nEnter כדי להישאר</string>
|
||||
<!-- עבור ה-GUI של ההגדרות -->
|
||||
<string id="SettingsApiKey">מפתח API עבור Home Assistant.</string>
|
||||
<string id="SettingsApiKey">מפתח API עבור HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">אסימון גישה ארוך-חיים.</string>
|
||||
<string id="SettingsApiUrl">כתובת URL עבור Home Assistant API.</string>
|
||||
<string id="SettingsApiUrl">כתובת URL עבור HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">כתובת URL לתצורת תפריט (JSON).</string>
|
||||
<string id="SettingsAppTimeout">פסק זמן בשניות. צא מהאפליקציה לאחר תקופה זו של חוסר פעילות כדי לחסוך בסוללת המכשיר.</string>
|
||||
<string id="SettingsConfirmTimeout">לאחר זמן זה (בשניות), תיבת דו-שיח לאישור פעולה נסגרת אוטומטית והפעולה מבוטלת. הגדר ל-0 כדי לבטל את הזמן הקצוב.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Na</string>
|
||||
<string id="MenuItemOff">Isključeno</string>
|
||||
<string id="MenuItemTap">Dodirnite</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL nije pronađen. Potencijalna pogreška URL-a konfiguracije u postavkama.</string>
|
||||
<string id="UnhandledHttpErr">HTTP zahtjev vratio je kod greške =</string>
|
||||
<string id="TrailingSlashErr">API URL ne smije imati kosu crtu na kraju '/'</string>
|
||||
<string id="FetchingMenuConfig">Dohvaćanje konfiguracije izbornika..</string>
|
||||
<string id="ExitViewTouch">Prijeđite prstom udesno za izlaz\nDodirnite za ostanak</string>
|
||||
<string id="ExitViewButtons">Pritisnite Natrag za izlaz\nUnesite za ostanak</string>
|
||||
<!-- Za GUI postavki -->
|
||||
<string id="SettingsApiKey">API ključ za kućnog pomoćnika.</string>
|
||||
<string id="SettingsApiKey">API ključ za HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Dugotrajni pristupni token.</string>
|
||||
<string id="SettingsApiUrl">URL za Home Assistant API.</string>
|
||||
<string id="SettingsApiUrl">URL za HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">URL za konfiguraciju izbornika (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Istek u sekundama. Izađite iz aplikacije nakon ovog razdoblja neaktivnosti kako biste uštedjeli bateriju uređaja.</string>
|
||||
<string id="SettingsConfirmTimeout">Nakon tog vremena (u sekundama), dijaloški okvir za potvrdu radnje automatski se zatvara i radnja se poništava. Postavite na 0 da onemogućite vremensko ograničenje.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Tovább</string>
|
||||
<string id="MenuItemOff">Ki</string>
|
||||
<string id="MenuItemTap">Koppintson a</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">Az URL nem található. Lehetséges konfigurációs URL hiba a beállításokban.</string>
|
||||
<string id="UnhandledHttpErr">A HTTP-kérés = hibakódot adott vissza</string>
|
||||
<string id="TrailingSlashErr">Az API URL-ben nem lehet perjel a „/”</string>
|
||||
<string id="FetchingMenuConfig">Menükonfiguráció lekérése...</string>
|
||||
<string id="ExitViewTouch">Csúsztassa jobbra a kilépéshez\nKoppintson a Maradáshoz</string>
|
||||
<string id="ExitViewButtons">Nyomja meg a Vissza gombot a kilépéshez\nEnter a Maradáshoz</string>
|
||||
<!-- A beállítások GUI-hoz -->
|
||||
<string id="SettingsApiKey">API kulcs az otthoni asszisztenshez.</string>
|
||||
<string id="SettingsApiKey">API-kulcs a HomeAssistant számára.</string>
|
||||
<string id="SettingsApiKeyPrompt">Hosszú életű hozzáférési token.</string>
|
||||
<string id="SettingsApiUrl">A Home Assistant API URL-je.</string>
|
||||
<string id="SettingsApiUrl">A HomeAssistant API URL-je.</string>
|
||||
<string id="SettingsConfigUrl">URL a menükonfigurációhoz (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Időtúllépés másodpercben. Az eszköz akkumulátorának kímélése érdekében lépjen ki az alkalmazásból ezen inaktivitási időszak után.</string>
|
||||
<string id="SettingsConfirmTimeout">Ezen idő letelte után (másodpercben) a művelet megerősítő párbeszédablakja automatikusan bezárul, és a művelet megszakad. Állítsa 0-ra az időtúllépés letiltásához.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Pada</string>
|
||||
<string id="MenuItemOff">Mati</string>
|
||||
<string id="MenuItemTap">Mengetuk</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL tidak ditemukan. Potensi kesalahan URL Konfigurasi dalam pengaturan.</string>
|
||||
<string id="UnhandledHttpErr">Permintaan HTTP mengembalikan kode kesalahan =</string>
|
||||
<string id="TrailingSlashErr">URL API tidak boleh memiliki garis miring '/'</string>
|
||||
<string id="FetchingMenuConfig">Mengambil Konfigurasi Menu..</string>
|
||||
<string id="ExitViewTouch">Geser ke Kanan untuk Keluar\nKetuk untuk Tetap</string>
|
||||
<string id="ExitViewButtons">Tekan Kembali untuk Keluar\nMasuk untuk Tetap</string>
|
||||
<!-- Untuk pengaturan GUI -->
|
||||
<string id="SettingsApiKey">Kunci API untuk Asisten Rumah.</string>
|
||||
<string id="SettingsApiKey">Kunci API untuk HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Token Akses Berumur Panjang.</string>
|
||||
<string id="SettingsApiUrl">URL untuk API Asisten Rumah.</string>
|
||||
<string id="SettingsApiUrl">URL untuk API HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">URL untuk konfigurasi menu (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Batas waktu dalam hitungan detik. Keluar dari aplikasi setelah periode tidak aktif ini untuk menghemat baterai perangkat.</string>
|
||||
<string id="SettingsConfirmTimeout">Setelah waktu ini (dalam detik), dialog konfirmasi untuk suatu tindakan secara otomatis ditutup dan tindakan tersebut dibatalkan. Setel ke 0 untuk menonaktifkan batas waktu.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">SU</string>
|
||||
<string id="MenuItemOff">Spento</string>
|
||||
<string id="MenuItemTap">Rubinetto</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL non trovato. Potenziale errore dell'URL di configurazione nelle impostazioni.</string>
|
||||
<string id="UnhandledHttpErr">La richiesta HTTP ha restituito il codice di errore =</string>
|
||||
<string id="TrailingSlashErr">L'URL dell'API non deve avere una barra finale "/"</string>
|
||||
<string id="FetchingMenuConfig">Recupero configurazione menu..</string>
|
||||
<string id="ExitViewTouch">Scorri verso destra per uscire\nTocca per restare</string>
|
||||
<string id="ExitViewButtons">Premi Indietro per uscire\nInvio per restare</string>
|
||||
<!-- Per la GUI delle impostazioni -->
|
||||
<string id="SettingsApiKey">Chiave API per Home Assistant.</string>
|
||||
<string id="SettingsApiKey">Chiave API per HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Token di accesso di lunga durata.</string>
|
||||
<string id="SettingsApiUrl">URL per l'API Home Assistant.</string>
|
||||
<string id="SettingsApiUrl">URL per l'API HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">URL per la configurazione del menu (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Timeout in secondi. Uscire dall'applicazione dopo questo periodo di inattività per risparmiare la batteria del dispositivo.</string>
|
||||
<string id="SettingsConfirmTimeout">Trascorso questo tempo (in secondi), una finestra di dialogo di conferma per un'azione viene chiusa automaticamente e l'azione viene annullata. Impostare su 0 per disabilitare il timeout.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">の上</string>
|
||||
<string id="MenuItemOff">オフ</string>
|
||||
<string id="MenuItemTap">タップ</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URLが見つかりません。設定内の構成 URL エラーの可能性があります。</string>
|
||||
<string id="UnhandledHttpErr">HTTP リクエストがエラー コードを返しました =</string>
|
||||
<string id="TrailingSlashErr">API URL の末尾にスラッシュ「/」を含めることはできません</string>
|
||||
<string id="FetchingMenuConfig">メニュー構成を取得しています。</string>
|
||||
<string id="ExitViewTouch">右にスワイプして終了\nタップしてそのまま残ります</string>
|
||||
<string id="ExitViewButtons">終了するには戻るキーを押してください\n続行するには Enter キーを押してください</string>
|
||||
<!-- 設定GUIの場合 -->
|
||||
<string id="SettingsApiKey">ホームアシスタントのAPIキー。</string>
|
||||
<string id="SettingsApiKey">ホームアシスタントの API キー。</string>
|
||||
<string id="SettingsApiKeyPrompt">有効期間の長いアクセス トークン。</string>
|
||||
<string id="SettingsApiUrl">ホーム アシスタント API の URL。</string>
|
||||
<string id="SettingsApiUrl">ホームアシスタント API の URL。</string>
|
||||
<string id="SettingsConfigUrl">メニュー構成の URL (JSON)。</string>
|
||||
<string id="SettingsAppTimeout">秒単位のタイムアウト。デバイスのバッテリーを節約するために、この期間非アクティブになった後はアプリケーションを終了してください。</string>
|
||||
<string id="SettingsConfirmTimeout">この時間 (秒単位) が経過すると、アクションの確認ダイアログが自動的に閉じられ、アクションがキャンセルされます。タイムアウトを無効にするには、0 に設定します。</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">~에</string>
|
||||
<string id="MenuItemOff">끄다</string>
|
||||
<string id="MenuItemTap">수도꼭지</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL을 찾을 수 없습니다. 설정에 잠재적인 구성 URL 오류가 있습니다.</string>
|
||||
<string id="UnhandledHttpErr">HTTP 요청이 오류 코드를 반환했습니다 =</string>
|
||||
<string id="TrailingSlashErr">API URL에는 후행 슬래시 '/'가 없어야 합니다.</string>
|
||||
<string id="FetchingMenuConfig">메뉴 구성을 가져오는 중..</string>
|
||||
<string id="ExitViewTouch">종료하려면 오른쪽으로 스와이프하세요.\n계속하려면 탭하세요.</string>
|
||||
<string id="ExitViewButtons">종료하려면 뒤로 버튼을 누르세요.\n계속하려면 입력하세요.</string>
|
||||
<!-- 설정 GUI의 경우 -->
|
||||
<string id="SettingsApiKey">홈어시스턴트용 API 키.</string>
|
||||
<string id="SettingsApiKey">HomeAssistant용 API 키.</string>
|
||||
<string id="SettingsApiKeyPrompt">장기 액세스 토큰.</string>
|
||||
<string id="SettingsApiUrl">홈어시스턴트 API의 URL입니다.</string>
|
||||
<string id="SettingsApiUrl">HomeAssistant API의 URL입니다.</string>
|
||||
<string id="SettingsConfigUrl">메뉴 구성을 위한 URL(JSON)입니다.</string>
|
||||
<string id="SettingsAppTimeout">시간 초과(초)입니다. 장치 배터리를 절약하려면 이 비활성 기간 후에 애플리케이션을 종료하십시오.</string>
|
||||
<string id="SettingsConfirmTimeout">이 시간(초)이 지나면 작업에 대한 확인 대화 상자가 자동으로 닫히고 작업이 취소됩니다. 시간 초과를 비활성화하려면 0으로 설정합니다.</string>
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Ieslēgts</string>
|
||||
<string id="MenuItemOff">Izslēgts</string>
|
||||
<string id="MenuItemTap">Krāns</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL nav atrasts. Iespējama konfigurācijas URL kļūda iestatījumos.</string>
|
||||
<string id="UnhandledHttpErr">HTTP pieprasījums atgrieza kļūdas kodu =</string>
|
||||
<string id="TrailingSlashErr">API URL beigās nedrīkst būt slīpsvītra “/”</string>
|
||||
<string id="FetchingMenuConfig">Notiek izvēlnes konfigurācijas iegūšana...</string>
|
||||
<string id="ExitViewTouch">Lai izietu, velciet pa labi\nPieskarieties, lai paliktu</string>
|
||||
<string id="ExitViewButtons">Noklikšķiniet uz Atpakaļ, lai izietu.\nIevadiet, lai paliktu</string>
|
||||
<!-- Iestatījumu GUI -->
|
||||
<string id="SettingsApiKey">Mājas palīga API atslēga.</string>
|
||||
<string id="SettingsApiKey">API atslēga Home Assistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Ilgmūžīgs piekļuves marķieris.</string>
|
||||
<string id="SettingsApiUrl">Mājas palīga API URL.</string>
|
||||
<string id="SettingsApiUrl">HomeAssistant API URL.</string>
|
||||
<string id="SettingsConfigUrl">URL izvēlnes konfigurācijai (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Taimauts sekundēs. Pēc šī neaktivitātes perioda izejiet no lietojumprogrammas, lai taupītu ierīces akumulatoru.</string>
|
||||
<string id="SettingsConfirmTimeout">Pēc šī laika (sekundēs) tiek automātiski aizvērts darbības apstiprinājuma dialoglodziņš un darbība tiek atcelta. Iestatiet uz 0, lai atspējotu taimautu.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Įjungta</string>
|
||||
<string id="MenuItemOff">Išjungta</string>
|
||||
<string id="MenuItemTap">Bakstelėkite</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL nerastas. Galima konfigūracijos URL klaida nustatymuose.</string>
|
||||
<string id="UnhandledHttpErr">HTTP užklausa grąžino klaidos kodą =</string>
|
||||
<string id="TrailingSlashErr">API URL pabaigoje negali būti pasvirojo brūkšnio „/“</string>
|
||||
<string id="FetchingMenuConfig">Gaunama meniu konfigūracija...</string>
|
||||
<string id="ExitViewTouch">Norėdami išeiti, braukite į dešinę\nPalieskite, kad pasiliktumėte</string>
|
||||
<string id="ExitViewButtons">Norėdami išeiti, paspauskite „Atgal“.\nĮveskite, kad pasiliktumėte</string>
|
||||
<!-- Dėl nustatymų GUI -->
|
||||
<string id="SettingsApiKey">API raktas, skirtas namų asistentui.</string>
|
||||
<string id="SettingsApiKey">API raktas, skirtas HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Ilgalaikis prieigos raktas.</string>
|
||||
<string id="SettingsApiUrl">„Home Assistant“ API URL.</string>
|
||||
<string id="SettingsApiUrl">„HomeAssistant“ API URL.</string>
|
||||
<string id="SettingsConfigUrl">Meniu konfigūravimo URL (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Skirtasis laikas sekundėmis. Po šio neveiklumo laikotarpio išeikite iš programos, kad taupytumėte įrenginio akumuliatorių.</string>
|
||||
<string id="SettingsConfirmTimeout">Praėjus šiam laikui (sekundėmis), veiksmo patvirtinimo dialogo langas automatiškai uždaromas ir veiksmas atšaukiamas. Nustatykite 0, kad išjungtumėte skirtąjį laiką.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">På</string>
|
||||
<string id="MenuItemOff">Av</string>
|
||||
<string id="MenuItemTap">Trykk på</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">Finner ikke URL. Potensiell konfigurasjons-URL-feil i innstillingene.</string>
|
||||
<string id="UnhandledHttpErr">HTTP-forespørsel returnerte feilkode =</string>
|
||||
<string id="TrailingSlashErr">API URL må ikke ha en etterfølgende skråstrek '/'</string>
|
||||
<string id="FetchingMenuConfig">Henter menykonfigurasjon..</string>
|
||||
<string id="ExitViewTouch">Sveip til høyre for å avslutte\nTrykk for å bli</string>
|
||||
<string id="ExitViewButtons">Trykk Tilbake for å avslutte\nEnter for å bli</string>
|
||||
<!-- For innstillingene GUI -->
|
||||
<string id="SettingsApiKey">API-nøkkel for Home Assistant.</string>
|
||||
<string id="SettingsApiKey">API-nøkkel for HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Langlevd tilgangstoken.</string>
|
||||
<string id="SettingsApiUrl">URL for Home Assistant API.</string>
|
||||
<string id="SettingsApiUrl">URL for HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">URL for menykonfigurasjon (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Tidsavbrudd i sekunder. Avslutt applikasjonen etter denne perioden med inaktivitet for å spare enhetens batteri.</string>
|
||||
<string id="SettingsConfirmTimeout">Etter denne tiden (i sekunder), lukkes en bekreftelsesdialog for en handling automatisk og handlingen avbrytes. Sett til 0 for å deaktivere tidsavbruddet.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">NA</string>
|
||||
<string id="MenuItemOff">Wyłączony</string>
|
||||
<string id="MenuItemTap">Uzyskiwać</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">Nie znaleziono adresu URL. Potencjalny błąd adresu URL konfiguracji w ustawieniach.</string>
|
||||
<string id="UnhandledHttpErr">Żądanie HTTP zwróciło kod błędu =</string>
|
||||
<string id="TrailingSlashErr">Adres URL interfejsu API nie może zawierać końcowego ukośnika „/”</string>
|
||||
<string id="FetchingMenuConfig">Pobieranie konfiguracji menu..</string>
|
||||
<string id="ExitViewTouch">Przesuń w prawo, aby wyjść\nDotknij, aby pozostać</string>
|
||||
<string id="ExitViewButtons">Naciśnij Wstecz, aby wyjść\nEnter, aby pozostać</string>
|
||||
<!-- Dla ustawień GUI -->
|
||||
<string id="SettingsApiKey">Klucz API dla Asystenta Domowego.</string>
|
||||
<string id="SettingsApiKey">Klucz API dla HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Długowieczny token dostępu.</string>
|
||||
<string id="SettingsApiUrl">Adres URL interfejsu API Home Assistant.</string>
|
||||
<string id="SettingsApiUrl">Adres URL interfejsu API HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">Adres URL konfiguracji menu (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Limit czasu w sekundach. Wyjdź z aplikacji po tym okresie bezczynności, aby oszczędzać baterię urządzenia.</string>
|
||||
<string id="SettingsConfirmTimeout">Po tym czasie (w sekundach) okno dialogowe z potwierdzeniem akcji zamyka się automatycznie, a akcja zostaje anulowana. Ustaw na 0, aby wyłączyć limit czasu.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Sobre</string>
|
||||
<string id="MenuItemOff">Desligado</string>
|
||||
<string id="MenuItemTap">Tocar</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL não encontrado. Possível erro de URL de configuração nas configurações.</string>
|
||||
<string id="UnhandledHttpErr">Solicitação HTTP retornou código de erro =</string>
|
||||
<string id="TrailingSlashErr">O URL da API não deve ter uma barra final '/'</string>
|
||||
<string id="FetchingMenuConfig">Buscando configuração do menu..</string>
|
||||
<string id="ExitViewTouch">Deslize para a direita para sair\nToque para permanecer</string>
|
||||
<string id="ExitViewButtons">Volte para sair\nEntre para permanecer</string>
|
||||
<!-- Para a GUI de configurações -->
|
||||
<string id="SettingsApiKey">Chave de API para Home Assistant.</string>
|
||||
<string id="SettingsApiKey">Chave de API para HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Token de acesso de longa duração.</string>
|
||||
<string id="SettingsApiUrl">URL para API do Home Assistant.</string>
|
||||
<string id="SettingsApiUrl">URL para API HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">URL para configuração do menu (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Tempo limite em segundos. Saia do aplicativo após esse período de inatividade para economizar bateria do aparelho.</string>
|
||||
<string id="SettingsConfirmTimeout">Após esse tempo (em segundos), uma caixa de diálogo de confirmação de uma ação é automaticamente fechada e a ação é cancelada. Defina como 0 para desativar o tempo limite.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Pe</string>
|
||||
<string id="MenuItemOff">Oprit</string>
|
||||
<string id="MenuItemTap">Atingeți</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">Adresa URL nu a fost găsită. Potențială eroare URL de configurare în setări.</string>
|
||||
<string id="UnhandledHttpErr">Solicitarea HTTP a returnat codul de eroare =</string>
|
||||
<string id="TrailingSlashErr">Adresa URL API nu trebuie să aibă o bară oblică „/”</string>
|
||||
<string id="FetchingMenuConfig">Se preiau configurarea meniului...</string>
|
||||
<string id="ExitViewTouch">Glisați spre dreapta pentru a ieși\nAtingeți pentru a rămâne</string>
|
||||
<string id="ExitViewButtons">Apăsați Înapoi pentru a ieși\nIntră pentru a rămâne</string>
|
||||
<!-- Pentru GUI de setări -->
|
||||
<string id="SettingsApiKey">Cheie API pentru Home Assistant.</string>
|
||||
<string id="SettingsApiKey">Cheie API pentru HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Token de acces cu viață lungă.</string>
|
||||
<string id="SettingsApiUrl">Adresa URL pentru Home Assistant API.</string>
|
||||
<string id="SettingsApiUrl">Adresa URL pentru API-ul HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">URL pentru configurarea meniului (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Timeout în secunde. Ieșiți din aplicație după această perioadă de inactivitate pentru a economisi bateria dispozitivului.</string>
|
||||
<string id="SettingsConfirmTimeout">După acest timp (în secunde), un dialog de confirmare pentru o acțiune este închis automat și acțiunea este anulată. Setați la 0 pentru a dezactiva timeout-ul.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Zapnuté</string>
|
||||
<string id="MenuItemOff">Vypnuté</string>
|
||||
<string id="MenuItemTap">Klepnite</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">Adresa URL sa nenašla. Potenciálna chyba konfiguračnej adresy URL v nastaveniach.</string>
|
||||
<string id="UnhandledHttpErr">Požiadavka HTTP vrátila kód chyby =</string>
|
||||
<string id="TrailingSlashErr">Adresa URL rozhrania API nesmie obsahovať koncovú lomku „/“</string>
|
||||
<string id="FetchingMenuConfig">Načítava sa konfigurácia ponuky...</string>
|
||||
<string id="ExitViewTouch">Ukončite prejdením prstom doprava\nKlepnutím zostanete</string>
|
||||
<string id="ExitViewButtons">Stlačte Späť na ukončenie\nVstúpte a zostaňte</string>
|
||||
<!-- Pre nastavenia GUI -->
|
||||
<string id="SettingsApiKey">API kľúč pre domáceho asistenta.</string>
|
||||
<string id="SettingsApiKey">Kľúč API pre HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Prístupový token s dlhou životnosťou.</string>
|
||||
<string id="SettingsApiUrl">Adresa URL rozhrania Home Assistant API.</string>
|
||||
<string id="SettingsApiUrl">URL pre HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">Webová adresa pre konfiguráciu ponuky (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Časový limit v sekundách. Po tejto dobe nečinnosti ukončite aplikáciu, aby ste šetrili batériu zariadenia.</string>
|
||||
<string id="SettingsConfirmTimeout">Po tomto čase (v sekundách) sa dialógové okno s potvrdením akcie automaticky zatvorí a akcia sa zruší. Ak chcete časový limit deaktivovať, nastavte na 0.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Vklopljeno</string>
|
||||
<string id="MenuItemOff">Izključeno</string>
|
||||
<string id="MenuItemTap">Tapnite</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL-ja ni bilo mogoče najti. Morebitna napaka URL-ja konfiguracije v nastavitvah.</string>
|
||||
<string id="UnhandledHttpErr">Zahteva HTTP je vrnila kodo napake =</string>
|
||||
<string id="TrailingSlashErr">URL API-ja ne sme imeti končne poševnice '/'</string>
|
||||
<string id="FetchingMenuConfig">Pridobivanje konfiguracije menija..</string>
|
||||
<string id="ExitViewTouch">Povlecite v desno za izhod\nDotaknite se, da ostanete</string>
|
||||
<string id="ExitViewButtons">Pritisnite Nazaj za izhod\nVstopite, da ostanete</string>
|
||||
<!-- Za nastavitve GUI -->
|
||||
<string id="SettingsApiKey">API ključ za domačega pomočnika.</string>
|
||||
<string id="SettingsApiKey">API ključ za HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Dolgoživ dostopni žeton.</string>
|
||||
<string id="SettingsApiUrl">URL za API za domačega pomočnika.</string>
|
||||
<string id="SettingsApiUrl">URL za HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">URL za konfiguracijo menija (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Časovna omejitev v sekundah. Po tem obdobju nedejavnosti zaprite aplikacijo, da prihranite baterijo naprave.</string>
|
||||
<string id="SettingsConfirmTimeout">Po tem času (v sekundah) se potrditveno pogovorno okno za dejanje samodejno zapre in dejanje je preklicano. Nastavite na 0, da onemogočite časovno omejitev.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">En</string>
|
||||
<string id="MenuItemOff">Apagado</string>
|
||||
<string id="MenuItemTap">Grifo</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL no encontrada. Posible error de URL de configuración en la configuración.</string>
|
||||
<string id="UnhandledHttpErr">La solicitud HTTP devolvió el código de error =</string>
|
||||
<string id="TrailingSlashErr">La URL de API no debe tener una barra diagonal '/'</string>
|
||||
<string id="FetchingMenuConfig">Obteniendo configuración del menú..</string>
|
||||
<string id="ExitViewTouch">Desliza hacia la derecha para salir\nToca para permanecer</string>
|
||||
<string id="ExitViewButtons">Presione Atrás para salir\nEntrar para permanecer</string>
|
||||
<!-- Para la configuración GUI -->
|
||||
<string id="SettingsApiKey">Clave API para Home Assistant.</string>
|
||||
<string id="SettingsApiKey">Clave API para HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Token de acceso de larga duración.</string>
|
||||
<string id="SettingsApiUrl">URL para la API de Home Assistant.</string>
|
||||
<string id="SettingsApiUrl">URL para la API de HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">URL para configuración del menú (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Tiempo de espera en segundos. Salga de la aplicación después de este período de inactividad para ahorrar batería del dispositivo.</string>
|
||||
<string id="SettingsConfirmTimeout">Después de este tiempo (en segundos), se cierra automáticamente un cuadro de diálogo de confirmación de una acción y se cancela la acción. Establezca en 0 para desactivar el tiempo de espera.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">På</string>
|
||||
<string id="MenuItemOff">Av</string>
|
||||
<string id="MenuItemTap">Knacka</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">Webbadressen hittades inte. Potentiellt konfigurations-URL-fel i inställningarna.</string>
|
||||
<string id="UnhandledHttpErr">HTTP-begäran returnerade felkod =</string>
|
||||
<string id="TrailingSlashErr">API-URL får inte ha ett snedstreck '/'</string>
|
||||
<string id="FetchingMenuConfig">Hämtar menykonfiguration..</string>
|
||||
<string id="ExitViewTouch">Svep åt höger för att avsluta\nKnacka för att stanna</string>
|
||||
<string id="ExitViewButtons">Tryck på Tillbaka för att avsluta\nEnter för att stanna</string>
|
||||
<!-- För inställningar GUI -->
|
||||
<string id="SettingsApiKey">API-nyckel för Home Assistant.</string>
|
||||
<string id="SettingsApiKey">API-nyckel för HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Långlivad åtkomsttoken.</string>
|
||||
<string id="SettingsApiUrl">URL för Home Assistant API.</string>
|
||||
<string id="SettingsApiUrl">URL för HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">URL för menykonfiguration (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Timeout på sekunder. Avsluta programmet efter denna period av inaktivitet för att spara enhetens batteri.</string>
|
||||
<string id="SettingsConfirmTimeout">Efter denna tid (i sekunder) stängs en bekräftelsedialog för en åtgärd automatiskt och åtgärden avbryts. Ställ in på 0 för att inaktivera timeout.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">บน</string>
|
||||
<string id="MenuItemOff">ปิด</string>
|
||||
<string id="MenuItemTap">แตะ</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">ไม่พบ URL ข้อผิดพลาด URL การกำหนดค่าที่อาจเกิดขึ้นในการตั้งค่า</string>
|
||||
<string id="UnhandledHttpErr">คำขอ HTTP ส่งคืนรหัสข้อผิดพลาด =</string>
|
||||
<string id="TrailingSlashErr">URL ของ API ต้องไม่มีเครื่องหมายทับต่อท้าย '/'</string>
|
||||
<string id="FetchingMenuConfig">กำลังดึงข้อมูลการกำหนดค่าเมนู..</string>
|
||||
<string id="ExitViewTouch">ปัดไปทางขวาเพื่อออก\nแตะเพื่ออยู่ต่อ</string>
|
||||
<string id="ExitViewButtons">กดกลับเพื่อออก\nเข้าไปเพื่ออยู่ต่อ</string>
|
||||
<!-- สำหรับการตั้งค่า GUI -->
|
||||
<string id="SettingsApiKey">รหัส API สำหรับผู้ช่วยที่บ้าน</string>
|
||||
<string id="SettingsApiKey">คีย์ API สำหรับ HomeAssistant</string>
|
||||
<string id="SettingsApiKeyPrompt">โทเค็นการเข้าถึงที่มีอายุการใช้งานยาวนาน</string>
|
||||
<string id="SettingsApiUrl">URL สำหรับ Home Assistant API</string>
|
||||
<string id="SettingsApiUrl">URL สำหรับ HomeAssistant API</string>
|
||||
<string id="SettingsConfigUrl">URL สำหรับการกำหนดค่าเมนู (JSON)</string>
|
||||
<string id="SettingsAppTimeout">หมดเวลาเป็นวินาที ออกจากแอปพลิเคชันหลังจากไม่มีการใช้งานเป็นระยะเวลาหนึ่งเพื่อประหยัดแบตเตอรี่ของอุปกรณ์</string>
|
||||
<string id="SettingsConfirmTimeout">หลังจากเวลานี้ (เป็นวินาที) กล่องโต้ตอบการยืนยันสำหรับการดำเนินการจะปิดโดยอัตโนมัติและการดำเนินการจะถูกยกเลิก ตั้งค่าเป็น 0 เพื่อปิดใช้งานการหมดเวลา</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Açık</string>
|
||||
<string id="MenuItemOff">Kapalı</string>
|
||||
<string id="MenuItemTap">Musluk</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL bulunamadı. Ayarlarda Olası Yapılandırma URL'si hatası.</string>
|
||||
<string id="UnhandledHttpErr">HTTP isteği hata kodunu döndürdü =</string>
|
||||
<string id="TrailingSlashErr">API URL'sinin sonunda eğik çizgi '/' olmamalıdır</string>
|
||||
<string id="FetchingMenuConfig">Menü Yapılandırması alınıyor..</string>
|
||||
<string id="ExitViewTouch">Çıkmak için Sağa Kaydırın\nKalmak için Dokunun</string>
|
||||
<string id="ExitViewButtons">Çıkış için Geri tuşuna basın\nKalmak için Enter'a basın</string>
|
||||
<!-- Ayarlar GUI'si için -->
|
||||
<string id="SettingsApiKey">Ev Asistanı için API Anahtarı.</string>
|
||||
<string id="SettingsApiKey">HomeAssistant için API Anahtarı.</string>
|
||||
<string id="SettingsApiKeyPrompt">Uzun Ömürlü Erişim Jetonu.</string>
|
||||
<string id="SettingsApiUrl">Ev Asistanı API'sinin URL'si.</string>
|
||||
<string id="SettingsApiUrl">HomeAssistant API'sinin URL'si.</string>
|
||||
<string id="SettingsConfigUrl">Menü yapılandırmasının URL'si (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Saniye cinsinden zaman aşımı. Cihazın pilinden tasarruf etmek için bu süre boyunca işlem yapılmadığında uygulamadan çıkın.</string>
|
||||
<string id="SettingsConfirmTimeout">Bu sürenin sonunda (saniye olarak), bir eyleme ilişkin onay iletişim kutusu otomatik olarak kapatılır ve eylem iptal edilir. Zaman aşımını devre dışı bırakmak için 0'a ayarlayın.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">Увімкнено</string>
|
||||
<string id="MenuItemOff">Вимкнено</string>
|
||||
<string id="MenuItemTap">Торкніться</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL не знайдено. Потенційна помилка URL-адреси конфігурації в налаштуваннях.</string>
|
||||
<string id="UnhandledHttpErr">Запит HTTP повернув код помилки =</string>
|
||||
<string id="TrailingSlashErr">URL-адреса API не повинна містити косу риску '/'</string>
|
||||
<string id="FetchingMenuConfig">Отримання конфігурації меню..</string>
|
||||
<string id="ExitViewTouch">Проведіть праворуч, щоб вийти\nТоркніться, щоб залишитися</string>
|
||||
<string id="ExitViewButtons">Натисніть «Назад», щоб вийти\nВведіть, щоб залишитися</string>
|
||||
<!-- Для налаштування GUI -->
|
||||
<string id="SettingsApiKey">Ключ API для домашнього помічника.</string>
|
||||
<string id="SettingsApiKey">Ключ API для HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Довговічний маркер доступу.</string>
|
||||
<string id="SettingsApiUrl">URL для Home Assistant API.</string>
|
||||
<string id="SettingsApiUrl">URL для HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">URL-адреса для налаштування меню (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Час очікування в секундах. Вийдіть із програми після цього періоду бездіяльності, щоб заощадити батарею пристрою.</string>
|
||||
<string id="SettingsConfirmTimeout">Після закінчення цього часу (у секундах) діалогове вікно підтвердження дії автоматично закривається, а дія скасовується. Встановіть 0, щоб вимкнути тайм-аут.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">TRÊN</string>
|
||||
<string id="MenuItemOff">Tắt</string>
|
||||
<string id="MenuItemTap">Vỗ nhẹ</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">Không tìm thấy URL. Lỗi URL cấu hình tiềm ẩn trong cài đặt.</string>
|
||||
<string id="UnhandledHttpErr">Yêu cầu HTTP trả về mã lỗi =</string>
|
||||
<string id="TrailingSlashErr">URL API không được có dấu gạch chéo ở cuối '/'</string>
|
||||
<string id="FetchingMenuConfig">Đang tìm nạp cấu hình menu..</string>
|
||||
<string id="ExitViewTouch">Vuốt sang phải để thoát\nNhấn để ở lại</string>
|
||||
<string id="ExitViewButtons">Nhấn Quay lại để thoát\nNhập để ở lại</string>
|
||||
<!-- Đối với GUI cài đặt -->
|
||||
<string id="SettingsApiKey">Khóa API cho Trợ lý tại nhà.</string>
|
||||
<string id="SettingsApiKey">Khóa API cho HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Mã thông báo truy cập tồn tại lâu dài.</string>
|
||||
<string id="SettingsApiUrl">URL cho API Trợ lý gia đình.</string>
|
||||
<string id="SettingsApiUrl">URL cho API HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">URL cho cấu hình menu (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Thời gian chờ tính bằng giây. Thoát khỏi ứng dụng sau khoảng thời gian không hoạt động này để tiết kiệm pin cho thiết bị.</string>
|
||||
<string id="SettingsConfirmTimeout">Sau thời gian này (tính bằng giây), hộp thoại xác nhận cho một hành động sẽ tự động đóng và hành động đó sẽ bị hủy. Đặt thành 0 để tắt thời gian chờ.</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">在</string>
|
||||
<string id="MenuItemOff">离开</string>
|
||||
<string id="MenuItemTap">轻敲</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">找不到网址。设置中可能存在配置 URL 错误。</string>
|
||||
<string id="UnhandledHttpErr">HTTP请求返回错误码=</string>
|
||||
<string id="TrailingSlashErr">API URL 不得有尾部斜杠“/”</string>
|
||||
<string id="FetchingMenuConfig">正在获取菜单配置..</string>
|
||||
<string id="ExitViewTouch">向右滑动即可退出\n点击即可停留</string>
|
||||
<string id="ExitViewButtons">按回车键退出\n按回车键继续</string>
|
||||
<!-- 对于设置 GUI -->
|
||||
<string id="SettingsApiKey">家庭助理的 API 密钥。</string>
|
||||
<string id="SettingsApiKey">HomeAssistant 的 API 密钥。</string>
|
||||
<string id="SettingsApiKeyPrompt">长期访问令牌。</string>
|
||||
<string id="SettingsApiUrl">Home Assistant API 的 URL。</string>
|
||||
<string id="SettingsApiUrl">HomeAssistant API 的 URL。</string>
|
||||
<string id="SettingsConfigUrl">菜单配置的 URL (JSON)。</string>
|
||||
<string id="SettingsAppTimeout">超时(以秒为单位)。闲置一段时间后退出应用程序以节省设备电池。</string>
|
||||
<string id="SettingsConfirmTimeout">在此时间(以秒为单位)之后,操作的确认对话框将自动关闭并取消该操作。设置为 0 以禁用超时。</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">在</string>
|
||||
<string id="MenuItemOff">離開</string>
|
||||
<string id="MenuItemTap">輕敲</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">找不到網址。設定中可能存在配置 URL 錯誤。</string>
|
||||
<string id="UnhandledHttpErr">HTTP請求回傳錯誤碼=</string>
|
||||
<string id="TrailingSlashErr">API URL 不得有尾部斜線“/”</string>
|
||||
<string id="FetchingMenuConfig">正在取得選單配置..</string>
|
||||
<string id="ExitViewTouch">向右滑動即可退出\n點選即可停留</string>
|
||||
<string id="ExitViewButtons">按回車鍵退出\n按回車鍵繼續</string>
|
||||
<!-- 對於設定 GUI -->
|
||||
<string id="SettingsApiKey">家庭助理的 API 金鑰。</string>
|
||||
<string id="SettingsApiKey">HomeAssistant 的 API 金鑰。</string>
|
||||
<string id="SettingsApiKeyPrompt">長期訪問令牌。</string>
|
||||
<string id="SettingsApiUrl">Home Assistant API 的 URL。</string>
|
||||
<string id="SettingsApiUrl">HomeAssistant API 的 URL。</string>
|
||||
<string id="SettingsConfigUrl">選單配置的 URL (JSON)。</string>
|
||||
<string id="SettingsAppTimeout">超時(以秒為單位)。閒置一段時間後退出應用程式以節省設備電池。</string>
|
||||
<string id="SettingsConfirmTimeout">在此時間(以秒為單位)之後,操作的確認對話方塊將自動關閉並取消該操作。設定為 0 以停用逾時。</string>
|
||||
|
@ -9,7 +9,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">hidup</string>
|
||||
<string id="MenuItemOff">Mati</string>
|
||||
<string id="MenuItemTap">Ketik</string>
|
||||
@ -37,10 +37,13 @@
|
||||
<string id="ConfigUrlNotFound">URL tidak ditemui. Ralat URL Konfigurasi Potensi dalam tetapan.</string>
|
||||
<string id="UnhandledHttpErr">Permintaan HTTP mengembalikan kod ralat =</string>
|
||||
<string id="TrailingSlashErr">URL API tidak boleh mempunyai garis miring '/'</string>
|
||||
<string id="FetchingMenuConfig">Mengambil Konfigurasi Menu..</string>
|
||||
<string id="ExitViewTouch">Leret ke Kanan untuk Keluar\nKetik untuk Kekal</string>
|
||||
<string id="ExitViewButtons">Tekan Kembali untuk Keluar\nMasuk untuk Kekal</string>
|
||||
<!-- Untuk GUI tetapan -->
|
||||
<string id="SettingsApiKey">Kunci API untuk Pembantu Rumah.</string>
|
||||
<string id="SettingsApiKey">Kunci API untuk HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Token Akses Berumur Panjang.</string>
|
||||
<string id="SettingsApiUrl">URL untuk API Pembantu Rumah.</string>
|
||||
<string id="SettingsApiUrl">URL untuk API HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">URL untuk konfigurasi menu (JSON).</string>
|
||||
<string id="SettingsAppTimeout">Tamat masa dalam beberapa saat. Keluar dari aplikasi selepas tempoh tidak aktif ini untuk menjimatkan bateri peranti.</string>
|
||||
<string id="SettingsConfirmTimeout">Selepas masa ini (dalam beberapa saat), dialog pengesahan untuk tindakan ditutup secara automatik dan tindakan itu dibatalkan. Tetapkan kepada 0 untuk melumpuhkan tamat masa.</string>
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
|
@ -8,12 +8,12 @@
|
||||
tested on a Venu 2 device. The source code is provided at:
|
||||
https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
|
||||
P A Abbey & J D Abbey, 31 October 2023
|
||||
P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
<strings>
|
||||
<string id="AppName">HomeAssistant</string>
|
||||
<string id="AppName" scope="glance">HomeAssistant</string>
|
||||
<string id="MenuItemOn">On</string>
|
||||
<string id="MenuItemOff">Off</string>
|
||||
<string id="MenuItemTap">Tap</string>
|
||||
@ -31,6 +31,9 @@
|
||||
<string id="ConfigUrlNotFound">URL not found. Potential Configuration URL error in settings.</string>
|
||||
<string id="UnhandledHttpErr">HTTP request returned error code = </string>
|
||||
<string id="TrailingSlashErr">API URL must not have a trailing slash '/'</string>
|
||||
<string id="FetchingMenuConfig">Fetching Menu Config..</string>
|
||||
<string id="ExitViewTouch">Swipe to Right to Exit\nTap to Stay</string>
|
||||
<string id="ExitViewButtons">Hit Back to Exit\nEnter to Stay</string>
|
||||
|
||||
<!-- For the settings GUI -->
|
||||
<string id="SettingsApiKey">API Key for HomeAssistant.</string>
|
||||
@ -41,5 +44,4 @@
|
||||
<string id="SettingsConfirmTimeout">After this time (in seconds), a confirmation dialog for an action is automatically closed and the action is cancelled. Set to 0 to disable the timeout.</string>
|
||||
<string id="SettingsUi">Representing types with icons (off) or with labels (on).</string>
|
||||
<string id="SettingsTextAlign">Left (off) or Right (on) Menu Alignment.</string>
|
||||
|
||||
</strings>
|
||||
|
@ -18,6 +18,15 @@
|
||||
// should not happen of course... but they do, so best make sure errors can be
|
||||
// reported.
|
||||
//
|
||||
// Designed so that a single ErrorView is used for all errors and hence can ensure
|
||||
// that only the first call to display is honoured until the view is dismissed.
|
||||
// This compensates for older devices not being able to call WatchUi.getCurrentView()
|
||||
// due to not supporting API level 3.4.0.
|
||||
//
|
||||
// Usage:
|
||||
// 1) ErrorView.show("Error message");
|
||||
// 2) return ErrorView.create("Error message"); // as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>
|
||||
//
|
||||
//-----------------------------------------------------------------------------------
|
||||
|
||||
using Toybox.Graphics;
|
||||
@ -26,18 +35,22 @@ using Toybox.WatchUi;
|
||||
using Toybox.Communications;
|
||||
|
||||
class ErrorView extends ScalableView {
|
||||
private const cSettings as Lang.Dictionary = {
|
||||
private var mText as Lang.String = "";
|
||||
private var mDelegate as ErrorDelegate;
|
||||
private const cSettings as Lang.Dictionary = {
|
||||
:errorIconMargin => 7f
|
||||
};
|
||||
// Vertical spacing between the top of the face and the error icon
|
||||
private var mErrorIconMargin;
|
||||
private var mText as Lang.String;
|
||||
private var mErrorIconMargin as Lang.Number;
|
||||
private var mErrorIcon;
|
||||
private var mTextArea;
|
||||
|
||||
function initialize(text as Lang.String) {
|
||||
private static var instance;
|
||||
private static var mShown as Lang.Boolean = false;
|
||||
|
||||
function initialize() {
|
||||
ScalableView.initialize();
|
||||
mText = text;
|
||||
mDelegate = new ErrorDelegate(self);
|
||||
// Convert the settings from % of screen size to pixels
|
||||
mErrorIconMargin = pixelsForScreen(cSettings.get(:errorIconMargin) as Lang.Float);
|
||||
}
|
||||
@ -65,25 +78,66 @@ class ErrorView extends ScalableView {
|
||||
function onUpdate(dc as Graphics.Dc) as Void {
|
||||
var w = dc.getWidth();
|
||||
var hw = w/2;
|
||||
var bg = 0x3B444C;
|
||||
if(dc has :setAntiAlias) {
|
||||
dc.setAntiAlias(true);
|
||||
}
|
||||
dc.setColor(Graphics.COLOR_WHITE, bg);
|
||||
dc.setColor(Graphics.COLOR_WHITE, Graphics.COLOR_BLUE);
|
||||
dc.clear();
|
||||
dc.drawBitmap(hw - mErrorIcon.getWidth()/2, mErrorIconMargin, mErrorIcon);
|
||||
mTextArea.draw(dc);
|
||||
}
|
||||
|
||||
function getDelegate() as ErrorDelegate {
|
||||
return mDelegate;
|
||||
}
|
||||
|
||||
static function create(text as Lang.String) as Lang.Array<ErrorView or ErrorDelegate> {
|
||||
if (instance == null) {
|
||||
instance = new ErrorView();
|
||||
}
|
||||
if (!mShown) {
|
||||
instance.setText(text);
|
||||
}
|
||||
return [instance, instance.getDelegate()];
|
||||
}
|
||||
|
||||
// Create or reuse an existing ErrorView, and pass on the text.
|
||||
static function show(text as Lang.String) as Void {
|
||||
create(text); // Ignore returned values
|
||||
if (!mShown) {
|
||||
WatchUi.pushView(instance, instance.getDelegate(), WatchUi.SLIDE_UP);
|
||||
mShown = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Internal show now we're not a static method like 'show()'.
|
||||
function setText(text as Lang.String) as Void {
|
||||
mText = text;
|
||||
if (mTextArea != null) {
|
||||
mTextArea.setText(text);
|
||||
requestUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
static function unShow() as Void {
|
||||
if (mShown) {
|
||||
mShown = false;
|
||||
WatchUi.popView(WatchUi.SLIDE_DOWN);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class ErrorDelegate extends WatchUi.BehaviorDelegate {
|
||||
function initialize() {
|
||||
|
||||
function initialize(view as ErrorView) {
|
||||
WatchUi.BehaviorDelegate.initialize();
|
||||
}
|
||||
|
||||
function onBack() {
|
||||
getApp().getQuitTimer().reset();
|
||||
WatchUi.popView(WatchUi.SLIDE_DOWN);
|
||||
ErrorView.unShow();
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -9,7 +9,7 @@
|
||||
// tested on a Venu 2 device. The source code is provided at:
|
||||
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
//
|
||||
// P A Abbey & J D Abbey, 31 October 2023
|
||||
// P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
//
|
||||
//
|
||||
// Description:
|
||||
|
@ -9,7 +9,7 @@
|
||||
// tested on a Venu 2 device. The source code is provided at:
|
||||
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
//
|
||||
// P A Abbey & J D Abbey, 31 October 2023
|
||||
// P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
//
|
||||
//
|
||||
// Description:
|
||||
@ -24,24 +24,71 @@ using Toybox.WatchUi;
|
||||
using Toybox.Application.Properties;
|
||||
|
||||
class HomeAssistantApp extends Application.AppBase {
|
||||
private var mHaMenu;
|
||||
private var quitTimer as QuitTimer;
|
||||
private var strNoApiKey as Lang.String;
|
||||
private var strNoApiUrl as Lang.String;
|
||||
private var strNoConfigUrl as Lang.String;
|
||||
private var strNoPhone as Lang.String;
|
||||
private var strNoInternet as Lang.String;
|
||||
private var strNoResponse as Lang.String;
|
||||
private var strNoMenu as Lang.String;
|
||||
private var strApiFlood as Lang.String;
|
||||
private var strConfigUrlNotFound as Lang.String;
|
||||
private var strUnhandledHttpErr as Lang.String;
|
||||
private var strTrailingSlashErr as Lang.String;
|
||||
private var mHaMenu as HomeAssistantView or Null;
|
||||
private var mQuitTimer as QuitTimer or Null;
|
||||
private var strNoApiKey as Lang.String or Null;
|
||||
private var strNoApiUrl as Lang.String or Null;
|
||||
private var strNoConfigUrl as Lang.String or Null;
|
||||
private var strNoPhone as Lang.String or Null;
|
||||
private var strNoInternet as Lang.String or Null;
|
||||
private var strNoResponse as Lang.String or Null;
|
||||
private var strNoMenu as Lang.String or Null;
|
||||
private var strApiFlood as Lang.String or Null;
|
||||
private var strConfigUrlNotFound as Lang.String or Null;
|
||||
private var strUnhandledHttpErr as Lang.String or Null;
|
||||
private var strTrailingSlashErr as Lang.String or Null;
|
||||
private var mItemsToUpdate; // Array initialised by onReturnFetchMenuConfig()
|
||||
private var mNextItemToUpdate = 0; // Index into the above array
|
||||
|
||||
function initialize() {
|
||||
AppBase.initialize();
|
||||
|
||||
// ATTENTION when adding stuff into this block:
|
||||
// Because of the >>GlanceView<<, it should contain only
|
||||
// code, which is used as well for the glance:
|
||||
// - https://developer.garmin.com/connect-iq/core-topics/glances/
|
||||
//
|
||||
// Also dealing with resources "Rez" needs attention, too. See
|
||||
// "Resource Scopes":
|
||||
// - https://developer.garmin.com/connect-iq/core-topics/resources/
|
||||
//
|
||||
// Classes which are used for the glance view, needed to be tagged
|
||||
// with "(:glance)".
|
||||
}
|
||||
|
||||
// onStart() is called on application start up
|
||||
function onStart(state as Lang.Dictionary?) as Void {
|
||||
// ATTENTION when adding stuff into this block:
|
||||
// Because of the >>GlanceView<<, it should contain only
|
||||
// code, which is used as well for the glance:
|
||||
// - https://developer.garmin.com/connect-iq/core-topics/glances/
|
||||
//
|
||||
// Also dealing with resources "Rez" needs attention, too. See
|
||||
// "Resource Scopes":
|
||||
// - https://developer.garmin.com/connect-iq/core-topics/resources/
|
||||
//
|
||||
// Classes which are used for the glance view, needed to be tagged
|
||||
// with "(:glance)".
|
||||
}
|
||||
|
||||
// onStop() is called when your application is exiting
|
||||
function onStop(state as Lang.Dictionary?) as Void {
|
||||
// ATTENTION when adding stuff into this block:
|
||||
// Because of the >>GlanceView<<, it should contain only
|
||||
// code, which is used as well for the glance:
|
||||
// - https://developer.garmin.com/connect-iq/core-topics/glances/
|
||||
//
|
||||
// Also dealing with resources "Rez" needs attention, too. See
|
||||
// "Resource Scopes":
|
||||
// - https://developer.garmin.com/connect-iq/core-topics/resources/
|
||||
//
|
||||
// Classes which are used for the glance view, needed to be tagged
|
||||
// with "(:glance)".
|
||||
}
|
||||
|
||||
// Return the initial view of your application here
|
||||
function getInitialView() as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>? {
|
||||
|
||||
strNoApiKey = WatchUi.loadResource($.Rez.Strings.NoAPIKey);
|
||||
strNoApiUrl = WatchUi.loadResource($.Rez.Strings.NoApiUrl);
|
||||
strNoConfigUrl = WatchUi.loadResource($.Rez.Strings.NoConfigUrl);
|
||||
@ -53,56 +100,43 @@ class HomeAssistantApp extends Application.AppBase {
|
||||
strConfigUrlNotFound = WatchUi.loadResource($.Rez.Strings.ConfigUrlNotFound);
|
||||
strUnhandledHttpErr = WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr);
|
||||
strTrailingSlashErr = WatchUi.loadResource($.Rez.Strings.TrailingSlashErr);
|
||||
quitTimer = new QuitTimer();
|
||||
}
|
||||
mQuitTimer = new QuitTimer();
|
||||
|
||||
// onStart() is called on application start up
|
||||
function onStart(state as Lang.Dictionary?) as Void {
|
||||
quitTimer.begin();
|
||||
}
|
||||
|
||||
// onStop() is called when your application is exiting
|
||||
function onStop(state as Lang.Dictionary?) as Void {
|
||||
quitTimer.stop();
|
||||
}
|
||||
|
||||
// Return the initial view of your application here
|
||||
function getInitialView() as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>? {
|
||||
var api_url = Properties.getValue("api_url") as Lang.String;
|
||||
|
||||
if ((Properties.getValue("api_key") as Lang.String).length() == 0) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp getInitialView(): No API key in the application settings.");
|
||||
}
|
||||
return [new ErrorView(strNoApiKey + "."), new ErrorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
return ErrorView.create(strNoApiKey + ".");
|
||||
} else if (api_url.length() == 0) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp getInitialView(): No API URL in the application settings.");
|
||||
}
|
||||
return [new ErrorView(strNoApiUrl + "."), new ErrorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
return ErrorView.create(strNoApiUrl + ".");
|
||||
} else if (api_url.substring(-1, api_url.length()).equals("/")) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp getInitialView(): API URL must not have a trailing slash '/'.");
|
||||
}
|
||||
return [new ErrorView(strTrailingSlashErr + "."), new ErrorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
return ErrorView.create(strTrailingSlashErr + ".");
|
||||
} else if ((Properties.getValue("config_url") as Lang.String).length() == 0) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp getInitialView(): No configuration URL in the application settings.");
|
||||
}
|
||||
return [new ErrorView(strNoConfigUrl + "."), new ErrorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
return ErrorView.create(strNoConfigUrl + ".");
|
||||
} else if (! System.getDeviceSettings().phoneConnected) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp fetchMenuConfig(): No Phone connection, skipping API call.");
|
||||
}
|
||||
return [new ErrorView(strNoPhone + "."), new ErrorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
return ErrorView.create(strNoPhone + ".");
|
||||
} else if (! System.getDeviceSettings().connectionAvailable) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp fetchMenuConfig(): No Internet connection, skipping API call.");
|
||||
}
|
||||
return [new ErrorView(strNoInternet + "."), new ErrorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
return ErrorView.create(strNoInternet + ".");
|
||||
} else {
|
||||
fetchMenuConfig();
|
||||
return [new WatchUi.View(), new WatchUi.BehaviorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
return [new RootView(self), new RootViewDelegate(self)] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
}
|
||||
}
|
||||
|
||||
@ -117,28 +151,27 @@ class HomeAssistantApp extends Application.AppBase {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoPhone + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strNoPhone + ".");
|
||||
} else if (responseCode == Communications.BLE_QUEUE_FULL) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||
}
|
||||
if (!(WatchUi.getCurrentView()[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strApiFlood), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
// Don't need to worry about multiple ErrorViews here as the fetch does not happen a second time.
|
||||
ErrorView.show(strApiFlood);
|
||||
} else if (responseCode == Communications.NETWORK_REQUEST_TIMED_OUT) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoResponse), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strNoResponse);
|
||||
} else if (responseCode == 404) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: 404, page not found. Check Configuration URL setting.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strConfigUrlNotFound), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strConfigUrlNotFound);
|
||||
} else if (responseCode == 200) {
|
||||
mHaMenu = new HomeAssistantView(data, null);
|
||||
WatchUi.switchToView(mHaMenu, new HomeAssistantViewDelegate(), WatchUi.SLIDE_IMMEDIATE);
|
||||
mQuitTimer.begin();
|
||||
pushHomeAssistantMenuView();
|
||||
mItemsToUpdate = mHaMenu.getItemsToUpdate();
|
||||
// Start the continuous update process that continues for as long as the application is running.
|
||||
// The chain of functions from 'updateNextMenuItem()' calls 'updateNextMenuItem()' on completion.
|
||||
@ -149,12 +182,12 @@ class HomeAssistantApp extends Application.AppBase {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp onReturnFetchMenuConfig(): Network request timeout.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoMenu + ". " + strNoInternet + "?"), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strNoMenu + ". " + strNoInternet + "?");
|
||||
} else {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp onReturnFetchMenuConfig(): Unhandled HTTP response code = " + responseCode);
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strUnhandledHttpErr + responseCode ), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strUnhandledHttpErr + responseCode );
|
||||
}
|
||||
}
|
||||
|
||||
@ -171,6 +204,14 @@ class HomeAssistantApp extends Application.AppBase {
|
||||
);
|
||||
}
|
||||
|
||||
function homeAssistantMenuIsLoaded() as Lang.Boolean{
|
||||
return mHaMenu!=null;
|
||||
}
|
||||
|
||||
function pushHomeAssistantMenuView() as Void{
|
||||
WatchUi.pushView(mHaMenu, new HomeAssistantViewDelegate(true), WatchUi.SLIDE_IMMEDIATE);
|
||||
}
|
||||
|
||||
// We need to spread out the API calls so as not to overload the results queue and cause Communications.BLE_QUEUE_FULL (-101) error.
|
||||
// This function is called by a timer every Globals.menuItemUpdateInterval ms.
|
||||
function updateNextMenuItem() as Void {
|
||||
@ -180,9 +221,13 @@ class HomeAssistantApp extends Application.AppBase {
|
||||
}
|
||||
|
||||
function getQuitTimer() as QuitTimer{
|
||||
return quitTimer;
|
||||
return mQuitTimer;
|
||||
}
|
||||
|
||||
(:glance)
|
||||
function getGlanceView() {
|
||||
return [new HomeAssistantGlanceView()];
|
||||
}
|
||||
}
|
||||
|
||||
function getApp() as HomeAssistantApp {
|
||||
|
@ -26,6 +26,7 @@ using Toybox.Timer;
|
||||
using Toybox.Application.Properties;
|
||||
|
||||
class HomeAssistantConfirmation extends WatchUi.Confirmation {
|
||||
|
||||
function initialize() {
|
||||
WatchUi.Confirmation.initialize(WatchUi.loadResource($.Rez.Strings.Confirm));
|
||||
}
|
||||
@ -33,32 +34,32 @@ class HomeAssistantConfirmation extends WatchUi.Confirmation {
|
||||
}
|
||||
|
||||
class HomeAssistantConfirmationDelegate extends WatchUi.ConfirmationDelegate {
|
||||
private var confirmMethod;
|
||||
private var timeout;
|
||||
private var mConfirmMethod;
|
||||
private var mTimer;
|
||||
|
||||
function initialize(callback as Method() as Void) {
|
||||
WatchUi.ConfirmationDelegate.initialize();
|
||||
confirmMethod = callback;
|
||||
mConfirmMethod = callback;
|
||||
var timeoutSeconds = Properties.getValue("confirm_timeout") as Lang.Number;
|
||||
if (timeoutSeconds > 0) {
|
||||
timeout = new Timer.Timer();
|
||||
timeout.start(method(:onTimeout), timeoutSeconds * 1000, true);
|
||||
mTimer = new Timer.Timer();
|
||||
mTimer.start(method(:onTimeout), timeoutSeconds * 1000, true);
|
||||
}
|
||||
}
|
||||
|
||||
function onResponse(response) as Lang.Boolean {
|
||||
getApp().getQuitTimer().reset();
|
||||
if (timeout) {
|
||||
timeout.stop();
|
||||
if (mTimer) {
|
||||
mTimer.stop();
|
||||
}
|
||||
if (response == WatchUi.CONFIRM_YES) {
|
||||
confirmMethod.invoke();
|
||||
mConfirmMethod.invoke();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function onTimeout() as Void {
|
||||
timeout.stop();
|
||||
mTimer.stop();
|
||||
WatchUi.popView(WatchUi.SLIDE_RIGHT);
|
||||
}
|
||||
}
|
||||
|
42
source/HomeAssistantGlanceView.mc
Normal file
42
source/HomeAssistantGlanceView.mc
Normal file
@ -0,0 +1,42 @@
|
||||
//-----------------------------------------------------------------------------------
|
||||
//
|
||||
// Distributed under MIT Licence
|
||||
// See https://github.com/house-of-abbey/GarminHomeAssistant/blob/main/LICENSE.
|
||||
//
|
||||
//-----------------------------------------------------------------------------------
|
||||
//
|
||||
// GarminHomeAssistant is a Garmin IQ application written in Monkey C and routinely
|
||||
// tested on a Venu 2 device. The source code is provided at:
|
||||
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
//
|
||||
// P A Abbey & J D Abbey & SomeoneOnEarth, 23 November 2023
|
||||
//
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
// Glance view for GarminHomeAssistant
|
||||
//
|
||||
//-----------------------------------------------------------------------------------
|
||||
|
||||
using Toybox.Lang;
|
||||
using Toybox.WatchUi;
|
||||
using Toybox.Graphics;
|
||||
|
||||
(:glance)
|
||||
class HomeAssistantGlanceView extends WatchUi.GlanceView {
|
||||
|
||||
private var mText as Lang.String;
|
||||
|
||||
function initialize() {
|
||||
GlanceView.initialize();
|
||||
|
||||
mText = WatchUi.loadResource($.Rez.Strings.AppName);
|
||||
}
|
||||
|
||||
function onUpdate(dc) as Void {
|
||||
GlanceView.onUpdate(dc);
|
||||
|
||||
dc.setColor(Graphics.COLOR_WHITE, Graphics.COLOR_BLACK);
|
||||
dc.drawText(0, dc.getHeight() / 2, Graphics.FONT_TINY, mText, Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER);
|
||||
}
|
||||
}
|
@ -9,7 +9,7 @@
|
||||
// tested on a Venu 2 device. The source code is provided at:
|
||||
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
//
|
||||
// P A Abbey & J D Abbey, 31 October 2023
|
||||
// P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
//
|
||||
//
|
||||
// Description:
|
||||
|
@ -9,7 +9,7 @@
|
||||
// tested on a Venu 2 device. The source code is provided at:
|
||||
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
//
|
||||
// P A Abbey & J D Abbey, 31 October 2023
|
||||
// P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
//
|
||||
//
|
||||
// Description:
|
||||
|
@ -54,25 +54,23 @@ class HomeAssistantService {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantService onReturnCall() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoPhone + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strNoPhone + ".");
|
||||
} else if (responseCode == Communications.BLE_QUEUE_FULL) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantService onReturnCall() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||
}
|
||||
if (!(WatchUi.getCurrentView()[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strApiFlood), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
// Don't need to worry about multiple ErrorViews here as the call is not on a repeat timer.
|
||||
ErrorView.show(strApiFlood);
|
||||
} else if (responseCode == Communications.NETWORK_REQUEST_TIMED_OUT) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantService onReturnCall() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoResponse), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strNoResponse);
|
||||
} else if (responseCode == 404) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantService onReturnCall() Response Code: 404, page not found. Check API URL setting.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strApiUrlNotFound), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strApiUrlNotFound);
|
||||
} else if (responseCode == 200) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantService onReturnCall(): Service executed.");
|
||||
@ -99,7 +97,7 @@ class HomeAssistantService {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantService onReturnCall(): Unhandled HTTP response code = " + responseCode);
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strUnhandledHttpErr + responseCode ), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strUnhandledHttpErr + responseCode );
|
||||
}
|
||||
}
|
||||
|
||||
@ -117,14 +115,15 @@ class HomeAssistantService {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantService call(): No Phone connection, skipping API call.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoPhone + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strNoPhone + ".");
|
||||
} else if (! System.getDeviceSettings().connectionAvailable) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantService call(): No Internet connection, skipping API call.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strNoInternet + ".");
|
||||
} else {
|
||||
var url = (Properties.getValue("api_url") as Lang.String) + "/services/" + service.substring(0, service.find(".")) + "/" + service.substring(service.find(".")+1, null);
|
||||
// Can't use null for substring() parameters due to API version level.
|
||||
var url = (Properties.getValue("api_url") as Lang.String) + "/services/" + service.substring(0, service.find(".")) + "/" + service.substring(service.find(".")+1, service.length());
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantService call() URL=" + url);
|
||||
System.println("HomeAssistantService call() service=" + service);
|
||||
|
@ -9,7 +9,7 @@
|
||||
// tested on a Venu 2 device. The source code is provided at:
|
||||
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
//
|
||||
// P A Abbey & J D Abbey, 31 October 2023
|
||||
// P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
//
|
||||
//
|
||||
// Description:
|
||||
@ -77,56 +77,68 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
}
|
||||
// Provide the ability to terminate updating chain of calls for a permanent network error.
|
||||
var keepUpdating = true;
|
||||
if (responseCode == Communications.BLE_HOST_TIMEOUT || responseCode == Communications.BLE_CONNECTION_UNAVAILABLE) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||
}
|
||||
if (!(WatchUi.getCurrentView()[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strNoPhone + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
} else if (responseCode == Communications.BLE_QUEUE_FULL) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||
}
|
||||
if (!(WatchUi.getCurrentView()[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strApiFlood), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
} else if (responseCode == Communications.NETWORK_REQUEST_TIMED_OUT) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||
}
|
||||
if (!(WatchUi.getCurrentView()[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strNoResponse), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
} else if (responseCode == 404) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: 404, page not found. Check API URL setting.");
|
||||
}
|
||||
if (!(WatchUi.getCurrentView()[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strApiUrlNotFound), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
keepUpdating = false;
|
||||
} else if (responseCode == 200) {
|
||||
var state = data.get("state") as Lang.String;
|
||||
if (Globals.scDebug) {
|
||||
System.println((data.get("attributes") as Lang.Dictionary).get("friendly_name") + " State=" + state);
|
||||
}
|
||||
if (getLabel().equals("...")) {
|
||||
setLabel((data.get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String);
|
||||
}
|
||||
setUiToggle(state);
|
||||
} else {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState(): Unhandled HTTP response code = " + responseCode);
|
||||
}
|
||||
if (!(WatchUi.getCurrentView()[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strUnhandledHttpErr + responseCode ), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
switch (responseCode) {
|
||||
case Communications.BLE_HOST_TIMEOUT:
|
||||
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||
}
|
||||
ErrorView.show(strNoPhone + ".");
|
||||
break;
|
||||
case Communications.BLE_QUEUE_FULL:
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||
}
|
||||
ErrorView.show(strApiFlood);
|
||||
break;
|
||||
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||
}
|
||||
ErrorView.show(strNoResponse);
|
||||
break;
|
||||
case 404:
|
||||
var msg = null;
|
||||
if (data != null) {
|
||||
msg = data.get("message");
|
||||
}
|
||||
if (msg != null) {
|
||||
// Should be an HTTP 405 according to curl queries
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: 404. " + mIdentifier + " " + msg);
|
||||
}
|
||||
ErrorView.show("HTTP 405, " + mIdentifier + ". " + data.get("message"));
|
||||
} else {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: 404, page not found. Check API URL setting.");
|
||||
}
|
||||
ErrorView.show(strApiUrlNotFound);
|
||||
}
|
||||
keepUpdating = false;
|
||||
break;
|
||||
case 405:
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: 405. " + mIdentifier + " " + data.get("message"));
|
||||
}
|
||||
ErrorView.show("HTTP 405, " + mIdentifier + ". " + data.get("message"));
|
||||
keepUpdating = false;
|
||||
break;
|
||||
case 200:
|
||||
var state = data.get("state") as Lang.String;
|
||||
if (Globals.scDebug) {
|
||||
System.println((data.get("attributes") as Lang.Dictionary).get("friendly_name") + " State=" + state);
|
||||
}
|
||||
if (getLabel().equals("...")) {
|
||||
setLabel((data.get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String);
|
||||
}
|
||||
setUiToggle(state);
|
||||
ErrorView.unShow();
|
||||
break;
|
||||
default:
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState(): Unhandled HTTP response code = " + responseCode);
|
||||
}
|
||||
ErrorView.show(strUnhandledHttpErr + responseCode);
|
||||
}
|
||||
if (keepUpdating) {
|
||||
// Now this feels very "closely coupled" to the application, but it is the most reliable method instead of using a timer.
|
||||
@ -147,18 +159,12 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem getState(): No Phone connection, skipping API call.");
|
||||
}
|
||||
if (!(WatchUi.getCurrentView()[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strNoPhone + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
ErrorView.show(strNoPhone + ".");
|
||||
} else if (! System.getDeviceSettings().connectionAvailable) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call.");
|
||||
}
|
||||
if (!(WatchUi.getCurrentView()[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
ErrorView.show(strNoInternet + ".");
|
||||
} else {
|
||||
var url = Properties.getValue("api_url") + "/states/" + mIdentifier;
|
||||
if (Globals.scDebug) {
|
||||
@ -180,7 +186,9 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
var myTimer = new Timer.Timer();
|
||||
// Now this feels very "closely coupled" to the application, but it is the most reliable method instead of using a timer.
|
||||
myTimer.start(getApp().method(:updateNextMenuItem), 500, false);
|
||||
System.println("HomeAssistantToggleMenuItem getState(): Updated failed " + mIdentifier);
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem getState(): Updated failed " + mIdentifier);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -195,22 +203,22 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoPhone + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strNoPhone + ".");
|
||||
} else if (responseCode == Communications.BLE_QUEUE_FULL) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strApiFlood), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strApiFlood);
|
||||
} else if (responseCode == Communications.NETWORK_REQUEST_TIMED_OUT) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoResponse), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strNoResponse);
|
||||
} else if (responseCode == 404) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: 404, page not found. Check API URL setting.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strApiUrlNotFound), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strApiUrlNotFound);
|
||||
} else if (responseCode == 200) {
|
||||
var state;
|
||||
var d = data as Lang.Array;
|
||||
@ -227,7 +235,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnSetState(): Unhandled HTTP response code = " + responseCode);
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strUnhandledHttpErr + responseCode ), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strUnhandledHttpErr + responseCode );
|
||||
}
|
||||
}
|
||||
|
||||
@ -246,14 +254,14 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
}
|
||||
// Toggle the UI back
|
||||
setEnabled(!isEnabled());
|
||||
WatchUi.pushView(new ErrorView(strNoPhone + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strNoPhone + ".");
|
||||
} else if (! System.getDeviceSettings().connectionAvailable) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call.");
|
||||
}
|
||||
// Toggle the UI back
|
||||
setEnabled(!isEnabled());
|
||||
WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
ErrorView.show(strNoInternet + ".");
|
||||
} else {
|
||||
// Updated SDK and got a new error
|
||||
// ERROR: venu: Cannot find symbol ':substring' on type 'PolyType<Null or $.Toybox.Lang.Object>'.
|
||||
|
@ -9,7 +9,7 @@
|
||||
// tested on a Venu 2 device. The source code is provided at:
|
||||
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
//
|
||||
// P A Abbey & J D Abbey, 31 October 2023
|
||||
// P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
//
|
||||
//
|
||||
// Description:
|
||||
@ -21,6 +21,7 @@
|
||||
using Toybox.Application;
|
||||
using Toybox.Lang;
|
||||
using Toybox.Graphics;
|
||||
using Toybox.System;
|
||||
using Toybox.WatchUi;
|
||||
|
||||
class HomeAssistantView extends WatchUi.Menu2 {
|
||||
@ -103,12 +104,23 @@ class HomeAssistantView extends WatchUi.Menu2 {
|
||||
//
|
||||
class HomeAssistantViewDelegate extends WatchUi.Menu2InputDelegate {
|
||||
|
||||
function initialize() {
|
||||
private var mIsRootMenuView = false;
|
||||
|
||||
function initialize(isRootMenuView as Lang.Boolean) {
|
||||
Menu2InputDelegate.initialize();
|
||||
mIsRootMenuView = isRootMenuView;
|
||||
}
|
||||
|
||||
function onBack() {
|
||||
getApp().getQuitTimer().reset();
|
||||
|
||||
if (mIsRootMenuView){
|
||||
// If its started from glance or as an activity, directly exit the widget/app
|
||||
// (on widgets without glance, this exit() won`t do anything,
|
||||
// so the base view will be shown instead, through the popView below this "if body")
|
||||
System.exit();
|
||||
}
|
||||
|
||||
WatchUi.popView(WatchUi.SLIDE_RIGHT);
|
||||
}
|
||||
|
||||
@ -147,15 +159,13 @@ class HomeAssistantViewDelegate extends WatchUi.Menu2InputDelegate {
|
||||
if (Globals.scDebug) {
|
||||
System.println("Menu: " + haMenuItem.getLabel() + " " + haMenuItem.getId());
|
||||
}
|
||||
// No delegate state to be amended, so re-use 'self'.
|
||||
WatchUi.pushView(haMenuItem.getMenuView(), self, WatchUi.SLIDE_LEFT);
|
||||
WatchUi.pushView(haMenuItem.getMenuView(), new HomeAssistantViewDelegate(false), WatchUi.SLIDE_LEFT);
|
||||
} else if (item instanceof HomeAssistantViewIconMenuItem) {
|
||||
var haMenuItem = item as HomeAssistantViewIconMenuItem;
|
||||
if (Globals.scDebug) {
|
||||
System.println("IconMenu: " + haMenuItem.getLabel() + " " + haMenuItem.getId());
|
||||
}
|
||||
// No delegate state to be amended, so re-use 'self'.
|
||||
WatchUi.pushView(haMenuItem.getMenuView(), self, WatchUi.SLIDE_LEFT);
|
||||
WatchUi.pushView(haMenuItem.getMenuView(), new HomeAssistantViewDelegate(false), WatchUi.SLIDE_LEFT);
|
||||
} else {
|
||||
if (Globals.scDebug) {
|
||||
System.println(item.getLabel() + " " + item.getId());
|
||||
|
@ -9,7 +9,7 @@
|
||||
// tested on a Venu 2 device. The source code is provided at:
|
||||
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
//
|
||||
// P A Abbey & J D Abbey, 31 October 2023
|
||||
// P A Abbey & J D Abbey & SomeoneOnEarth, 31 October 2023
|
||||
//
|
||||
//
|
||||
// Description:
|
||||
|
129
source/RootView.mc
Normal file
129
source/RootView.mc
Normal file
@ -0,0 +1,129 @@
|
||||
//-----------------------------------------------------------------------------------
|
||||
//
|
||||
// Distributed under MIT Licence
|
||||
// See https://github.com/house-of-abbey/GarminHomeAssistant/blob/main/LICENSE.
|
||||
//
|
||||
//-----------------------------------------------------------------------------------
|
||||
//
|
||||
// GarminHomeAssistant is a Garmin IQ application written in Monkey C and routinely
|
||||
// tested on a Venu 2 device. The source code is provided at:
|
||||
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
//
|
||||
// P A Abbey & J D Abbey & SomeoneOnEarth, 5 December 2023
|
||||
//
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
// Application root view for GarminHomeAssistant
|
||||
//
|
||||
//-----------------------------------------------------------------------------------
|
||||
|
||||
using Toybox.Graphics;
|
||||
using Toybox.Lang;
|
||||
using Toybox.WatchUi;
|
||||
|
||||
class RootView extends ScalableView {
|
||||
|
||||
// ATTENTION when the app is running as a "widget" (that means, it runs on devices
|
||||
// without glance view support), the input events in this view are limited, as
|
||||
// described under "Base View and the Widget Carousel" on:
|
||||
//
|
||||
// https://developer.garmin.com/connect-iq/connect-iq-basics/app-types/
|
||||
//
|
||||
// Also the view type of the base view is limited too (for example "WatchUi.Menu2"
|
||||
// is not possible)).
|
||||
//
|
||||
// Also System.exit() is not working/do nothing when running as a widget: A widget will be
|
||||
// terminated automatically by OS after some time or can be quit manually, when on the base
|
||||
// view a swipe to left / "back button" press is done.
|
||||
|
||||
private var mApp as HomeAssistantApp;
|
||||
private var strFetchingMenuConfig as Lang.String;
|
||||
private var strExit as Lang.String;
|
||||
private var mTextAreaExit as WatchUi.TextArea or Null;
|
||||
private var mTextAreaFetching as WatchUi.TextArea or Null;
|
||||
|
||||
function initialize(app as HomeAssistantApp) {
|
||||
ScalableView.initialize();
|
||||
mApp=app;
|
||||
|
||||
strFetchingMenuConfig = WatchUi.loadResource($.Rez.Strings.FetchingMenuConfig);
|
||||
|
||||
if (System.getDeviceSettings().isTouchScreen){
|
||||
strExit = WatchUi.loadResource($.Rez.Strings.ExitViewTouch);
|
||||
} else {
|
||||
strExit = WatchUi.loadResource($.Rez.Strings.ExitViewButtons);
|
||||
}
|
||||
}
|
||||
|
||||
function onLayout(dc as Graphics.Dc) as Void {
|
||||
var w = dc.getWidth();
|
||||
var h = dc.getHeight();
|
||||
|
||||
mTextAreaExit = new WatchUi.TextArea({
|
||||
:text => strExit,
|
||||
:color => Graphics.COLOR_WHITE,
|
||||
:font => Graphics.FONT_XTINY,
|
||||
:justification => Graphics.TEXT_JUSTIFY_CENTER | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||
:locX => 0,
|
||||
:locY => 83,
|
||||
:width => w,
|
||||
:height => h - 166
|
||||
});
|
||||
|
||||
mTextAreaFetching = new WatchUi.TextArea({
|
||||
:text => strFetchingMenuConfig,
|
||||
:color => Graphics.COLOR_WHITE,
|
||||
:font => Graphics.FONT_XTINY,
|
||||
:justification => Graphics.TEXT_JUSTIFY_CENTER | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||
:locX => 0,
|
||||
:locY => 83,
|
||||
:width => w,
|
||||
:height => h - 166
|
||||
});
|
||||
}
|
||||
|
||||
function onUpdate(dc as Graphics.Dc) as Void {
|
||||
if(dc has :setAntiAlias) {
|
||||
dc.setAntiAlias(true);
|
||||
}
|
||||
dc.setColor(Graphics.COLOR_WHITE, Graphics.COLOR_BLACK);
|
||||
dc.clear();
|
||||
|
||||
if(mApp.homeAssistantMenuIsLoaded()) {
|
||||
mTextAreaExit.draw(dc);
|
||||
} else {
|
||||
mTextAreaFetching.draw(dc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class RootViewDelegate extends WatchUi.BehaviorDelegate {
|
||||
|
||||
var mApp as HomeAssistantApp;
|
||||
|
||||
function initialize(app as HomeAssistantApp ) {
|
||||
BehaviorDelegate.initialize();
|
||||
mApp=app;
|
||||
}
|
||||
|
||||
function onTap(evt as WatchUi.ClickEvent) as Lang.Boolean {
|
||||
return backToMainMenu();
|
||||
}
|
||||
|
||||
function onSelect() as Lang.Boolean {
|
||||
return backToMainMenu();
|
||||
}
|
||||
|
||||
function onMenu() as Lang.Boolean{
|
||||
return backToMainMenu();
|
||||
}
|
||||
|
||||
private function backToMainMenu() as Lang.Boolean{
|
||||
if(mApp.homeAssistantMenuIsLoaded()){
|
||||
mApp.pushHomeAssistantMenuView();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user