mirror of
https://github.com/house-of-abbey/GarminHomeAssistant.git
synced 2025-08-02 18:08:34 +00:00
Merge pull request #14 from house-of-abbey/10-separate-phone-connection-test-from-connection-available-test
10 separate phone connection test from connection available test
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@ bin/
|
||||
export/
|
||||
**/Thumbs.db
|
||||
settings.txt
|
||||
export.cmd
|
||||
|
@ -21,7 +21,7 @@
|
||||
Use "Monkey C: Edit Application" from the Visual Studio Code command palette
|
||||
to update the application attributes.
|
||||
-->
|
||||
<iq:application id="40131e87-31ff-454b-a8e2-92276ee399d6" type="watch-app" name="@Strings.AppName" entry="HomeAssistantApp" launcherIcon="@Drawables.LauncherIcon" minApiLevel="3.1.0">
|
||||
<iq:application id="98c36259-498a-4458-9cef-74a273ad2bc3" type="watch-app" 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:
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">عن</string>
|
||||
<string id="MenuItemTap">مقبض</string>
|
||||
<string id="MenuItemMenu">قائمة طعام</string>
|
||||
<string id="NoPhone">لا يوجد اتصال الهاتف</string>
|
||||
<string id="NoInternet">لا يوجد اتصال بالإنترنت</string>
|
||||
<string id="NoResponse">لا توجد استجابة، تحقق من الاتصال بالإنترنت</string>
|
||||
<string id="NoMenu">خطأ في إحضار القائمة</string>
|
||||
<string id="NoAPIKey">لا يوجد مفتاح API في إعدادات التطبيق</string>
|
||||
<string id="NoApiUrl">لا يوجد عنوان URL لواجهة برمجة التطبيقات في إعدادات التطبيق</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Изкл</string>
|
||||
<string id="MenuItemTap">Докоснете</string>
|
||||
<string id="MenuItemMenu">Меню</string>
|
||||
<string id="NoPhone">Няма телефонна връзка</string>
|
||||
<string id="NoInternet">Няма интернет връзка</string>
|
||||
<string id="NoResponse">Няма отговор, проверете интернет връзката</string>
|
||||
<string id="NoMenu">Грешка при извличане на менюто</string>
|
||||
<string id="NoAPIKey">Няма API ключ в настройките на приложението</string>
|
||||
<string id="NoApiUrl">Няма URL адрес на API в настройките на приложението</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Vypnuto</string>
|
||||
<string id="MenuItemTap">Klepněte</string>
|
||||
<string id="MenuItemMenu">Jídelní lístek</string>
|
||||
<string id="NoPhone">Žádné telefonní spojení</string>
|
||||
<string id="NoInternet">Žádné internetové připojení</string>
|
||||
<string id="NoResponse">Žádná odpověď, zkontrolujte připojení k internetu</string>
|
||||
<string id="NoMenu">Chyba načítání nabídky</string>
|
||||
<string id="NoAPIKey">V nastavení aplikace není žádný klíč API</string>
|
||||
<string id="NoApiUrl">V nastavení aplikace není žádná adresa URL API</string>
|
||||
|
@ -24,8 +24,10 @@
|
||||
<string id="MenuItemOff">Af</string>
|
||||
<string id="MenuItemTap">Tryk på</string>
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoPhone">Ingen telefonforbindelse</string>
|
||||
<string id="NoInternet">Ingen internetforbindelse</string>
|
||||
<string id="NoMenu">Fejl ved menuhentning</string>
|
||||
<string id="NoResponse">Intet svar, tjek internetforbindelse</string>
|
||||
<string id="NoMenu">Menuhentningsfejl</string>
|
||||
<string id="NoAPIKey">Ingen API-nøgle i applikationsindstillingerne</string>
|
||||
<string id="NoApiUrl">Ingen API-URL i applikationsindstillingerne</string>
|
||||
<string id="NoConfigUrl">Ingen konfigurations-URL i applikationsindstillingerne</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Aus</string>
|
||||
<string id="MenuItemTap">Antippen</string>
|
||||
<string id="MenuItemMenu">Menü</string>
|
||||
<string id="NoPhone">Keine Telefonverbindung</string>
|
||||
<string id="NoInternet">Keine Internetverbindung</string>
|
||||
<string id="NoResponse">Keine Antwort, überprüfen Sie die Internetverbindung</string>
|
||||
<string id="NoMenu">Fehler beim Abrufen des Menüs</string>
|
||||
<string id="NoAPIKey">Kein API-Schlüssel in den Anwendungseinstellungen</string>
|
||||
<string id="NoApiUrl">Keine API-URL in den Anwendungseinstellungen</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Uit</string>
|
||||
<string id="MenuItemTap">Kraan</string>
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoPhone">Geen telefoonverbinding</string>
|
||||
<string id="NoInternet">Geen internet verbinding</string>
|
||||
<string id="NoResponse">Geen reactie, controleer de internetverbinding</string>
|
||||
<string id="NoMenu">Fout bij ophalen van menu</string>
|
||||
<string id="NoAPIKey">Geen API-sleutel in de applicatie-instellingen</string>
|
||||
<string id="NoApiUrl">Geen API-URL in de applicatie-instellingen</string>
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
<!--
|
||||
Generated by Google Translate: English to Estonian
|
||||
Inglise keelest loodud Google'i tõlke abil
|
||||
Loodud Google'i tõlke abil inglise keelest
|
||||
-->
|
||||
|
||||
<strings>
|
||||
@ -24,12 +24,14 @@
|
||||
<string id="MenuItemOff">Väljas</string>
|
||||
<string id="MenuItemTap">Puudutage</string>
|
||||
<string id="MenuItemMenu">Menüü</string>
|
||||
<string id="NoPhone">Telefoniühendus puudub</string>
|
||||
<string id="NoInternet">Interneti-ühendus puudub</string>
|
||||
<string id="NoResponse">Ei reageeri, kontrollige Interneti-ühendust</string>
|
||||
<string id="NoMenu">Menüü toomise viga</string>
|
||||
<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 taotluste esitamist.</string>
|
||||
<string id="ApiFlood">API-kõned liiga kiired. Palun aeglustage oma taotlusi.</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>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Vinossa</string>
|
||||
<string id="MenuItemTap">Napauta</string>
|
||||
<string id="MenuItemMenu">Valikko</string>
|
||||
<string id="NoPhone">Ei puhelinyhteyttä</string>
|
||||
<string id="NoInternet">Ei Internet-yhteyttä</string>
|
||||
<string id="NoResponse">Ei vastausta, tarkista Internet-yhteys</string>
|
||||
<string id="NoMenu">Valikkohakuvirhe</string>
|
||||
<string id="NoAPIKey">Sovellusasetuksissa ei ole API-avainta</string>
|
||||
<string id="NoApiUrl">Sovellusasetuksissa ei ole API URL-osoitetta</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Désactivé</string>
|
||||
<string id="MenuItemTap">Clic</string>
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoPhone">Pas de connexion téléphonique</string>
|
||||
<string id="NoInternet">Pas de connexion Internet</string>
|
||||
<string id="NoResponse">Pas de réponse, vérifiez la connexion Internet</string>
|
||||
<string id="NoMenu">Erreur de récupération du menu</string>
|
||||
<string id="NoAPIKey">Pas de clé API dans les paramètres de l'application</string>
|
||||
<string id="NoApiUrl">Aucune URL API dans les paramètres de l'application</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Μακριά από</string>
|
||||
<string id="MenuItemTap">Παρακέντηση</string>
|
||||
<string id="MenuItemMenu">Μενού</string>
|
||||
<string id="NoPhone">Δεν υπάρχει σύνδεση τηλεφώνου</string>
|
||||
<string id="NoInternet">Δεν υπάρχει σύνδεση στο διαδίκτυο</string>
|
||||
<string id="NoResponse">Καμία απάντηση, ελέγξτε τη σύνδεση στο Διαδίκτυο</string>
|
||||
<string id="NoMenu">Σφάλμα ανάκτησης μενού</string>
|
||||
<string id="NoAPIKey">Δεν υπάρχει κλειδί API στις ρυθμίσεις της εφαρμογής</string>
|
||||
<string id="NoApiUrl">Δεν υπάρχει URL API στις ρυθμίσεις της εφαρμογής</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">כבוי</string>
|
||||
<string id="MenuItemTap">בֶּרֶז</string>
|
||||
<string id="MenuItemMenu">תַפרִיט</string>
|
||||
<string id="NoPhone">אין חיבור לטלפון</string>
|
||||
<string id="NoInternet">אין חיבור אינטרנט</string>
|
||||
<string id="NoResponse">אין תגובה, בדוק חיבור לאינטרנט</string>
|
||||
<string id="NoMenu">שגיאת אחזור תפריט</string>
|
||||
<string id="NoAPIKey">אין מפתח API בהגדרות האפליקציה</string>
|
||||
<string id="NoApiUrl">אין כתובת API בהגדרות האפליקציה</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Isključeno</string>
|
||||
<string id="MenuItemTap">Dodirnite</string>
|
||||
<string id="MenuItemMenu">Jelovnik</string>
|
||||
<string id="NoPhone">Nema telefonske veze</string>
|
||||
<string id="NoInternet">Nema internetske veze</string>
|
||||
<string id="NoResponse">Nema odgovora, provjerite internetsku vezu</string>
|
||||
<string id="NoMenu">Pogreška dohvaćanja izbornika</string>
|
||||
<string id="NoAPIKey">Nema API ključa u postavkama aplikacije</string>
|
||||
<string id="NoApiUrl">Nema API URL-a u postavkama aplikacije</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Ki</string>
|
||||
<string id="MenuItemTap">Koppintson a</string>
|
||||
<string id="MenuItemMenu">Menü</string>
|
||||
<string id="NoPhone">Nincs telefonkapcsolat</string>
|
||||
<string id="NoInternet">Nincs internetkapcsolat</string>
|
||||
<string id="NoResponse">Nincs válasz, ellenőrizze az internetkapcsolatot</string>
|
||||
<string id="NoMenu">Menü Lekérési hiba</string>
|
||||
<string id="NoAPIKey">Nincs API kulcs az alkalmazás beállításaiban</string>
|
||||
<string id="NoApiUrl">Nincs API URL az alkalmazás beállításai között</string>
|
||||
|
@ -24,11 +24,13 @@
|
||||
<string id="MenuItemOff">Mati</string>
|
||||
<string id="MenuItemTap">Mengetuk</string>
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoPhone">Tidak ada koneksi Telepon</string>
|
||||
<string id="NoInternet">Tidak ada koneksi internet</string>
|
||||
<string id="NoResponse">Tidak Ada Respon, periksa koneksi Internet</string>
|
||||
<string id="NoMenu">Kesalahan Pengambilan Menu</string>
|
||||
<string id="NoAPIKey">Tidak ada kunci API di pengaturan aplikasi</string>
|
||||
<string id="NoApiUrl">Tidak ada URL API di pengaturan aplikasi</string>
|
||||
<string id="NoConfigUrl">Tidak ada URL konfigurasi di pengaturan aplikasi</string>
|
||||
<string id="NoConfigUrl">Tidak ada URL konfigurasi dalam pengaturan aplikasi</string>
|
||||
<string id="ApiFlood">Panggilan API terlalu cepat. Harap memperlambat permintaan Anda.</string>
|
||||
<string id="ApiUrlNotFound">URL tidak ditemukan. Potensi kesalahan URL API dalam pengaturan.</string>
|
||||
<string id="ConfigUrlNotFound">URL tidak ditemukan. Potensi kesalahan URL Konfigurasi dalam pengaturan.</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Spento</string>
|
||||
<string id="MenuItemTap">Rubinetto</string>
|
||||
<string id="MenuItemMenu">Menù</string>
|
||||
<string id="NoPhone">Nessuna connessione telefonica</string>
|
||||
<string id="NoInternet">Nessuna connessione internet</string>
|
||||
<string id="NoResponse">Nessuna risposta, controlla la connessione Internet</string>
|
||||
<string id="NoMenu">Errore di recupero del menu</string>
|
||||
<string id="NoAPIKey">Nessuna chiave API nelle impostazioni dell'applicazione</string>
|
||||
<string id="NoApiUrl">Nessun URL API nelle impostazioni dell'applicazione</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">オフ</string>
|
||||
<string id="MenuItemTap">タップ</string>
|
||||
<string id="MenuItemMenu">メニュー</string>
|
||||
<string id="NoPhone">電話が接続されていません</string>
|
||||
<string id="NoInternet">インターネット接続なし</string>
|
||||
<string id="NoResponse">応答がありません。インターネット接続を確認してください</string>
|
||||
<string id="NoMenu">メニューフェッチエラー</string>
|
||||
<string id="NoAPIKey">アプリケーション設定に API キーがありません</string>
|
||||
<string id="NoApiUrl">アプリケーション設定に API URL がありません</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">끄다</string>
|
||||
<string id="MenuItemTap">수도꼭지</string>
|
||||
<string id="MenuItemMenu">메뉴</string>
|
||||
<string id="NoPhone">전화 연결 없음</string>
|
||||
<string id="NoInternet">인터넷에 연결되지 않음</string>
|
||||
<string id="NoResponse">응답이 없습니다. 인터넷 연결을 확인하세요.</string>
|
||||
<string id="NoMenu">메뉴 가져오기 오류</string>
|
||||
<string id="NoAPIKey">애플리케이션 설정에 API 키가 없습니다.</string>
|
||||
<string id="NoApiUrl">애플리케이션 설정에 API URL이 없습니다.</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Izslēgts</string>
|
||||
<string id="MenuItemTap">Krāns</string>
|
||||
<string id="MenuItemMenu">Izvēlne</string>
|
||||
<string id="NoPhone">Nav tālruņa savienojuma</string>
|
||||
<string id="NoInternet">Nav interneta savienojuma</string>
|
||||
<string id="NoResponse">Nav atbildes, pārbaudiet interneta savienojumu</string>
|
||||
<string id="NoMenu">Izvēlnes ielādes kļūda</string>
|
||||
<string id="NoAPIKey">Lietojumprogrammas iestatījumos nav API atslēgas</string>
|
||||
<string id="NoApiUrl">Lietojumprogrammas iestatījumos nav API URL</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Išjungta</string>
|
||||
<string id="MenuItemTap">Bakstelėkite</string>
|
||||
<string id="MenuItemMenu">Meniu</string>
|
||||
<string id="NoPhone">Nėra telefono ryšio</string>
|
||||
<string id="NoInternet">Nėra interneto ryšio</string>
|
||||
<string id="NoResponse">Neatsako, patikrinkite interneto ryšį</string>
|
||||
<string id="NoMenu">Meniu gavimo klaida</string>
|
||||
<string id="NoAPIKey">Programos nustatymuose nėra API rakto</string>
|
||||
<string id="NoApiUrl">Programos nustatymuose nėra API URL</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Av</string>
|
||||
<string id="MenuItemTap">Trykk på</string>
|
||||
<string id="MenuItemMenu">Meny</string>
|
||||
<string id="NoPhone">Ingen telefonforbindelse</string>
|
||||
<string id="NoInternet">Ingen Internett-tilkobling</string>
|
||||
<string id="NoResponse">Ingen svar, sjekk Internett-tilkoblingen</string>
|
||||
<string id="NoMenu">Menyhentingsfeil</string>
|
||||
<string id="NoAPIKey">Ingen API-nøkkel i applikasjonsinnstillingene</string>
|
||||
<string id="NoApiUrl">Ingen API-URL i applikasjonsinnstillingene</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Wyłączony</string>
|
||||
<string id="MenuItemTap">Uzyskiwać</string>
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoPhone">Brak połączenia telefonicznego</string>
|
||||
<string id="NoInternet">Brak połączenia z internetem</string>
|
||||
<string id="NoResponse">Brak odpowiedzi, sprawdź połączenie internetowe</string>
|
||||
<string id="NoMenu">Błąd pobierania menu</string>
|
||||
<string id="NoAPIKey">Brak klucza API w ustawieniach aplikacji</string>
|
||||
<string id="NoApiUrl">Brak adresu API w ustawieniach aplikacji</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Desligado</string>
|
||||
<string id="MenuItemTap">Tocar</string>
|
||||
<string id="MenuItemMenu">Cardápio</string>
|
||||
<string id="NoPhone">Sem conexão telefônica</string>
|
||||
<string id="NoInternet">Sem conexão com a Internet</string>
|
||||
<string id="NoResponse">Sem resposta, verifique a conexão com a Internet</string>
|
||||
<string id="NoMenu">Erro ao buscar menu</string>
|
||||
<string id="NoAPIKey">Nenhuma chave de API nas configurações do aplicativo</string>
|
||||
<string id="NoApiUrl">Nenhum URL de API nas configurações do aplicativo</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Oprit</string>
|
||||
<string id="MenuItemTap">Atingeți</string>
|
||||
<string id="MenuItemMenu">Meniul</string>
|
||||
<string id="NoPhone">Fără conexiune telefonică</string>
|
||||
<string id="NoInternet">Fără conexiune internet</string>
|
||||
<string id="NoResponse">Niciun răspuns, verificați conexiunea la internet</string>
|
||||
<string id="NoMenu">Eroare de preluare a meniului</string>
|
||||
<string id="NoAPIKey">Nicio cheie API în setările aplicației</string>
|
||||
<string id="NoApiUrl">Nicio adresă URL API în setările aplicației</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Vypnuté</string>
|
||||
<string id="MenuItemTap">Klepnite</string>
|
||||
<string id="MenuItemMenu">Ponuka</string>
|
||||
<string id="NoPhone">Žiadne telefónne spojenie</string>
|
||||
<string id="NoInternet">Žiadne internetové pripojenie</string>
|
||||
<string id="NoResponse">Žiadna odpoveď, skontrolujte internetové pripojenie</string>
|
||||
<string id="NoMenu">Chyba načítania ponuky</string>
|
||||
<string id="NoAPIKey">V nastaveniach aplikácie nie je žiadny kľúč API</string>
|
||||
<string id="NoApiUrl">V nastaveniach aplikácie nie je žiadna adresa URL rozhrania API</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Izključeno</string>
|
||||
<string id="MenuItemTap">Tapnite</string>
|
||||
<string id="MenuItemMenu">meni</string>
|
||||
<string id="NoPhone">Ni telefonske povezave</string>
|
||||
<string id="NoInternet">Ni internetne povezave</string>
|
||||
<string id="NoResponse">Ni odgovora, preverite internetno povezavo</string>
|
||||
<string id="NoMenu">Napaka pri pridobivanju menija</string>
|
||||
<string id="NoAPIKey">V nastavitvah aplikacije ni ključa API</string>
|
||||
<string id="NoApiUrl">V nastavitvah aplikacije ni URL-ja API-ja</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Apagado</string>
|
||||
<string id="MenuItemTap">Grifo</string>
|
||||
<string id="MenuItemMenu">Menú</string>
|
||||
<string id="NoPhone">Sin conexión telefónica</string>
|
||||
<string id="NoInternet">Sin conexión a Internet</string>
|
||||
<string id="NoResponse">No hay respuesta, verifique la conexión a Internet</string>
|
||||
<string id="NoMenu">Error de recuperación del menú</string>
|
||||
<string id="NoAPIKey">Sin clave API en la configuración de la aplicación</string>
|
||||
<string id="NoApiUrl">No hay URL de API en la configuración de la aplicación</string>
|
||||
|
@ -24,10 +24,12 @@
|
||||
<string id="MenuItemOff">Av</string>
|
||||
<string id="MenuItemTap">Knacka</string>
|
||||
<string id="MenuItemMenu">Meny</string>
|
||||
<string id="NoPhone">Ingen telefonanslutning</string>
|
||||
<string id="NoInternet">Ingen internetanslutning</string>
|
||||
<string id="NoResponse">Inget svar, kontrollera internetanslutningen</string>
|
||||
<string id="NoMenu">Menyhämtningsfel</string>
|
||||
<string id="NoAPIKey">Ingen API-nyckel i applikationsinställningarna</string>
|
||||
<string id="NoApiUrl">Ingen API-URL i programinställningarna</string>
|
||||
<string id="NoApiUrl">Ingen API-URL i applikationsinställningarna</string>
|
||||
<string id="NoConfigUrl">Ingen konfigurations-URL i programinställningarna</string>
|
||||
<string id="ApiFlood">API-anrop för snabba. Vänligen sakta ner dina förfrågningar.</string>
|
||||
<string id="ApiUrlNotFound">Webbadressen hittades inte. Potentiellt API-URL-fel i inställningarna.</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">ปิด</string>
|
||||
<string id="MenuItemTap">แตะ</string>
|
||||
<string id="MenuItemMenu">เมนู</string>
|
||||
<string id="NoPhone">ไม่มีการเชื่อมต่อโทรศัพท์</string>
|
||||
<string id="NoInternet">ไม่มีการเชื่อมต่ออินเทอร์เน็ต</string>
|
||||
<string id="NoResponse">ไม่มีการตอบสนอง ตรวจสอบการเชื่อมต่ออินเทอร์เน็ต</string>
|
||||
<string id="NoMenu">เมนูดึงข้อมูลผิดพลาด</string>
|
||||
<string id="NoAPIKey">ไม่มีคีย์ API ในการตั้งค่าแอปพลิเคชัน</string>
|
||||
<string id="NoApiUrl">ไม่มี URL API ในการตั้งค่าแอปพลิเคชัน</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Kapalı</string>
|
||||
<string id="MenuItemTap">Musluk</string>
|
||||
<string id="MenuItemMenu">Menü</string>
|
||||
<string id="NoPhone">Telefon bağlantısı yok</string>
|
||||
<string id="NoInternet">İnternet bağlantısı yok</string>
|
||||
<string id="NoResponse">Yanıt Yok, İnternet bağlantısını kontrol edin</string>
|
||||
<string id="NoMenu">Menü Alma Hatası</string>
|
||||
<string id="NoAPIKey">Uygulama ayarlarında API anahtarı yok</string>
|
||||
<string id="NoApiUrl">Uygulama ayarlarında API URL'si yok</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Вимкнено</string>
|
||||
<string id="MenuItemTap">Торкніться</string>
|
||||
<string id="MenuItemMenu">Меню</string>
|
||||
<string id="NoPhone">Немає телефонного зв'язку</string>
|
||||
<string id="NoInternet">Немає підключення до Інтернету</string>
|
||||
<string id="NoResponse">Немає відповіді, перевірте підключення до Інтернету</string>
|
||||
<string id="NoMenu">Помилка вибірки меню</string>
|
||||
<string id="NoAPIKey">У налаштуваннях програми немає ключа API</string>
|
||||
<string id="NoApiUrl">У налаштуваннях програми немає URL-адреси API</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Tắt</string>
|
||||
<string id="MenuItemTap">Vỗ nhẹ</string>
|
||||
<string id="MenuItemMenu">Thực đơn</string>
|
||||
<string id="NoPhone">Không có kết nối điện thoại</string>
|
||||
<string id="NoInternet">Không có kết nối Internet</string>
|
||||
<string id="NoResponse">Không có phản hồi, kiểm tra kết nối Internet</string>
|
||||
<string id="NoMenu">Lỗi tìm nạp menu</string>
|
||||
<string id="NoAPIKey">Không có khóa API trong cài đặt ứng dụng</string>
|
||||
<string id="NoApiUrl">Không có URL API trong cài đặt ứng dụng</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">离开</string>
|
||||
<string id="MenuItemTap">轻敲</string>
|
||||
<string id="MenuItemMenu">菜单</string>
|
||||
<string id="NoPhone">没有电话连接</string>
|
||||
<string id="NoInternet">没有网络连接</string>
|
||||
<string id="NoResponse">无响应,请检查互联网连接</string>
|
||||
<string id="NoMenu">菜单获取错误</string>
|
||||
<string id="NoAPIKey">应用程序设置中没有 API 密钥</string>
|
||||
<string id="NoApiUrl">应用程序设置中没有 API URL</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">離開</string>
|
||||
<string id="MenuItemTap">輕敲</string>
|
||||
<string id="MenuItemMenu">選單</string>
|
||||
<string id="NoPhone">沒有電話連接</string>
|
||||
<string id="NoInternet">沒有網路連線</string>
|
||||
<string id="NoResponse">無響應,請檢查互聯網連接</string>
|
||||
<string id="NoMenu">選單取得錯誤</string>
|
||||
<string id="NoAPIKey">應用程式設定中沒有 API 金鑰</string>
|
||||
<string id="NoApiUrl">應用程式設定中沒有 API URL</string>
|
||||
|
@ -24,7 +24,9 @@
|
||||
<string id="MenuItemOff">Mati</string>
|
||||
<string id="MenuItemTap">Ketik</string>
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoPhone">Tiada sambungan Telefon</string>
|
||||
<string id="NoInternet">Tiada sambungan internet</string>
|
||||
<string id="NoResponse">Tiada Respons, semak sambungan Internet</string>
|
||||
<string id="NoMenu">Ralat Pengambilan Menu</string>
|
||||
<string id="NoAPIKey">Tiada kunci API dalam tetapan aplikasi</string>
|
||||
<string id="NoApiUrl">Tiada URL API dalam tetapan aplikasi</string>
|
||||
|
@ -18,7 +18,9 @@
|
||||
<string id="MenuItemOff">Off</string>
|
||||
<string id="MenuItemTap">Tap</string>
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoPhone">No Phone connection</string>
|
||||
<string id="NoInternet">No Internet connection</string>
|
||||
<string id="NoResponse">No Response, check Internet connection</string>
|
||||
<string id="NoMenu">Menu Fetch Error</string>
|
||||
<string id="NoAPIKey">No API key in the application settings</string>
|
||||
<string id="NoApiUrl">No API URL in the application settings</string>
|
||||
|
@ -22,14 +22,15 @@ using Toybox.Application;
|
||||
using Toybox.Lang;
|
||||
using Toybox.WatchUi;
|
||||
using Toybox.Application.Properties;
|
||||
using Toybox.Timer;
|
||||
|
||||
class HomeAssistantApp extends Application.AppBase {
|
||||
hidden var mHaMenu;
|
||||
hidden var strNoApiKey as Lang.String;
|
||||
hidden var strNoApiUrl as Lang.String;
|
||||
hidden var strNoConfigUrl as Lang.String;
|
||||
hidden var strNoPhone as Lang.String;
|
||||
hidden var strNoInternet as Lang.String;
|
||||
hidden var strNoResponse as Lang.String;
|
||||
hidden var strNoMenu as Lang.String;
|
||||
hidden var strApiFlood as Lang.String;
|
||||
hidden var strConfigUrlNotFound as Lang.String;
|
||||
@ -43,7 +44,9 @@ class HomeAssistantApp extends Application.AppBase {
|
||||
strNoApiKey = WatchUi.loadResource($.Rez.Strings.NoAPIKey);
|
||||
strNoApiUrl = WatchUi.loadResource($.Rez.Strings.NoApiUrl);
|
||||
strNoConfigUrl = WatchUi.loadResource($.Rez.Strings.NoConfigUrl);
|
||||
strNoPhone = WatchUi.loadResource($.Rez.Strings.NoPhone);
|
||||
strNoInternet = WatchUi.loadResource($.Rez.Strings.NoInternet);
|
||||
strNoResponse = WatchUi.loadResource($.Rez.Strings.NoResponse);
|
||||
strNoMenu = WatchUi.loadResource($.Rez.Strings.NoMenu);
|
||||
strApiFlood = WatchUi.loadResource($.Rez.Strings.ApiFlood);
|
||||
strConfigUrlNotFound = WatchUi.loadResource($.Rez.Strings.ConfigUrlNotFound);
|
||||
@ -82,14 +85,19 @@ class HomeAssistantApp extends Application.AppBase {
|
||||
System.println("HomeAssistantMenuItem execScript(): No configuration URL in the application settings.");
|
||||
}
|
||||
return [new ErrorView(strNoConfigUrl + "."), new ErrorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
} else if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) {
|
||||
fetchMenuConfig();
|
||||
return [new WatchUi.View(), new WatchUi.BehaviorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
} else {
|
||||
} 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>;
|
||||
} 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>;
|
||||
} else {
|
||||
fetchMenuConfig();
|
||||
return [new WatchUi.View(), new WatchUi.BehaviorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
}
|
||||
}
|
||||
|
||||
@ -100,15 +108,24 @@ class HomeAssistantApp extends Application.AppBase {
|
||||
System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: " + responseCode);
|
||||
System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Data: " + data);
|
||||
}
|
||||
if (responseCode == Communications.BLE_QUEUE_FULL) {
|
||||
if (responseCode == Communications.BLE_HOST_TIMEOUT || responseCode == Communications.BLE_CONNECTION_UNAVAILABLE) {
|
||||
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);
|
||||
} else if (responseCode == Communications.BLE_QUEUE_FULL) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||
}
|
||||
var cw = WatchUi.getCurrentView();
|
||||
if (!(cw[0] instanceof ErrorView)) {
|
||||
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("HomeAssistantApp onReturnFetchMenuConfig() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoResponse), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
} else if (responseCode == 404) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: 404, page not found. Check Configuration URL setting.");
|
||||
|
@ -25,7 +25,9 @@ using Toybox.Application.Properties;
|
||||
|
||||
class HomeAssistantMenuItem extends WatchUi.MenuItem {
|
||||
hidden var mApiKey as Lang.String;
|
||||
hidden var strNoPhone as Lang.String;
|
||||
hidden var strNoInternet as Lang.String;
|
||||
hidden var strNoResponse as Lang.String;
|
||||
hidden var strApiFlood as Lang.String;
|
||||
hidden var strApiUrlNotFound as Lang.String;
|
||||
hidden var strUnhandledHttpErr as Lang.String;
|
||||
@ -41,7 +43,9 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem {
|
||||
:icon as Graphics.BitmapType or WatchUi.Drawable or Lang.Symbol
|
||||
} or Null
|
||||
) {
|
||||
strNoPhone = WatchUi.loadResource($.Rez.Strings.NoPhone);
|
||||
strNoInternet = WatchUi.loadResource($.Rez.Strings.NoInternet);
|
||||
strNoResponse = WatchUi.loadResource($.Rez.Strings.NoResponse);
|
||||
strApiFlood = WatchUi.loadResource($.Rez.Strings.ApiFlood);
|
||||
strApiUrlNotFound = WatchUi.loadResource($.Rez.Strings.ApiUrlNotFound);
|
||||
strUnhandledHttpErr = WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr);
|
||||
@ -62,15 +66,24 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem {
|
||||
System.println("HomeAssistantMenuItem onReturnExecScript() Response Code: " + responseCode);
|
||||
System.println("HomeAssistantMenuItem onReturnExecScript() Response Data: " + data);
|
||||
}
|
||||
if (responseCode == Communications.BLE_QUEUE_FULL) {
|
||||
if (responseCode == Communications.BLE_HOST_TIMEOUT || responseCode == Communications.BLE_CONNECTION_UNAVAILABLE) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantMenuItem onReturnExecScript() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoPhone + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
} else if (responseCode == Communications.BLE_QUEUE_FULL) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantMenuItem onReturnExecScript() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||
}
|
||||
var cw = WatchUi.getCurrentView();
|
||||
if (!(cw[0] instanceof ErrorView)) {
|
||||
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("HomeAssistantMenuItem onReturnExecScript() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoResponse), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
} else if (responseCode == 404) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantMenuItem onReturnExecScript() Response Code: 404, page not found. Check API URL setting.");
|
||||
@ -115,7 +128,17 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem {
|
||||
},
|
||||
:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
|
||||
};
|
||||
if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) {
|
||||
if (! System.getDeviceSettings().phoneConnected) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantMenuItem execScript(): No Phone connection, skipping API call.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoPhone + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
} else if (! System.getDeviceSettings().connectionAvailable) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantMenuItem execScript(): No Internet connection, skipping API call.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
} else {
|
||||
// Updated SDK and got a new error
|
||||
// ERROR: venu: Cannot find symbol ':substring' on type 'PolyType<Null or $.Toybox.Lang.Object>'.
|
||||
var id = mIdentifier as Lang.String;
|
||||
@ -153,11 +176,6 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem {
|
||||
new Attention.VibeProfile(50, 100) // On for 100ms
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantMenuItem execScript(): No Internet connection, skipping API call.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -22,10 +22,13 @@ using Toybox.Lang;
|
||||
using Toybox.WatchUi;
|
||||
using Toybox.Graphics;
|
||||
using Toybox.Application.Properties;
|
||||
using Toybox.Timer;
|
||||
|
||||
class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
hidden var mApiKey as Lang.String;
|
||||
hidden var strNoPhone as Lang.String;
|
||||
hidden var strNoInternet as Lang.String;
|
||||
hidden var strNoResponse as Lang.String;
|
||||
hidden var strApiFlood as Lang.String;
|
||||
hidden var strApiUrlNotFound as Lang.String;
|
||||
hidden var strUnhandledHttpErr as Lang.String;
|
||||
@ -43,7 +46,9 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
:icon as Graphics.BitmapType or WatchUi.Drawable or Lang.Symbol
|
||||
} or Null
|
||||
) {
|
||||
strNoPhone = WatchUi.loadResource($.Rez.Strings.NoPhone);
|
||||
strNoInternet = WatchUi.loadResource($.Rez.Strings.NoInternet);
|
||||
strNoResponse = WatchUi.loadResource($.Rez.Strings.NoResponse);
|
||||
strApiFlood = WatchUi.loadResource($.Rez.Strings.ApiFlood);
|
||||
strApiUrlNotFound = WatchUi.loadResource($.Rez.Strings.ApiUrlNotFound);
|
||||
strUnhandledHttpErr = WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr);
|
||||
@ -70,26 +75,41 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: " + responseCode);
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Data: " + data);
|
||||
}
|
||||
if (responseCode == Communications.BLE_QUEUE_FULL) {
|
||||
// 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.");
|
||||
}
|
||||
var cw = WatchUi.getCurrentView();
|
||||
if (!(cw[0] instanceof ErrorView)) {
|
||||
if (!(WatchUi.getCurrentView()[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strApiFlood), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
// Now this feels very "closely coupled" to the application, but it is the most reliable method instead of using a timer.
|
||||
getApp().updateNextMenuItem();
|
||||
} 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.");
|
||||
}
|
||||
var cw = WatchUi.getCurrentView();
|
||||
if (!(cw[0] instanceof ErrorView)) {
|
||||
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) {
|
||||
@ -99,13 +119,19 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
setLabel((data.get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String);
|
||||
}
|
||||
setUiToggle(state);
|
||||
// Now this feels very "closely coupled" to the application, but it is the most reliable method instead of using a timer.
|
||||
getApp().updateNextMenuItem();
|
||||
} else {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState(): Unhandled HTTP response code = " + responseCode);
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strUnhandledHttpErr + responseCode ), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
if (!(WatchUi.getCurrentView()[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strUnhandledHttpErr + responseCode ), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
}
|
||||
if (keepUpdating) {
|
||||
// Now this feels very "closely coupled" to the application, but it is the most reliable method instead of using a timer.
|
||||
getApp().updateNextMenuItem();
|
||||
System.println("HomeAssistantToggleMenuItem onReturnGetState(): Updated " + mIdentifier);
|
||||
}
|
||||
}
|
||||
|
||||
@ -117,7 +143,24 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
},
|
||||
:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
|
||||
};
|
||||
if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) {
|
||||
var keepUpdating = true;
|
||||
if (! System.getDeviceSettings().phoneConnected) {
|
||||
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);
|
||||
}
|
||||
} 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);
|
||||
}
|
||||
} else {
|
||||
var url = Properties.getValue("api_url") + "/states/" + mIdentifier;
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem getState() URL=" + url);
|
||||
@ -128,11 +171,17 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
options,
|
||||
method(:onReturnGetState)
|
||||
);
|
||||
} else {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
// The update is called by onReturnGetState() instead
|
||||
keepUpdating = false;
|
||||
}
|
||||
// On temporary failure, keep the updating going.
|
||||
if (keepUpdating) {
|
||||
// Need to avoid an infinite loop where the pushed ErrorView does not appear before getState() is called again
|
||||
// and the call stack overflows. So continue the call chain from somewhere asynchronous.
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -143,20 +192,26 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: " + responseCode);
|
||||
System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Data: " + data);
|
||||
}
|
||||
if (responseCode == Communications.BLE_QUEUE_FULL) {
|
||||
if (responseCode == Communications.BLE_HOST_TIMEOUT || responseCode == Communications.BLE_CONNECTION_UNAVAILABLE) {
|
||||
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);
|
||||
} 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);
|
||||
} 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);
|
||||
} else if (responseCode == 404) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: 404, page not found. Check API URL setting.");
|
||||
}
|
||||
var cw = WatchUi.getCurrentView();
|
||||
if (!(cw[0] instanceof ErrorView)) {
|
||||
// Avoid pushing multiple ErrorViews
|
||||
WatchUi.pushView(new ErrorView(strApiUrlNotFound), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strApiUrlNotFound), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
} else if (responseCode == 200) {
|
||||
var state;
|
||||
var d = data as Lang.Array;
|
||||
@ -186,7 +241,21 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
},
|
||||
:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
|
||||
};
|
||||
if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) {
|
||||
if (! System.getDeviceSettings().phoneConnected) {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem getState(): No Phone connection, skipping API call.");
|
||||
}
|
||||
// Toggle the UI back
|
||||
setEnabled(!isEnabled());
|
||||
WatchUi.pushView(new ErrorView(strNoPhone + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
} 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);
|
||||
} else {
|
||||
// Updated SDK and got a new error
|
||||
// ERROR: venu: Cannot find symbol ':substring' on type 'PolyType<Null or $.Toybox.Lang.Object>'.
|
||||
var id = mIdentifier as Lang.String;
|
||||
@ -208,11 +277,6 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
options,
|
||||
method(:onReturnSetState)
|
||||
);
|
||||
} else {
|
||||
if (Globals.scDebug) {
|
||||
System.println("HomeAssistantToggleMenuItem setState(): No Internet connection, skipping API call.");
|
||||
}
|
||||
WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -81,7 +81,7 @@ languages: list[tuple[str, str, str]] = [
|
||||
langLength = len(languages)
|
||||
|
||||
exceptionIds: list[str] = ["AppName", "AppVersionTitle"]
|
||||
titleIds: list[str] = ["setMode", "tapIcon"]
|
||||
titleIds: list[str] = []
|
||||
|
||||
i = 1
|
||||
with open("./resources/strings/strings.xml", "r") as f:
|
||||
|
Reference in New Issue
Block a user