Added 54 devices
Added vibrate knowledgement Fall back to a home made alert if no toast or vibrate Support for 80 devices, 54 new ones added
12
HomeAssistant.code-workspace
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
},
|
||||
{
|
||||
"name": "abc",
|
||||
"path": "../blah/abc"
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
}
|
@ -48,14 +48,18 @@ original = (96, 48, 24)
|
||||
lookup = {
|
||||
# Doub Sing Half
|
||||
# 0 1 2
|
||||
# 416: (96, 48, 24),
|
||||
390: (90, 46, 23),
|
||||
360: (84, 42, 21),
|
||||
320: (74, 38, 19),
|
||||
280: (64, 32, 16),
|
||||
260: (60, 30, 15),
|
||||
240: (56, 28, 14),
|
||||
218: (50, 26, 13),
|
||||
454: (106, 53, 27),
|
||||
# 416: ( 96, 48, 24),
|
||||
390: ( 90, 46, 23),
|
||||
360: ( 84, 42, 21),
|
||||
320: ( 74, 38, 19),
|
||||
280: ( 64, 32, 16),
|
||||
260: ( 60, 30, 15),
|
||||
240: ( 56, 28, 14),
|
||||
218: ( 50, 26, 13),
|
||||
208: ( 48, 24, 12),
|
||||
176: ( 42, 21, 11),
|
||||
156: ( 36, 18, 9)
|
||||
}
|
||||
|
||||
# Delete all but the original 48x48 icon directories
|
||||
@ -67,6 +71,8 @@ for entry in os.listdir("."):
|
||||
for screen_size, icon_sizes in lookup.items():
|
||||
output_dir = output_dir_prefix + str(icon_sizes[Sing])
|
||||
print("\nCreate directory:", output_dir)
|
||||
if os.path.exists(output_dir) and os.path.isdir(output_dir):
|
||||
shutil.rmtree(output_dir)
|
||||
os.makedirs(output_dir)
|
||||
for entry in os.listdir(input_dir):
|
||||
if entry.endswith(".svg"):
|
||||
|
96
manifest.xml
@ -30,19 +30,100 @@
|
||||
"Monkey C: Edit Products" - Lets you add or remove any product
|
||||
-->
|
||||
<iq:products>
|
||||
<!--
|
||||
Device Information & References:
|
||||
* https://developer.garmin.com/connect-iq/compatible-devices/
|
||||
* https://developer.garmin.com/connect-iq/reference-guides/devices-reference/#epix%E2%84%A2progen251mmtactix%C2%AE7%E2%80%93amolededition
|
||||
-->
|
||||
|
||||
<!-- Screen Size 390x390 launcher icon size 70x70 -->
|
||||
<iq:product id="approachs7042mm"/>
|
||||
<!-- Screen Size 454x454 launcher icon size 80x80 -->
|
||||
<iq:product id="approachs7047mm"/>
|
||||
<!-- Screen Size 176x176 launcher icon size 62x62 -->
|
||||
<iq:product id="descentg1"/>
|
||||
<!-- Screen Size 280x280 launcher icon size 40x40 -->
|
||||
<iq:product id="descentmk2"/>
|
||||
<!-- Screen Size 240x240 launcher icon size 40x40 -->
|
||||
<iq:product id="descentmk2s"/>
|
||||
<!-- Screen Size 416x416 launcher icon size 70x70 -->
|
||||
<iq:product id="d2airx10"/>
|
||||
<!-- Screen Size 416x416 launcher icon size 60x60 -->
|
||||
<iq:product id="d2mach1"/>
|
||||
<!-- Screen Size 282x470 launcher icon size 36x36 -->
|
||||
<iq:product id="edge1030"/>
|
||||
<iq:product id="edge1030bontrager"/>
|
||||
<iq:product id="edge1030plus"/>
|
||||
<!-- Screen Size 282x470 launcher icon size 40x40 -->
|
||||
<iq:product id="edge1040"/>
|
||||
<!-- Screen Size 246x322 launcher icon size 35x35 -->
|
||||
<iq:product id="edge530"/>
|
||||
<iq:product id="edge830"/>
|
||||
<!-- Screen Size 240x400 launcher icon size 36x36 -->
|
||||
<iq:product id="edgeexplore2"/>
|
||||
<!-- Screen Size 280x280 launcher icon size 40x40 -->
|
||||
<iq:product id="enduro"/>
|
||||
<iq:product id="epix2"/>
|
||||
<!-- Screen Size 390x390 launcher icon size 60x60 -->
|
||||
<iq:product id="epix2pro42mm"/>
|
||||
<iq:product id="epix2pro47mm"/>
|
||||
<!-- Screen Size 454x454 launcher icon size 60x60 -->
|
||||
<iq:product id="epix2pro51mm"/>
|
||||
<!-- Screen Size 240x240 launcher icon size 40x40 -->
|
||||
<iq:product id="fenix5plus"/>
|
||||
<iq:product id="fenix5splus"/>
|
||||
<iq:product id="fenix5xplus"/>
|
||||
<!-- Screen Size 260x260 launcher icon size 40x40 -->
|
||||
<iq:product id="fenix6"/>
|
||||
<iq:product id="fenix6pro"/>
|
||||
<!-- Screen Size 240x240 launcher icon size 40x40 -->
|
||||
<iq:product id="fenix6s"/>
|
||||
<iq:product id="fenix6spro"/>
|
||||
<!-- Screen Size 280x280 launcher icon size 40x40 -->
|
||||
<iq:product id="fenix6xpro"/>
|
||||
<!-- Screen Size 260x260 launcher icon size 40x40 -->
|
||||
<iq:product id="fenix7"/>
|
||||
<!-- Screen Size 260x260 launcher icon size 40x40 -->
|
||||
<iq:product id="fenix7pro"/>
|
||||
<iq:product id="fenix7pronowifi"/>
|
||||
<!-- Screen Size 240x240 launcher icon size 40x40 -->
|
||||
<iq:product id="fenix7s"/>
|
||||
<!-- Screen Size 240x240 launcher icon size 40x40 -->
|
||||
<iq:product id="fenix7spro"/>
|
||||
<!-- Screen Size 280x280 launcher icon size 40x40 -->
|
||||
<iq:product id="fenix7x"/>
|
||||
<!-- Screen Size 280x280 launcher icon size 40x40 -->
|
||||
<iq:product id="fenix7xpro"/>
|
||||
<iq:product id="fenix7xpronowifi"/>
|
||||
<!-- Screen Size 240x240 launcher icon size 40x40 -->
|
||||
<iq:product id="fr245"/>
|
||||
<iq:product id="fr245m"/>
|
||||
<!-- Screen Size 260x260 launcher icon size 40x40 -->
|
||||
<iq:product id="fr255"/>
|
||||
<iq:product id="fr255m"/>
|
||||
<!-- Screen Size 218x218 launcher icon size 40x40 -->
|
||||
<iq:product id="fr255s"/>
|
||||
<iq:product id="fr255sm"/>
|
||||
<!-- Screen Size 416x416 launcher icon size 60x60 -->
|
||||
<iq:product id="fr265"/>
|
||||
<iq:product id="fr265s"/>
|
||||
<!-- Screen Size 208x208 launcher icon size 35x35 -->
|
||||
<iq:product id="fr55"/>
|
||||
<!-- Screen Size 240x240 launcher icon size 40x40 -->
|
||||
<iq:product id="fr745"/>
|
||||
<iq:product id="fr945"/>
|
||||
<iq:product id="fr945lte"/>
|
||||
<!-- Screen Size 260x260 launcher icon size 40x40 -->
|
||||
<iq:product id="fr955"/>
|
||||
<!-- Screen Size 454x454 launcher icon size 65x65 -->
|
||||
<iq:product id="fr965"/>
|
||||
<!-- Screen Size 176x176 launcher icon size 62x62 -->
|
||||
<iq:product id="instinct2"/>
|
||||
<!-- Screen Size 163x156 launcher icon size 54x54 -->
|
||||
<iq:product id="instinct2s"/>
|
||||
<!-- Screen Size 176x176 launcher icon size 62x62 -->
|
||||
<iq:product id="instinct2x"/>
|
||||
<iq:product id="instinctcrossover"/>
|
||||
<!-- Screen Size 218x218 launcher icon size 30x30 -->
|
||||
<iq:product id="legacyherocaptainmarvel"/>
|
||||
<!-- Screen Size 260x260 launcher icon size 35x35 -->
|
||||
@ -50,6 +131,15 @@
|
||||
<iq:product id="legacysagadarthvader"/>
|
||||
<!-- Screen Size 218x218 launcher icon size 30x30 -->
|
||||
<iq:product id="legacysagarey"/>
|
||||
<!-- Screen Size 240x240 launcher icon size 40x40 -->
|
||||
<iq:product id="marqadventurer"/>
|
||||
<iq:product id="marqathlete"/>
|
||||
<iq:product id="marqaviator"/>
|
||||
<iq:product id="marqcaptain"/>
|
||||
<iq:product id="marqcommander"/>
|
||||
<iq:product id="marqdriver"/>
|
||||
<iq:product id="marqexpedition"/>
|
||||
<iq:product id="marqgolfer"/>
|
||||
<!-- Screen Size 390x390 launcher icon size 60x60 -->
|
||||
<iq:product id="marq2"/>
|
||||
<iq:product id="marq2aviator"/>
|
||||
@ -66,10 +156,16 @@
|
||||
<!-- Screen Size 320x360 launcher icon size 40x40 -->
|
||||
<iq:product id="venusq2"/>
|
||||
<iq:product id="venusq2m"/>
|
||||
<!-- Screen Size 454x454 launcher icon size 70x70 -->
|
||||
<iq:product id="venu3"/>
|
||||
<!-- Screen Size 390x390 launcher icon size 70x70 -->
|
||||
<iq:product id="venu3s"/>
|
||||
<!-- Screen Size 260x260 launcher icon size 35x35 -->
|
||||
<iq:product id="vivoactive4"/>
|
||||
<!-- Screen Size 218x218 launcher icon size 30x30 -->
|
||||
<iq:product id="vivoactive4s"/>
|
||||
<!-- Screen Size 390x390 launcher icon size 70x70 -->
|
||||
<iq:product id="vivoactive5"/>
|
||||
</iq:products>
|
||||
<!--
|
||||
Use "Monkey C: Edit Permissions" from the Visual Studio Code command
|
||||
|
100
monkey.jungle
@ -18,31 +18,110 @@
|
||||
|
||||
project.manifest = manifest.xml
|
||||
|
||||
# Device Reference
|
||||
# https://developer.garmin.com/connect-iq/reference-guides/devices-reference/
|
||||
#
|
||||
# Widget launcher icon, multiple resolutions
|
||||
# https://forums.garmin.com/developer/connect-iq/f/discussion/255433/widget-launcher-icon-multiple-resolutions/1563305
|
||||
#
|
||||
# Use the online SVG converter to write out PNGs from "resources\drawables\launcher.svg" by changing
|
||||
# the 'width' and 'height' attributes of the SVG.
|
||||
# https://svgtopng.com/
|
||||
|
||||
#
|
||||
# The icons need to scale as a ratio of screen size 48:416 pixels
|
||||
#
|
||||
# Icon 48 45 42 37 32 30 28 25
|
||||
# Screen 416 390 360 320 280 260 240 218
|
||||
# Icon 53 48 46 42 37 32 30 28 26 24 21 18
|
||||
# Screen 454 416 390 360 320 280 260 240 218 208 176 156
|
||||
|
||||
# Screen Size 390x390 launcher icon size 70x70
|
||||
approachs7042mm.resourcePath = $(approachs7042mm.resourcePath);resources-launcher-70-70;resources-icons-46
|
||||
# Screen Size 454x454 launcher icon size 80x80
|
||||
approachs7047mm.resourcePath = $(approachs7047mm.resourcePath);resources-launcher-80-80;resources-icons-53
|
||||
# Screen Size 176x176 launcher icon size 62x62
|
||||
descentg1.resourcePath = $(descentg1.resourcePath);resources-launcher-62-62;resources-icons-21
|
||||
# Screen Size 280x280 launcher icon size 40x40
|
||||
descentmk2.resourcePath = $(descentmk2.resourcePath);resources-launcher-40-40;resources-icons-32
|
||||
# Screen Size 240x240 launcher icon size 40x40
|
||||
descentmk2s.resourcePath = $(descentmk2s.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
# Screen Size 282x470 launcher icon size 36x36
|
||||
edge1030.resourcePath = $(descentmk2s.resourcePath);resources-launcher-36-36;resources-icons-32
|
||||
edge1030bontrager.resourcePath = $(edge1030bontrager.resourcePath);resources-launcher-36-36;resources-icons-32
|
||||
edge1030plus.resourcePath = $(edge1030plus.resourcePath);resources-launcher-36-36;resources-icons-32
|
||||
# Screen Size 282x470 launcher icon size 40x40
|
||||
edge1040.resourcePath = $(edge1040.resourcePath);resources-launcher-40-40;resources-icons-32
|
||||
# Screen Size 246x322 launcher icon size 35x35
|
||||
edge530.resourcePath = $(edge530.resourcePath);resources-launcher-35-35;resources-icons-28
|
||||
edge830.resourcePath = $(edge830.resourcePath);resources-launcher-35-35;resources-icons-28
|
||||
# Screen Size 240x400 launcher icon size 36x36
|
||||
edgeexplore2.resourcePath = $(edgeexplore2.resourcePath);resources-launcher-36-36;resources-icons-28
|
||||
# Screen Size 280x280 launcher icon size 40x40
|
||||
enduro.resourcePath = $(enduro.resourcePath);resources-launcher-40-40;resources-icons-32
|
||||
# Screen Size 416x416 launcher icon size 70x70
|
||||
d2airx10.resourcePath = $(d2airx10.resourcePath);resources-launcher-70-70;resources-icons-48
|
||||
# Screen Size 416x416 launcher icon size 60x60
|
||||
d2mach1.resourcePath = $(d2mach1.resourcePath);resources-launcher-60-60;resources-icons-48
|
||||
# Screen Size 416x416 launcher icon size 60x60
|
||||
epix2.resourcePath = $(epix2.resourcePath);resources-launcher-60-60;resources-icons-48
|
||||
# Screen Size 390x390 launcher icon size 60x60
|
||||
epix2pro42mm.resourcePath = $(epix2pro42mm.resourcePath);resources-launcher-60-60;resources-icons-46
|
||||
epix2pro47mm.resourcePath = $(epix2pro47mm.resourcePath);resources-launcher-60-60;resources-icons-46
|
||||
# Screen Size 454x454 launcher icon size 60x60
|
||||
epix2pro51mm.resourcePath = $(epix2pro51mm.resourcePath);resources-launcher-60-60;resources-icons-53
|
||||
# Screen Size 240x240 launcher icon size 40x40
|
||||
fenix5plus.resourcePath = $(fenix5plus.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
fenix5splus.resourcePath = $(fenix5splus.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
fenix5xplus.resourcePath = $(fenix5xplus.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
# Screen Size 260x260 launcher icon size 40x40
|
||||
fenix6.resourcePath = $(fenix6.resourcePath);resources-launcher-40-40;resources-icons-30
|
||||
fenix6pro.resourcePath = $(fenix6pro.resourcePath);resources-launcher-40-40;resources-icons-30
|
||||
# Screen Size 240x240 launcher icon size 40x40
|
||||
fenix6s.resourcePath = $(fenix6s.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
fenix6spro.resourcePath = $(fenix6spro.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
# Screen Size 280x280 launcher icon size 40x40
|
||||
fenix6xpro.resourcePath = $(fenix6xpro.resourcePath);resources-launcher-40-40;resources-icons-32
|
||||
# Screen Size 260x260 launcher icon size 40x40
|
||||
fenix7.resourcePath = $(fenix7.resourcePath);resources-launcher-40-40;resources-icons-30
|
||||
# Screen Size 260x260 launcher icon size 40x40
|
||||
fenix7pro.resourcePath = $(fenix7pro.resourcePath);resources-launcher-40-40;resources-icons-30
|
||||
fenix7pronowifi.resourcePath = $(fenix7pronowifi.resourcePath);resources-launcher-40-40;resources-icons-30
|
||||
# Screen Size 240x240 launcher icon size 40x40
|
||||
fenix7s.resourcePath = $(fenix7s.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
# Screen Size 240x240 launcher icon size 40x40
|
||||
fenix7spro.resourcePath = $(fenix7spro.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
# Screen Size 280x280 launcher icon size 40x40
|
||||
fenix7x.resourcePath = $(fenix7x.resourcePath);resources-launcher-40-40;resources-icons-32
|
||||
# Screen Size 280x280 launcher icon size 40x40
|
||||
fenix7xpro.resourcePath = $(fenix7xpro.resourcePath);resources-launcher-40-40;resources-icons-32
|
||||
fenix7xpronowifi.resourcePath = $(fenix7xpronowifi.resourcePath);resources-launcher-40-40;resources-icons-32
|
||||
# Screen Size 240x240 launcher icon size 40x40
|
||||
fr245.resourcePath = $(fr245.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
fr245m.resourcePath = $(fr245m.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
# Screen Size 260x260 launcher icon size 40x40
|
||||
fr255.resourcePath = $(fr255.resourcePath);resources-launcher-40-40;resources-icons-30
|
||||
fr255m.resourcePath = $(fr255m.resourcePath);resources-launcher-40-40;resources-icons-30
|
||||
# Screen Size 218x218 launcher icon size 40x40
|
||||
fr255s.resourcePath = $(fr255s.resourcePath);resources-launcher-40-40;resources-icons-26
|
||||
fr255sm.resourcePath = $(fr255sm.resourcePath);resources-launcher-40-40;resources-icons-26
|
||||
# Screen Size 416x416 launcher icon size 60x60
|
||||
fr265.resourcePath = $(fr265.resourcePath);resources-launcher-60-60;resources-icons-48
|
||||
fr265s.resourcePath = $(fr265s.resourcePath);resources-launcher-60-60;resources-icons-48
|
||||
# Screen Size 208x208 launcher icon size 35x35
|
||||
fr55.resourcePath = $(fr55.resourcePath);resources-launcher-35-35;resources-icons-24
|
||||
# Screen Size 240x240 launcher icon size 40x40
|
||||
fr745.resourcePath = $(fr745.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
fr945.resourcePath = $(fr945.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
fr945lte.resourcePath = $(fr945lte.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
# Screen Size 260x260 launcher icon size 40x40
|
||||
fr955.resourcePath = $(fr955.resourcePath);resources-launcher-40-40;resources-icons-30
|
||||
# Screen Size 454x454 launcher icon size 65x65
|
||||
fr965.resourcePath = $(fr965.resourcePath);resources-launcher-65-65;resources-icons-53
|
||||
# Screen Size 176x176 launcher icon size 62x62
|
||||
instinct2.resourcePath = $(instinct2.resourcePath);resources-launcher-62-62;resources-icons-21
|
||||
# Screen Size 163x156 launcher icon size 54x54
|
||||
instinct2s.resourcePath = $(instinct2s.resourcePath);resources-launcher-54-54;resources-icons-18
|
||||
# Screen Size 176x176 launcher icon size 62x62
|
||||
instinct2x.resourcePath = $(instinct2x.resourcePath);resources-launcher-62-62;resources-icons-21
|
||||
instinctcrossover.resourcePath = $(instinctcrossover.resourcePath);resources-launcher-62-62;resources-icons-21
|
||||
# Screen Size 218x218 launcher icon size 30x30
|
||||
legacyherocaptainmarvel.resourcePath = $(legacyherocaptainmarvel.resourcePath);resources-launcher-30-30;resources-icons-26
|
||||
# Screen Size 260x260 launcher icon size 35x35
|
||||
@ -50,6 +129,15 @@ legacyherofirstavenger.resourcePath = $(legacyherofirstavenger.resourcePath);res
|
||||
legacysagadarthvader.resourcePath = $(legacysagadarthvader.resourcePath);resources-launcher-35-35;resources-icons-30
|
||||
# Screen Size 218x218 launcher icon size 30x30
|
||||
legacysagarey.resourcePath = $(legacysagarey.resourcePath);resources-launcher-30-30;resources-icons-26
|
||||
# Screen Size 240x240 launcher icon size 40x40
|
||||
marqadventurer.resourcePath = $(marqadventurer.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
marqathlete.resourcePath = $(marqathlete.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
marqaviator.resourcePath = $(marqaviator.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
marqcaptain.resourcePath = $(marqcaptain.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
marqcommander.resourcePath = $(marqcommander.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
marqdriver.resourcePath = $(marqdriver.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
marqexpedition.resourcePath = $(marqexpedition.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
marqgolfer.resourcePath = $(marqgolfer.resourcePath);resources-launcher-40-40;resources-icons-28
|
||||
# Screen Size 390x390 launcher icon size 60x60
|
||||
marq2.resourcePath = $(marq2.resourcePath);resources-launcher-60-60;resources-icons-46
|
||||
marq2aviator.resourcePath = $(marq2aviator.resourcePath);resources-launcher-60-60;resources-icons-46
|
||||
@ -66,7 +154,13 @@ venusqm.resourcePath = $(venusqm.resourcePath);resources-launcher-36-36;resource
|
||||
# Screen Size 320x360 launcher icon size 40x40
|
||||
venusq2.resourcePath = $(venusq2.resourcePath);resources-launcher-40-40;resources-icons-38
|
||||
venusq2m.resourcePath = $(venusq2m.resourcePath);resources-launcher-40-40;resources-icons-38
|
||||
# Screen Size 454x454 launcher icon size 70x70
|
||||
venu3.resourcePath = $(venu3.resourcePath);resources-launcher-70-70;resources-icons-53
|
||||
# Screen Size 390x390 launcher icon size 70x70
|
||||
venu3s.resourcePath = $(venu3s.resourcePath);resources-launcher-70-70;resources-icons-46
|
||||
# Screen Size 260x260 launcher icon size 35x35
|
||||
vivoactive4.resourcePath = $(vivoactive4.resourcePath);resources-launcher-35-35;resources-icons-30
|
||||
# Screen Size 218x218 launcher icon size 30x30
|
||||
vivoactive4s.resourcePath = $(vivoactive4s.resourcePath);resources-launcher-30-30;resources-icons-26
|
||||
# Screen Size 390x390 launcher icon size 70x70
|
||||
vivoactive5.resourcePath = $(vivoactive5.resourcePath);resources-launcher-70-70;resources-icons-46
|
||||
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">قائمة طعام</string>
|
||||
<string id="NoInternet">لا يوجد اتصال بالإنترنت</string>
|
||||
<string id="NoMenu">خطأ في إحضار القائمة</string>
|
||||
<string id="NoAPIKey">لا يوجد مفتاح API في إعدادات التطبيق</string>
|
||||
<string id="NoApiUrl">لا يوجد عنوان URL لواجهة برمجة التطبيقات في إعدادات التطبيق</string>
|
||||
<string id="NoConfigUrl">لا يوجد عنوان URL للتكوين في إعدادات التطبيق</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Меню</string>
|
||||
<string id="NoInternet">Няма интернет връзка</string>
|
||||
<string id="NoMenu">Грешка при извличане на менюто</string>
|
||||
<string id="NoAPIKey">Няма API ключ в настройките на приложението</string>
|
||||
<string id="NoApiUrl">Няма URL адрес на API в настройките на приложението</string>
|
||||
<string id="NoConfigUrl">Няма конфигурационен URL адрес в настройките на приложението</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Jídelní lístek</string>
|
||||
<string id="NoInternet">Žádné internetové připojení</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>
|
||||
<string id="NoConfigUrl">V nastavení aplikace není žádná konfigurační URL</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoInternet">Ingen internetforbindelse</string>
|
||||
<string id="NoMenu">Fejl ved menuhentning</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>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Speisekarte</string>
|
||||
<string id="NoInternet">Keine 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>
|
||||
<string id="NoConfigUrl">Keine Konfigurations-URL in den Anwendungseinstellungen</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoInternet">Geen internet verbinding</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>
|
||||
<string id="NoConfigUrl">Geen configuratie-URL in de applicatie-instellingen</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Menüü</string>
|
||||
<string id="NoInternet">Interneti-ühendus puudub</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>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Valikko</string>
|
||||
<string id="NoInternet">Ei Internet-yhteyttä</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>
|
||||
<string id="NoConfigUrl">Sovelluksen asetuksissa ei ole konfigurointi-URL-osoitetta</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoInternet">Pas de 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>
|
||||
<string id="NoConfigUrl">Aucune URL de configuration dans les paramètres de l'application</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Μενού</string>
|
||||
<string id="NoInternet">Δεν υπάρχει σύνδεση στο διαδίκτυο</string>
|
||||
<string id="NoMenu">Σφάλμα ανάκτησης μενού</string>
|
||||
<string id="NoAPIKey">Δεν υπάρχει κλειδί API στις ρυθμίσεις της εφαρμογής</string>
|
||||
<string id="NoApiUrl">Δεν υπάρχει URL API στις ρυθμίσεις της εφαρμογής</string>
|
||||
<string id="NoConfigUrl">Δεν υπάρχει διεύθυνση URL διαμόρφωσης στις ρυθμίσεις της εφαρμογής</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">תַפרִיט</string>
|
||||
<string id="NoInternet">אין חיבור אינטרנט</string>
|
||||
<string id="NoMenu">שגיאת אחזור תפריט</string>
|
||||
<string id="NoAPIKey">אין מפתח API בהגדרות האפליקציה</string>
|
||||
<string id="NoApiUrl">אין כתובת API בהגדרות האפליקציה</string>
|
||||
<string id="NoConfigUrl">אין כתובת אתר תצורה בהגדרות האפליקציה</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Jelovnik</string>
|
||||
<string id="NoInternet">Nema internetske veze</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>
|
||||
<string id="NoConfigUrl">Nema konfiguracijskog URL-a u postavkama aplikacije</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Menü</string>
|
||||
<string id="NoInternet">Nincs internetkapcsolat</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>
|
||||
<string id="NoConfigUrl">Nincs konfigurációs URL az alkalmazás beállításai között</string>
|
||||
</strings>
|
20
resources-icons-18/drawables.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<!--
|
||||
|
||||
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.
|
||||
|
||||
J D Abbey & P A Abbey, 28 December 2022
|
||||
|
||||
References:
|
||||
* https://fonts.google.com/icons
|
||||
|
||||
-->
|
||||
|
||||
<drawables>
|
||||
<bitmap id="ErrorIcon" filename="error.svg"/>
|
||||
</drawables>
|
1
resources-icons-18/error.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="18" viewBox="0 0 48 48" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
|
After Width: | Height: | Size: 712 B |
20
resources-icons-21/drawables.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<!--
|
||||
|
||||
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.
|
||||
|
||||
J D Abbey & P A Abbey, 28 December 2022
|
||||
|
||||
References:
|
||||
* https://fonts.google.com/icons
|
||||
|
||||
-->
|
||||
|
||||
<drawables>
|
||||
<bitmap id="ErrorIcon" filename="error.svg"/>
|
||||
</drawables>
|
1
resources-icons-21/error.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="21" viewBox="0 0 48 48" width="21" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
|
After Width: | Height: | Size: 712 B |
20
resources-icons-24/drawables.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<!--
|
||||
|
||||
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.
|
||||
|
||||
J D Abbey & P A Abbey, 28 December 2022
|
||||
|
||||
References:
|
||||
* https://fonts.google.com/icons
|
||||
|
||||
-->
|
||||
|
||||
<drawables>
|
||||
<bitmap id="ErrorIcon" filename="error.svg"/>
|
||||
</drawables>
|
1
resources-icons-24/error.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="24" viewBox="0 0 48 48" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
|
After Width: | Height: | Size: 712 B |
20
resources-icons-53/drawables.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<!--
|
||||
|
||||
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.
|
||||
|
||||
J D Abbey & P A Abbey, 28 December 2022
|
||||
|
||||
References:
|
||||
* https://fonts.google.com/icons
|
||||
|
||||
-->
|
||||
|
||||
<drawables>
|
||||
<bitmap id="ErrorIcon" filename="error.svg"/>
|
||||
</drawables>
|
1
resources-icons-53/error.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="53" viewBox="0 0 48 48" width="53" xmlns="http://www.w3.org/2000/svg"><path d="M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z" fill="red" stroke="red"/></svg>
|
After Width: | Height: | Size: 712 B |
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoInternet">Tidak ada 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>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Menù</string>
|
||||
<string id="NoInternet">Nessuna 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>
|
||||
<string id="NoConfigUrl">Nessun URL di configurazione nelle impostazioni dell'applicazione</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">メニュー</string>
|
||||
<string id="NoInternet">インターネット接続なし</string>
|
||||
<string id="NoMenu">メニューフェッチエラー</string>
|
||||
<string id="NoAPIKey">アプリケーション設定に API キーがありません</string>
|
||||
<string id="NoApiUrl">アプリケーション設定に API URL がありません</string>
|
||||
<string id="NoConfigUrl">アプリケーション設定に構成 URL がありません</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">메뉴</string>
|
||||
<string id="NoInternet">인터넷에 연결되지 않음</string>
|
||||
<string id="NoMenu">메뉴 가져오기 오류</string>
|
||||
<string id="NoAPIKey">애플리케이션 설정에 API 키가 없습니다.</string>
|
||||
<string id="NoApiUrl">애플리케이션 설정에 API URL이 없습니다.</string>
|
||||
<string id="NoConfigUrl">애플리케이션 설정에 구성 URL이 없습니다.</string>
|
||||
</strings>
|
17
resources-launcher-25-25 - DELETE/drawables.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
|
||||
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, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
<drawables>
|
||||
<bitmap id="LauncherIcon" filename="launcher.png" />
|
||||
</drawables>
|
BIN
resources-launcher-25-25 - DELETE/launcher.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
17
resources-launcher-54-54/drawables.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
|
||||
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, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
<drawables>
|
||||
<bitmap id="LauncherIcon" filename="launcher.png" />
|
||||
</drawables>
|
BIN
resources-launcher-54-54/launcher.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
17
resources-launcher-62-62/drawables.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
|
||||
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, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
<drawables>
|
||||
<bitmap id="LauncherIcon" filename="launcher.png" />
|
||||
</drawables>
|
BIN
resources-launcher-62-62/launcher.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
17
resources-launcher-65-65/drawables.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
|
||||
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, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
<drawables>
|
||||
<bitmap id="LauncherIcon" filename="launcher.png" />
|
||||
</drawables>
|
BIN
resources-launcher-65-65/launcher.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
17
resources-launcher-80-80/drawables.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
|
||||
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, 31 October 2023
|
||||
|
||||
-->
|
||||
|
||||
<drawables>
|
||||
<bitmap id="LauncherIcon" filename="launcher.png" />
|
||||
</drawables>
|
BIN
resources-launcher-80-80/launcher.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Izvēlne</string>
|
||||
<string id="NoInternet">Nav interneta savienojuma</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>
|
||||
<string id="NoConfigUrl">Lietojumprogrammas iestatījumos nav konfigurācijas URL</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Meniu</string>
|
||||
<string id="NoInternet">Nėra interneto ryšio</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>
|
||||
<string id="NoConfigUrl">Programos nustatymuose nėra konfigūracijos URL</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Meny</string>
|
||||
<string id="NoInternet">Ingen Internett-tilkobling</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>
|
||||
<string id="NoConfigUrl">Ingen konfigurasjons-URL i applikasjonsinnstillingene</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoInternet">Brak połączenia z internetem</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>
|
||||
<string id="NoConfigUrl">Brak adresu URL konfiguracji w ustawieniach aplikacji</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Cardápio</string>
|
||||
<string id="NoInternet">Sem 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>
|
||||
<string id="NoConfigUrl">Nenhum URL de configuração nas configurações do aplicativo</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Meniul</string>
|
||||
<string id="NoInternet">Fără conexiune 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>
|
||||
<string id="NoConfigUrl">Nicio adresă URL de configurare în setările aplicației</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Ponuka</string>
|
||||
<string id="NoInternet">Žiadne 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>
|
||||
<string id="NoConfigUrl">V nastaveniach aplikácie nie je žiadna konfiguračná URL</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">meni</string>
|
||||
<string id="NoInternet">Ni internetne povezave</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>
|
||||
<string id="NoConfigUrl">V nastavitvah aplikacije ni konfiguracijskega URL-ja</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Menú</string>
|
||||
<string id="NoInternet">Sin 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>
|
||||
<string id="NoConfigUrl">No hay URL de configuración en la configuración de la aplicación.</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Meny</string>
|
||||
<string id="NoInternet">Ingen internetanslutning</string>
|
||||
<string id="NoMenu">Menyhämtningsfel</string>
|
||||
<string id="NoAPIKey">Ingen API-nyckel i applikationsinställningarna</string>
|
||||
<string id="NoApiUrl">Ingen API-URL i applikationsinställningarna</string>
|
||||
<string id="NoConfigUrl">Ingen konfigurations-URL i programinställningarna</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">เมนู</string>
|
||||
<string id="NoInternet">ไม่มีการเชื่อมต่ออินเทอร์เน็ต</string>
|
||||
<string id="NoMenu">เมนูดึงข้อมูลผิดพลาด</string>
|
||||
<string id="NoAPIKey">ไม่มีคีย์ API ในการตั้งค่าแอปพลิเคชัน</string>
|
||||
<string id="NoApiUrl">ไม่มี URL API ในการตั้งค่าแอปพลิเคชัน</string>
|
||||
<string id="NoConfigUrl">ไม่มี URL การกำหนดค่าในการตั้งค่าแอปพลิเคชัน</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Menü</string>
|
||||
<string id="NoInternet">İnternet bağlantısı yok</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>
|
||||
<string id="NoConfigUrl">Uygulama ayarlarında yapılandırma URL'si yok</string>
|
||||
</strings>
|
@ -15,7 +15,7 @@
|
||||
|
||||
<!--
|
||||
Generated by Google Translate: English to Ukrainian
|
||||
Створено Google Translate з англійської
|
||||
Згенеровано Google Translate з англійської
|
||||
-->
|
||||
|
||||
<strings>
|
||||
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Меню</string>
|
||||
<string id="NoInternet">Немає підключення до Інтернету</string>
|
||||
<string id="NoMenu">Помилка вибірки меню</string>
|
||||
<string id="NoAPIKey">У налаштуваннях програми немає ключа API</string>
|
||||
<string id="NoApiUrl">У налаштуваннях програми немає URL-адреси API</string>
|
||||
<string id="NoConfigUrl">У налаштуваннях програми немає URL-адреси конфігурації</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Thực đơn</string>
|
||||
<string id="NoInternet">Không có 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>
|
||||
<string id="NoConfigUrl">Không có URL cấu hình trong cài đặt ứng dụng</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">菜单</string>
|
||||
<string id="NoInternet">没有网络连接</string>
|
||||
<string id="NoMenu">菜单获取错误</string>
|
||||
<string id="NoAPIKey">应用程序设置中没有 API 密钥</string>
|
||||
<string id="NoApiUrl">应用程序设置中没有 API URL</string>
|
||||
<string id="NoConfigUrl">应用程序设置中没有配置 URL</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">選單</string>
|
||||
<string id="NoInternet">沒有網路連線</string>
|
||||
<string id="NoMenu">選單取得錯誤</string>
|
||||
<string id="NoAPIKey">應用程式設定中沒有 API 金鑰</string>
|
||||
<string id="NoApiUrl">應用程式設定中沒有 API URL</string>
|
||||
<string id="NoConfigUrl">應用程式設定中沒有配置 URL</string>
|
||||
</strings>
|
@ -26,4 +26,7 @@
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoInternet">Tiada 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>
|
||||
<string id="NoConfigUrl">Tiada URL konfigurasi dalam tetapan aplikasi</string>
|
||||
</strings>
|
@ -20,4 +20,7 @@
|
||||
<string id="MenuItemMenu">Menu</string>
|
||||
<string id="NoInternet">No 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>
|
||||
<string id="NoConfigUrl">No configuration URL in the application settings</string>
|
||||
</strings>
|
||||
|
@ -23,7 +23,7 @@ using Toybox.Lang;
|
||||
class Globals {
|
||||
// Enable printing of messages to the debug console (don't make this a Property
|
||||
// as the messages can't be read from a watch!)
|
||||
static const debug = false;
|
||||
static const debug = true;
|
||||
static const updateInterval = 5; // seconds
|
||||
static const alertTimeout = 2000; // ms
|
||||
static const tapTimeout = 1000; // ms
|
||||
|
@ -26,20 +26,25 @@ using Toybox.Timer;
|
||||
|
||||
class HomeAssistantApp extends Application.AppBase {
|
||||
hidden var haMenu;
|
||||
hidden var strNoInternet as Lang.String;
|
||||
hidden var strNoMenu as Lang.String;
|
||||
hidden var timer as Timer.Timer;
|
||||
hidden var strNoApiKey as Lang.String;
|
||||
hidden var strNoApiUrl as Lang.String;
|
||||
hidden var strNoConfigUrl as Lang.String;
|
||||
hidden var strNoInternet as Lang.String;
|
||||
hidden var strNoMenu as Lang.String;
|
||||
hidden var timer as Timer.Timer;
|
||||
|
||||
function initialize() {
|
||||
AppBase.initialize();
|
||||
strNoInternet = WatchUi.loadResource($.Rez.Strings.NoInternet);
|
||||
strNoMenu = WatchUi.loadResource($.Rez.Strings.NoMenu);
|
||||
timer = new Timer.Timer();
|
||||
strNoApiKey = WatchUi.loadResource($.Rez.Strings.NoAPIKey);
|
||||
strNoApiUrl = WatchUi.loadResource($.Rez.Strings.NoApiUrl);
|
||||
strNoConfigUrl = WatchUi.loadResource($.Rez.Strings.NoConfigUrl);
|
||||
strNoInternet = WatchUi.loadResource($.Rez.Strings.NoInternet);
|
||||
strNoMenu = WatchUi.loadResource($.Rez.Strings.NoMenu);
|
||||
timer = new Timer.Timer();
|
||||
}
|
||||
|
||||
// onStart() is called on application start up
|
||||
function onStart(state as Lang.Dictionary?) as Void {
|
||||
fetchMenuConfig();
|
||||
}
|
||||
|
||||
// onStop() is called when your application is exiting
|
||||
@ -51,7 +56,30 @@ class HomeAssistantApp extends Application.AppBase {
|
||||
|
||||
// Return the initial view of your application here
|
||||
function getInitialView() as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>? {
|
||||
return [new WatchUi.View(), new WatchUi.BehaviorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
if ((Properties.getValue("api_key") as Lang.String).length() == 0) {
|
||||
if (Globals.debug) {
|
||||
System.println("HomeAssistantMenuItem Note - execScript(): No API key in the application settings.");
|
||||
}
|
||||
return [new ErrorView(strNoApiKey + "."), new ErrorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
} else if ((Properties.getValue("api_url") as Lang.String).length() == 0) {
|
||||
if (Globals.debug) {
|
||||
System.println("HomeAssistantMenuItem Note - execScript(): No API URL in the application settings.");
|
||||
}
|
||||
return [new ErrorView(strNoApiUrl + "."), new ErrorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
} else if ((Properties.getValue("config_url") as Lang.String).length() == 0) {
|
||||
if (Globals.debug) {
|
||||
System.println("HomeAssistantMenuItem Note - execScript(): No configuration URL in the application settings.");
|
||||
}
|
||||
return [new ErrorView(strNoConfigUrl + "."), new ErrorDelegate()] as Lang.Array<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 {
|
||||
if (Globals.debug) {
|
||||
System.println("HomeAssistantApp Note - fetchMenuConfig(): No Internet connection, skipping API call.");
|
||||
}
|
||||
return [new ErrorView(strNoInternet + "."), new ErrorDelegate()] as Lang.Array<WatchUi.Views or WatchUi.InputDelegates>;
|
||||
}
|
||||
}
|
||||
|
||||
// Callback function after completing the GET request to fetch the configuration menu.
|
||||
@ -87,25 +115,12 @@ class HomeAssistantApp extends Application.AppBase {
|
||||
:method => Communications.HTTP_REQUEST_METHOD_GET,
|
||||
:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
|
||||
};
|
||||
if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) {
|
||||
Communications.makeWebRequest(
|
||||
Properties.getValue("config_url"),
|
||||
null,
|
||||
options,
|
||||
method(:onReturnFetchMenuConfig)
|
||||
);
|
||||
} else {
|
||||
if (Globals.debug) {
|
||||
System.println("HomeAssistantApp Note - fetchMenuConfig(): No Internet connection, skipping API call.");
|
||||
}
|
||||
new Alert({
|
||||
:timeout => Globals.alertTimeout,
|
||||
:font => Graphics.FONT_SYSTEM_TINY,
|
||||
:text => strNoInternet,
|
||||
:fgcolor => Graphics.COLOR_RED,
|
||||
:bgcolor => Graphics.COLOR_BLACK
|
||||
}).pushView(WatchUi.SLIDE_IMMEDIATE);
|
||||
}
|
||||
Communications.makeWebRequest(
|
||||
Properties.getValue("config_url"),
|
||||
null,
|
||||
options,
|
||||
method(:onReturnFetchMenuConfig)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -37,6 +37,7 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem {
|
||||
} or Null
|
||||
) {
|
||||
strNoInternet = WatchUi.loadResource($.Rez.Strings.NoInternet);
|
||||
|
||||
WatchUi.MenuItem.initialize(
|
||||
label,
|
||||
subLabel,
|
||||
@ -59,10 +60,28 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem {
|
||||
if (Globals.debug) {
|
||||
System.println("HomeAssistantMenuItem Note - onReturnExecScript(): Correct script executed.");
|
||||
}
|
||||
WatchUi.showToast(
|
||||
(d[i].get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String,
|
||||
null
|
||||
);
|
||||
if (WatchUi has :showToast) {
|
||||
WatchUi.showToast(
|
||||
(d[i].get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String,
|
||||
null
|
||||
);
|
||||
}
|
||||
if (Attention has :vibrate) {
|
||||
Attention.vibrate([
|
||||
new Attention.VibeProfile(50, 100), // On for 100ms
|
||||
new Attention.VibeProfile( 0, 100), // Off for 100ms
|
||||
new Attention.VibeProfile(50, 100) // On for 100ms
|
||||
]);
|
||||
}
|
||||
if (!(WatchUi has :showToast) && !(Attention has :vibrate)) {
|
||||
new Alert({
|
||||
:timeout => Globals.alertTimeout,
|
||||
:font => Graphics.FONT_MEDIUM,
|
||||
:text => (d[i].get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String,
|
||||
:fgcolor => Graphics.COLOR_WHITE,
|
||||
:bgcolor => Graphics.COLOR_BLACK
|
||||
}).pushView(WatchUi.SLIDE_IMMEDIATE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -77,10 +96,13 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem {
|
||||
:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
|
||||
};
|
||||
if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) {
|
||||
var url = Properties.getValue("api_url") + "/services/" + mIdentifier.substring(0, mIdentifier.find(".")) + "/" + mIdentifier.substring(mIdentifier.find(".")+1, null);
|
||||
// Updated SDK and got a new error
|
||||
// ERROR: venu: Cannot find symbol ':substring' on type 'PolyType<Null or $.Toybox.Lang.Object>'.
|
||||
var id = mIdentifier as Lang.String;
|
||||
var url = (Properties.getValue("api_url") as Lang.String) + "/services/" + id.substring(0, id.find(".")) + "/" + id.substring(id.find(".")+1, id.length());
|
||||
if (Globals.debug) {
|
||||
System.println("URL=" + url);
|
||||
System.println("mIdentifier=" + mIdentifier);
|
||||
System.println("HomeAssistantMenuItem execScript() URL=" + url);
|
||||
System.println("HomeAssistantMenuItem execScript() mIdentifier=" + mIdentifier);
|
||||
}
|
||||
Communications.makeWebRequest(
|
||||
url,
|
||||
@ -90,15 +112,9 @@ class HomeAssistantMenuItem extends WatchUi.MenuItem {
|
||||
);
|
||||
} else {
|
||||
if (Globals.debug) {
|
||||
System.println("HomeAssistantMenuItem Note - executeScript(): No Internet connection, skipping API call.");
|
||||
System.println("HomeAssistantMenuItem Note - execScript(): No Internet connection, skipping API call.");
|
||||
}
|
||||
new Alert({
|
||||
:timeout => Globals.alertTimeout,
|
||||
:font => Graphics.FONT_SYSTEM_TINY,
|
||||
:text => strNoInternet,
|
||||
:fgcolor => Graphics.COLOR_RED,
|
||||
:bgcolor => Graphics.COLOR_BLACK
|
||||
}).pushView(WatchUi.SLIDE_IMMEDIATE);
|
||||
WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) {
|
||||
var url = Properties.getValue("api_url") + "/states/" + mIdentifier;
|
||||
if (Globals.debug) {
|
||||
System.println("URL=" + url);
|
||||
System.println("HomeAssistantToggleMenuItem getState() URL=" + url);
|
||||
}
|
||||
Communications.makeWebRequest(
|
||||
url,
|
||||
@ -99,13 +99,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
if (Globals.debug) {
|
||||
System.println("HomeAssistantToggleMenuItem Note - getState(): No Internet connection, skipping API call.");
|
||||
}
|
||||
new Alert({
|
||||
:timeout => Globals.alertTimeout,
|
||||
:font => Graphics.FONT_SYSTEM_TINY,
|
||||
:text => strNoInternet,
|
||||
:fgcolor => Graphics.COLOR_RED,
|
||||
:bgcolor => Graphics.COLOR_BLACK
|
||||
}).pushView(WatchUi.SLIDE_IMMEDIATE);
|
||||
WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
}
|
||||
|
||||
@ -141,15 +135,18 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
|
||||
};
|
||||
if (System.getDeviceSettings().phoneConnected && System.getDeviceSettings().connectionAvailable) {
|
||||
// Updated SDK and got a new error
|
||||
// ERROR: venu: Cannot find symbol ':substring' on type 'PolyType<Null or $.Toybox.Lang.Object>'.
|
||||
var id = mIdentifier as Lang.String;
|
||||
var url;
|
||||
if (s) {
|
||||
url = Properties.getValue("api_url") + "/services/" + mIdentifier.substring(0, mIdentifier.find(".")) + "/turn_on";
|
||||
url = Properties.getValue("api_url") + "/services/" + id.substring(0, id.find(".")) + "/turn_on";
|
||||
} else {
|
||||
url = Properties.getValue("api_url") + "/services/" + mIdentifier.substring(0, mIdentifier.find(".")) + "/turn_off";
|
||||
url = Properties.getValue("api_url") + "/services/" + id.substring(0, id.find(".")) + "/turn_off";
|
||||
}
|
||||
if (Globals.debug) {
|
||||
System.println("URL=" + url);
|
||||
System.println("mIdentifier=" + mIdentifier);
|
||||
System.println("HomeAssistantToggleMenuItem setState() URL=" + url);
|
||||
System.println("HomeAssistantToggleMenuItem setState() mIdentifier=" + mIdentifier);
|
||||
}
|
||||
Communications.makeWebRequest(
|
||||
url,
|
||||
@ -163,13 +160,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
||||
if (Globals.debug) {
|
||||
System.println("HomeAssistantToggleMenuItem Note - setState(): No Internet connection, skipping API call.");
|
||||
}
|
||||
new Alert({
|
||||
:timeout => Globals.alertTimeout,
|
||||
:font => Graphics.FONT_SYSTEM_TINY,
|
||||
:text => strNoInternet,
|
||||
:fgcolor => Graphics.COLOR_RED,
|
||||
:bgcolor => Graphics.COLOR_BLACK
|
||||
}).pushView(WatchUi.SLIDE_IMMEDIATE);
|
||||
WatchUi.pushView(new ErrorView(strNoInternet + "."), new ErrorDelegate(), WatchUi.SLIDE_UP);
|
||||
}
|
||||
}
|
||||
|
||||
|