20 new devices and export of widget & application

Added 20 new devices and batch exportation (compilation) of both widget and application. Amended documentation.
This commit is contained in:
Philip Abbey
2023-12-18 14:29:59 +00:00
parent 8a799e4099
commit f4e6e8848e
12 changed files with 630 additions and 82 deletions

1
.gitignore vendored
View File

@ -2,4 +2,3 @@ bin/
export/
**/Thumbs.db
settings.txt
export.cmd

View File

@ -190,6 +190,15 @@ Having created that token, before you dismiss the dialogue box with the value yo
You should now have a working application on your watch and be able to operate your Home Assistant devices for as long as your watch is within Bluetooth range of your phone.
The first toggle option selects between two menu presentations as follows:
| Menu Type | Image | Description |
|-----------------|------------------------------------------------------------------------|-------------|
| Icons (default) | <img src="images/Actual_Venu2_LeanUI.jpg" width="200" title="Venu 2"/> | "Lean User Interface" version removing the second row of text in favour of icons. Tap icons are blue with a pointing finger, menu items has three dots as favours by many graphical user interfaces. |
| Labels | <img src="images/Actual_Venu2_Theme.jpg" width="200" title="Venu 2"/> | Initial version that had a second row of text. This extra text has yet to add much value. Menu and Tap actions are distinguished by text, and the toggle status is duplicated by text. A future version could possibly offer the means to customise the toggle menu item text, hence this option has not been deprecated yet. |
The second toggle setting is for "text alignment" and provides finer adjustment for right-to-left languages. Perhaps this could be made automatic based on device language.
## Tap Item Response
Its obvious that a toggle menu item has been triggered as the visible switch changes position and colour. Less obvious is that you have successfully triggered a tap operation.
@ -243,3 +252,4 @@ The `id` attribute values are taken from the same names used in [`strings.xml`](
| 1.5 | <img src="images/confirmation_view.jpg" width="200" title="Confirmation View" style="float:right"/> Added an optional confirmation dialogue view to prevent accidental execution of actions on mistaken tap. This also brings a change in the JSON schema to allow an optional field to specify that the confirmation should be used for a menu item. As we are now maturing and adding features we have decided to mitigate breaking changes to the JSON schema by being more careful to adopt the Home Assistant schema (noting there is a 1:1 mapping between YAML and JSON). This change does deprecate the top level `service` tag in favour of `tag_action` containing multiple fields including `service` & `confirm`. Users should migrate to the new format for the new functionality, but the timescale for actual deprecation are long and undecided. |
| 1.6 | Added a user configurable 'timeout' in seconds so that when no action is taken the application automatically closes, stopping the continuous polling for changes of status and hence saving the drain on the battery. This can be disabled with timeout=0. |
| 1.7 | Added timeout to confirmation views so that when used for security devices it does not linger when left unconfirmed. Thanks to [Jan Schneider](https://github.com/j-a-n) for the contribution. Known bug for devices not supporting [`WatchUi.getCurrentView()`](https://developer.garmin.com/connect-iq/api-docs/Toybox/WatchUi.html#getCurrentView-instance_function) API call which is only available on API Level 3.4.0, e.g. Vivoactive 4S. |
| 2.0 | A significant code base change to enable both a 'widget' version for older devices, e.g. Venu (1), and an application with a glance, e.g. Venu2. These two versions must now be distributed under separate application IDs, but they have the same code base. A further 20 more devices are now supported, and the settings have been internationalised. |

125
export.cmd Normal file
View File

@ -0,0 +1,125 @@
@echo off
rem -----------------------------------------------------------------------------------
rem
rem Distributed under MIT Licence
rem See https://github.com/house-of-abbey/GarminHomeAssistant/blob/main/LICENSE.
rem
rem -----------------------------------------------------------------------------------
rem
rem GarminHomeAssistant is a Garmin IQ application written in Monkey C and routinely
rem tested on a Venu 2 device. The source code is provided at:
rem https://github.com/house-of-abbey/GarminHomeAssistant.
rem
rem J D Abbey & P A Abbey, 28 December 2022
rem
rem Reference:
rem * Using Monkey C from the Command Line
rem * https://developer.garmin.com/connect-iq/reference-guides/monkey-c-command-line-setup/
rem
rem -----------------------------------------------------------------------------------
rem Check this path is correct for your Java installation
set JAVA_PATH="C:\Program Files (x86)\Common Files\Oracle\Java\javapath"
rem SDK_PATH should work for all users
set /p SDK_PATH=<"%USERPROFILE%\AppData\Roaming\Garmin\ConnectIQ\current-sdk.cfg"
set SDK_PATH=%SDK_PATH:~0,-1%\bin
rem C:\>java -jar %SDK_PATH%\monkeybrains.jar -h
rem usage: monkeyc [-a <arg>] [-b <arg>] [--build-stats <arg>] [-c <arg>] [-d <arg>]
rem [--debug-log-level <arg>] [--debug-log-output <arg>] [-e]
rem [--Eno-invalid-symbol] [-f <arg>] [-g] [-h] [-i <arg>] [-k] [-l <arg>]
rem [-m <arg>] [--no-gen-styles] [-o <arg>] [-O <arg>] [-p <arg>] [-r] [-s
rem <arg>] [-t] [-u <arg>] [-v] [-w] [-x <arg>] [-y <arg>] [-z <arg>]
rem -a,--apidb <arg> API import file
rem -b,--apimir <arg> API MIR file
rem --build-stats <arg> Print build stats [0=basic]
rem -c,--api-level <arg> API Level to target
rem -d,--device <arg> Target device
rem --debug-log-level <arg> Debug logging verbosity [0=errors, 1=basic,
rem 2=intermediate, 3=verbose]
rem --debug-log-output <arg>Output log zip file
rem -e,--package-app Create an application package.
rem --Eno-invalid-symbol Do not error when a symbol is found to be invalid
rem -f,--jungles <arg> Jungle files
rem -g,--debug Print debug output
rem -h,--help Prints help information
rem -i,--import-dbg <arg> Import api.debug.xml
rem -k,--profile Enable profiling support
rem -l,--typecheck <arg> Type check [0=off, 1=gradual, 2=informative,
rem 3=strict]
rem -m,--manifest <arg> Manifest file (deprecated)
rem --no-gen-styles Do not generate Rez.Styles module
rem -o,--output <arg> Output file to create
rem -O,--optimization <arg> Optimization level [0=none, 1=basic, 2=fast
rem optimizations, 3=slow optimizations] [p=optimize
rem performance, z=optimize code space]
rem -p,--project-info <arg> projectInfo.xml file to use when compiling
rem -r,--release Strip debug information
rem -s,--sdk-version <arg> SDK version to target (deprecated, use -c
rem -t,--unit-test Enables compilation of unit tests
rem -u,--devices <arg> devices.xml file to use when compiling (deprecated)
rem -v,--version Prints the compiler version
rem -w,--warn Show compiler warnings
rem -x,--excludes <arg> Add annotations to the exclude list (deprecated)
rem -y,--private-key <arg> Private key to sign builds with
rem -z,--rez <arg> Resource files (deprecated)
rem Batch file's directory where the source code is
set SRC=%~dp0
rem drop last character '\'
set SRC=%SRC:~0,-1%
del /f /q %SRC%\export\HomeAssistant*.iq
echo.
echo Starting export of HomeAssistant Application
echo.
"%JAVA_PATH%\java.exe" ^
-Xms1g ^
-Dfile.encoding=UTF-8 ^
-Dapple.awt.UIElement=true ^
-jar %SDK_PATH%\monkeybrains.jar ^
--api-level 3.1.0 ^
--output %SRC%\export\HomeAssistant-app.iq ^
--jungles %SRC%\monkey.jungle ^
--private-key %SRC%\..\developer_key ^
--package-app ^
--release
rem --warn
echo.
echo Starting export of HomeAssistant Widget
echo.
"%JAVA_PATH%\java.exe" ^
-Xms1g ^
-Dfile.encoding=UTF-8 ^
-Dapple.awt.UIElement=true ^
-jar %SDK_PATH%\monkeybrains.jar ^
--api-level 3.1.0 ^6
--output %SRC%\export\HomeAssistant-widget.iq ^
--jungles %SRC%\monkey-widget.jungle ^
--private-key %SRC%\..\developer_key ^
--package-app ^
--release
rem --warn
echo.
echo Finished exporting HomeAssistant
dir %SRC%\export\HomeAssistant*.iq
pause
exit /b
rem Compile PRG for a single device for side loading
"%JAVA_PATH%\java.exe" ^
-Xms1g ^
-Dfile.encoding=UTF-8 ^
-Dapple.awt.UIElement=true ^
-jar %SDK_PATH%\monkeybrains.jar ^
--output %SRC%\bin\HomeAssistant.prg ^
--jungles %SRC%\monkey.jungle ^
--private-key %SRC%\..\developer_key ^
--device venu2_sim ^
--warn

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

After

Width:  |  Height:  |  Size: 322 KiB

194
manifest-widget.xml Normal file
View File

@ -0,0 +1,194 @@
<?xml version="1.0"?>
<!--
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 & Someone0nEarth, 31 October 2023
Device Information & References:
* https://developer.garmin.com/connect-iq/compatible-devices/
* https://developer.garmin.com/connect-iq/reference-guides/devices-reference/
Someone0nEarth's Test Widget id="bf69be91-5833-4d96-92ea-c5f1a9db5dcc" type="widget"
philipabbey's Test Widget id="4901cdfb-b4a2-4f33-96c7-f5be5992809e" type="widget"
Live Widget id="" type="widget"
-->
<iq:manifest version="3" xmlns:iq="http://www.garmin.com/xml/connectiq">
<!--
Use "Monkey C: Edit Application" from the Visual Studio Code command palette
to update the application attributes.
-->
<iq:application id="4901cdfb-b4a2-4f33-96c7-f5be5992809e" type="widget" name="@Strings.AppName" entry="HomeAssistantApp" launcherIcon="@Drawables.LauncherIcon" minApiLevel="3.1.0">
<!--
Use the following from the Visual Studio Code comand palette to edit
the build targets:
"Monkey C: Set Products by Product Category" - Lets you add all products
that belong to the same product category
"Monkey C: Edit Products" - Lets you add or remove any product
-->
<iq:products>
<iq:product id="approachs7042mm"/>
<iq:product id="approachs7047mm"/>
<iq:product id="d2air"/>
<iq:product id="d2airx10"/>
<iq:product id="d2delta"/>
<iq:product id="d2deltapx"/>
<iq:product id="d2deltas"/>
<iq:product id="d2mach1"/>
<iq:product id="descentg1"/>
<iq:product id="descentmk2"/>
<iq:product id="descentmk2s"/>
<iq:product id="edge1030"/>
<iq:product id="edge1030bontrager"/>
<iq:product id="edge1030plus"/>
<iq:product id="edge1040"/>
<iq:product id="edge520plus"/>
<iq:product id="edge530"/>
<iq:product id="edge820"/>
<iq:product id="edge830"/>
<iq:product id="edgeexplore"/>
<iq:product id="edgeexplore2"/>
<iq:product id="enduro"/>
<iq:product id="epix2"/>
<iq:product id="epix2pro42mm"/>
<iq:product id="epix2pro47mm"/>
<iq:product id="epix2pro51mm"/>
<iq:product id="fenix5"/>
<iq:product id="fenix5plus"/>
<iq:product id="fenix5s"/>
<iq:product id="fenix5splus"/>
<iq:product id="fenix5x"/>
<iq:product id="fenix5xplus"/>
<iq:product id="fenix6"/>
<iq:product id="fenix6pro"/>
<iq:product id="fenix6s"/>
<iq:product id="fenix6spro"/>
<iq:product id="fenix6xpro"/>
<iq:product id="fenix7"/>
<iq:product id="fenix7pro"/>
<iq:product id="fenix7pronowifi"/>
<iq:product id="fenix7s"/>
<iq:product id="fenix7spro"/>
<iq:product id="fenix7x"/>
<iq:product id="fenix7xpro"/>
<iq:product id="fenix7xpronowifi"/>
<iq:product id="fenixchronos"/>
<iq:product id="fr245"/>
<iq:product id="fr245m"/>
<iq:product id="fr255"/>
<iq:product id="fr255m"/>
<iq:product id="fr255s"/>
<iq:product id="fr255sm"/>
<iq:product id="fr265"/>
<iq:product id="fr265s"/>
<iq:product id="fr55"/>
<iq:product id="fr645"/>
<iq:product id="fr645m"/>
<iq:product id="fr745"/>
<iq:product id="fr935"/>
<iq:product id="fr945"/>
<iq:product id="fr945lte"/>
<iq:product id="fr955"/>
<iq:product id="fr965"/>
<iq:product id="gpsmap67"/>
<iq:product id="instinct2"/>
<iq:product id="instinct2s"/>
<iq:product id="instinct2x"/>
<iq:product id="instinctcrossover"/>
<iq:product id="legacyherocaptainmarvel"/>
<iq:product id="legacyherofirstavenger"/>
<iq:product id="legacysagadarthvader"/>
<iq:product id="legacysagarey"/>
<iq:product id="marq2"/>
<iq:product id="marq2aviator"/>
<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"/>
<iq:product id="montana7xx"/>
<iq:product id="venu"/>
<iq:product id="venu2"/>
<iq:product id="venu2plus"/>
<iq:product id="venu2s"/>
<iq:product id="venu3"/>
<iq:product id="venu3s"/>
<iq:product id="venud"/>
<iq:product id="venusq"/>
<iq:product id="venusq2"/>
<iq:product id="venusq2m"/>
<iq:product id="venusqm"/>
<iq:product id="vivoactive3"/>
<iq:product id="vivoactive3m"/>
<iq:product id="vivoactive3mlte"/>
<iq:product id="vivoactive4"/>
<iq:product id="vivoactive4s"/>
<iq:product id="vivoactive5"/>
</iq:products>
<!--
Use "Monkey C: Edit Permissions" from the Visual Studio Code command
palette to update permissions.
-->
<iq:permissions>
<iq:uses-permission id="Communications"/>
<iq:uses-permission id="BluetoothLowEnergy"/>
</iq:permissions>
<!--
Use "Monkey C: Edit Languages" from the Visual Studio Code command
palette to edit your compatible language list.
-->
<iq:languages>
<iq:language>ara</iq:language>
<iq:language>bul</iq:language>
<iq:language>zhs</iq:language>
<iq:language>zht</iq:language>
<iq:language>hrv</iq:language>
<iq:language>ces</iq:language>
<iq:language>dan</iq:language>
<iq:language>dut</iq:language>
<iq:language>deu</iq:language>
<iq:language>gre</iq:language>
<iq:language>eng</iq:language>
<iq:language>est</iq:language>
<iq:language>fin</iq:language>
<iq:language>fre</iq:language>
<iq:language>heb</iq:language>
<iq:language>hun</iq:language>
<iq:language>ind</iq:language>
<iq:language>ita</iq:language>
<iq:language>jpn</iq:language>
<iq:language>kor</iq:language>
<iq:language>lav</iq:language>
<iq:language>lit</iq:language>
<iq:language>zsm</iq:language>
<iq:language>nob</iq:language>
<iq:language>pol</iq:language>
<iq:language>por</iq:language>
<iq:language>slo</iq:language>
<iq:language>ron</iq:language>
<!-- <iq:language>rus</iq:language> -->
<iq:language>slv</iq:language>
<iq:language>spa</iq:language>
<iq:language>swe</iq:language>
<iq:language>tha</iq:language>
<iq:language>tur</iq:language>
<iq:language>ukr</iq:language>
<iq:language>vie</iq:language>
</iq:languages>
<!--
Use "Monkey C: Configure Monkey Barrel" from the Visual Studio Code
command palette to edit the included barrels.
-->
<iq:barrels/>
</iq:application>
</iq:manifest>

View File

@ -11,7 +11,10 @@
P A Abbey & J D Abbey & Someone0nEarth, 31 October 2023
Someone0nEarth's Test App id="bf69be91-5833-4d96-92ea-c5f1a9db5dcc" type="widget"
Device Information & References:
* https://developer.garmin.com/connect-iq/compatible-devices/
* https://developer.garmin.com/connect-iq/reference-guides/devices-reference/
philipabbey's Test App id="98c36259-498a-4458-9cef-74a273ad2bc3" type="watch-app"
Live Application id="40131e87-31ff-454b-a8e2-92276ee399d6" type="watch-app"
@ -21,7 +24,7 @@
Use "Monkey C: Edit Application" from the Visual Studio Code command palette
to update the application attributes.
-->
<iq:application id="98c36259-498a-4458-9cef-74a273ad2bc3" type="widget" 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:
@ -30,110 +33,80 @@
"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/
-->
<!-- 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="d2air"/>
<iq:product id="d2airx10"/>
<!-- Screen Size 416x416 launcher icon size 60x60 -->
<iq:product id="d2delta"/>
<iq:product id="d2deltapx"/>
<iq:product id="d2deltas"/>
<iq:product id="d2mach1"/>
<!-- Screen Size 282x470 launcher icon size 36x36 -->
<iq:product id="descentg1"/>
<iq:product id="descentmk2"/>
<iq:product id="descentmk2s"/>
<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="edge520plus"/>
<iq:product id="edge530"/>
<iq:product id="edge820"/>
<iq:product id="edge830"/>
<!-- Screen Size 240x400 launcher icon size 36x36 -->
<iq:product id="edgeexplore"/>
<iq:product id="edgeexplore2"/>
<!-- Screen Size 280x280 launcher icon size 40x40 -->
<iq:product id="enduro"/>
<!-- Screen Size 416x416 launcher icon size 60x60 -->
<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="fenix5"/>
<iq:product id="fenix5plus"/>
<iq:product id="fenix5s"/>
<iq:product id="fenix5splus"/>
<iq:product id="fenix5x"/>
<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="fenixchronos"/>
<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="fr645"/>
<iq:product id="fr645m"/>
<iq:product id="fr745"/>
<iq:product id="fr935"/>
<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="gpsmap67"/>
<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"/>
<!-- Screen Size 176x176 launcher icon size 26x26 -->
<iq:product id="instinctcrossover"/>
<!-- Screen Size 218x218 launcher icon size 30x30 -->
<iq:product id="legacyherocaptainmarvel"/>
<!-- Screen Size 260x260 launcher icon size 35x35 -->
<iq:product id="legacyherofirstavenger"/>
<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="marq2"/>
<iq:product id="marq2aviator"/>
<iq:product id="marqadventurer"/>
<iq:product id="marqathlete"/>
<iq:product id="marqaviator"/>
@ -142,31 +115,23 @@
<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"/>
<!-- Screen Size 390x390 launcher icon size 60x60 -->
<iq:product id="montana7xx"/>
<iq:product id="venu"/>
<!-- Screen Size 416x416 launcher icon size 70x70 -->
<iq:product id="venu2"/>
<iq:product id="venu2plus"/>
<!-- Screen Size 360x360 launcher icon size 61x61 -->
<iq:product id="venu2s"/>
<!-- Screen Size 240x240 launcher icon size 36x36 -->
<iq:product id="venu3"/>
<iq:product id="venu3s"/>
<iq:product id="venud"/>
<iq:product id="venusq"/>
<iq:product id="venusqm"/>
<!-- 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="venusqm"/>
<iq:product id="vivoactive3"/>
<iq:product id="vivoactive3m"/>
<iq:product id="vivoactive3mlte"/>
<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>
<!--

203
monkey-widget.jungle Normal file
View File

@ -0,0 +1,203 @@
#-----------------------------------------------------------------------------------
#
# 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
#
# Reference:
# * https://developer.garmin.com/connect-iq/reference-guides/jungle-reference/
#
#-----------------------------------------------------------------------------------
project.manifest = manifest-widget.xml
# Device References
# * https://developer.garmin.com/connect-iq/compatible-devices/
# * 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 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 390x390 launcher icon size 60x60
d2air.resourcePath = $(d2air.resourcePath);resources-launcher-60-60;resources-icons-46
# Screen Size 416x416 launcher icon size 70x70
d2airx10.resourcePath = $(d2airx10.resourcePath);resources-launcher-70-70;resources-icons-48
# Screen Size 240x240 launcher icon size 40x40
d2delta.resourcePath = $(d2delta.resourcePath);resources-launcher-40-40;resources-icons-28
d2deltapx.resourcePath = $(d2deltapx.resourcePath);resources-launcher-40-40;resources-icons-28
d2deltas.resourcePath = $(d2deltas.resourcePath);resources-launcher-40-40;resources-icons-28
# Screen Size 416x416 launcher icon size 60x60
d2mach1.resourcePath = $(d2mach1.resourcePath);resources-launcher-60-60;resources-icons-48
# 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 200x265 launcher icon size 35x35
edge520plus.resourcePath = $(edge520plus.resourcePath);resources-launcher-35-35;resources-icons-24
# Screen Size 246x322 launcher icon size 35x35
edge530.resourcePath = $(edge530.resourcePath);resources-launcher-35-35;resources-icons-28
# Screen Size 200x265 launcher icon size 35x35
edge820.resourcePath = $(edge820.resourcePath);resources-launcher-35-35;resources-icons-24
# Screen Size 246x322 launcher icon size 35x35
edge830.resourcePath = $(edge830.resourcePath);resources-launcher-35-35;resources-icons-28
# Screen Size 240x400 launcher icon size 36x36
edgeexplore.resourcePath = $(edgeexplore.resourcePath);resources-launcher-36-36;resources-icons-28
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 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
fenix5.resourcePath = $(fenix5.resourcePath);resources-launcher-40-40;resources-icons-28
fenix5plus.resourcePath = $(fenix5plus.resourcePath);resources-launcher-40-40;resources-icons-28
# Screen Size 218x218 launcher icon size 36x36
fenix5s.resourcePath = $(fenix5s.resourcePath);resources-launcher-36-36;resources-icons-26
# Screen Size 240x240 launcher icon size 40x40
fenix5splus.resourcePath = $(fenix5splus.resourcePath);resources-launcher-40-40;resources-icons-28
fenix5x.resourcePath = $(fenix5x.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 218x218 launcher icon size 36x36
fenixchronos.resourcePath = $(fenixchronos.resourcePath);resources-launcher-36-36;resources-icons-26
# 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
fr645.resourcePath = $(fr645.resourcePath);resources-launcher-40-40;resources-icons-28
fr645m.resourcePath = $(fr645m.resourcePath);resources-launcher-40-40;resources-icons-28
# Screen Size 240x240 launcher icon size 40x40
fr745.resourcePath = $(fr745.resourcePath);resources-launcher-40-40;resources-icons-28
fr935.resourcePath = $(fr935.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 240x400 launcher icon size 38x33
gpsmap67.resourcePath = $(gpsmap67.resourcePath);resources-launcher-33-33;resources-icons-28
# 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
# Screen Size 176x176 launcher icon size 26x26
instinctcrossover.resourcePath = $(instinctcrossover.resourcePath);resources-launcher-26-26;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
legacyherofirstavenger.resourcePath = $(legacyherofirstavenger.resourcePath);resources-launcher-35-35;resources-icons-30
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 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
# 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 480x800 launcher icon size 60x60
montana7xx.resourcePath = $(montana7xx.resourcePath);resources-launcher-60-60;resources-icons-53
# Screen Size 390x390 launcher icon size 60x60
venu.resourcePath = $(venu.resourcePath);resources-launcher-60-60;resources-icons-46
# Screen Size 416x416 launcher icon size 70x70
venu2.resourcePath = $(venu2.resourcePath);resources-launcher-70-70;resources-icons-48
venu2plus.resourcePath = $(venu2plus.resourcePath);resources-launcher-70-70;resources-icons-48
# Screen Size 360x360 launcher icon size 61x61
venu2s.resourcePath = $(venu2s.resourcePath);resources-launcher-61-61;resources-icons-42
# 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 390x390 launcher icon size 60x60
venud.resourcePath = $(venud.resourcePath);resources-launcher-60-60;resources-icons-46
# Screen Size 240x240 launcher icon size 36x36
venusq.resourcePath = $(venusq.resourcePath);resources-launcher-36-36;resources-icons-28
# Screen Size 320x360 launcher icon size 40x40
venusq2.resourcePath = $(venusq2.resourcePath);resources-launcher-40-40;resources-icons-38
# Screen Size 320x360 launcher icon size 40x40
venusq2m.resourcePath = $(venusq2m.resourcePath);resources-launcher-40-40;resources-icons-38
# Screen Size 240x240 launcher icon size 36x36
venusqm.resourcePath = $(venusqm.resourcePath);resources-launcher-36-36;resources-icons-28
# Screen Size 240x240 launcher icon size 40x33
vivoactive3.resourcePath = $(vivoactive3.resourcePath);resources-launcher-33-33;resources-icons-28
vivoactive3m.resourcePath = $(vivoactive3m.resourcePath);resources-launcher-33-33;resources-icons-28
vivoactive3mlte.resourcePath = $(vivoactive3mlte.resourcePath);resources-launcher-33-33;resources-icons-28
# 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

View File

@ -38,6 +38,16 @@ project.manifest = manifest.xml
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 390x390 launcher icon size 60x60
d2air.resourcePath = $(d2air.resourcePath);resources-launcher-60-60;resources-icons-46
# Screen Size 416x416 launcher icon size 70x70
d2airx10.resourcePath = $(d2airx10.resourcePath);resources-launcher-70-70;resources-icons-48
# Screen Size 240x240 launcher icon size 40x40
d2delta.resourcePath = $(d2delta.resourcePath);resources-launcher-40-40;resources-icons-28
d2deltapx.resourcePath = $(d2deltapx.resourcePath);resources-launcher-40-40;resources-icons-28
d2deltas.resourcePath = $(d2deltas.resourcePath);resources-launcher-40-40;resources-icons-28
# Screen Size 416x416 launcher icon size 60x60
d2mach1.resourcePath = $(d2mach1.resourcePath);resources-launcher-60-60;resources-icons-48
# 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
@ -50,17 +60,19 @@ edge1030bontrager.resourcePath = $(edge1030bontrager.resourcePath);resources-lau
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 200x265 launcher icon size 35x35
edge520plus.resourcePath = $(edge520plus.resourcePath);resources-launcher-35-35;resources-icons-24
# Screen Size 246x322 launcher icon size 35x35
edge530.resourcePath = $(edge530.resourcePath);resources-launcher-35-35;resources-icons-28
# Screen Size 200x265 launcher icon size 35x35
edge820.resourcePath = $(edge820.resourcePath);resources-launcher-35-35;resources-icons-24
# Screen Size 246x322 launcher icon size 35x35
edge830.resourcePath = $(edge830.resourcePath);resources-launcher-35-35;resources-icons-28
# Screen Size 240x400 launcher icon size 36x36
edgeexplore.resourcePath = $(edgeexplore.resourcePath);resources-launcher-36-36;resources-icons-28
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
@ -69,8 +81,13 @@ epix2pro47mm.resourcePath = $(epix2pro47mm.resourcePath);resources-launcher-60-6
# 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
fenix5.resourcePath = $(fenix5.resourcePath);resources-launcher-40-40;resources-icons-28
fenix5plus.resourcePath = $(fenix5plus.resourcePath);resources-launcher-40-40;resources-icons-28
# Screen Size 218x218 launcher icon size 36x36
fenix5s.resourcePath = $(fenix5s.resourcePath);resources-launcher-36-36;resources-icons-26
# Screen Size 240x240 launcher icon size 40x40
fenix5splus.resourcePath = $(fenix5splus.resourcePath);resources-launcher-40-40;resources-icons-28
fenix5x.resourcePath = $(fenix5x.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
@ -85,6 +102,8 @@ fenix7.resourcePath = $(fenix7.resourcePath);resources-launcher-40-40;resources-
# 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 218x218 launcher icon size 36x36
fenixchronos.resourcePath = $(fenixchronos.resourcePath);resources-launcher-36-36;resources-icons-26
# 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
@ -109,13 +128,19 @@ fr265s.resourcePath = $(fr265s.resourcePath);resources-launcher-60-60;resources-
# 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
fr645.resourcePath = $(fr645.resourcePath);resources-launcher-40-40;resources-icons-28
fr645m.resourcePath = $(fr645m.resourcePath);resources-launcher-40-40;resources-icons-28
# Screen Size 240x240 launcher icon size 40x40
fr745.resourcePath = $(fr745.resourcePath);resources-launcher-40-40;resources-icons-28
fr935.resourcePath = $(fr935.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 240x400 launcher icon size 38x33
gpsmap67.resourcePath = $(gpsmap67.resourcePath);resources-launcher-33-33;resources-icons-28
# 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
@ -131,6 +156,9 @@ 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 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
# 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
@ -140,9 +168,8 @@ marqcommander.resourcePath = $(marqcommander.resourcePath);resources-launcher-40
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
# Screen Size 480x800 launcher icon size 60x60
montana7xx.resourcePath = $(montana7xx.resourcePath);resources-launcher-60-60;resources-icons-53
# Screen Size 390x390 launcher icon size 60x60
venu.resourcePath = $(venu.resourcePath);resources-launcher-60-60;resources-icons-46
# Screen Size 416x416 launcher icon size 70x70
@ -150,16 +177,24 @@ venu2.resourcePath = $(venu2.resourcePath);resources-launcher-70-70;resources-ic
venu2plus.resourcePath = $(venu2plus.resourcePath);resources-launcher-70-70;resources-icons-48
# Screen Size 360x360 launcher icon size 61x61
venu2s.resourcePath = $(venu2s.resourcePath);resources-launcher-61-61;resources-icons-42
# Screen Size 240x240 launcher icon size 36x36
venusq.resourcePath = $(venusq.resourcePath);resources-launcher-36-36;resources-icons-28
venusqm.resourcePath = $(venusqm.resourcePath);resources-launcher-36-36;resources-icons-28
# 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 390x390 launcher icon size 60x60
venud.resourcePath = $(venud.resourcePath);resources-launcher-60-60;resources-icons-46
# Screen Size 240x240 launcher icon size 36x36
venusq.resourcePath = $(venusq.resourcePath);resources-launcher-36-36;resources-icons-28
# Screen Size 320x360 launcher icon size 40x40
venusq2.resourcePath = $(venusq2.resourcePath);resources-launcher-40-40;resources-icons-38
# Screen Size 320x360 launcher icon size 40x40
venusq2m.resourcePath = $(venusq2m.resourcePath);resources-launcher-40-40;resources-icons-38
# Screen Size 240x240 launcher icon size 36x36
venusqm.resourcePath = $(venusqm.resourcePath);resources-launcher-36-36;resources-icons-28
# Screen Size 240x240 launcher icon size 40x33
vivoactive3.resourcePath = $(vivoactive3.resourcePath);resources-launcher-33-33;resources-icons-28
vivoactive3m.resourcePath = $(vivoactive3m.resourcePath);resources-launcher-33-33;resources-icons-28
vivoactive3mlte.resourcePath = $(vivoactive3mlte.resourcePath);resources-launcher-33-33;resources-icons-28
# 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

View 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 & Someone0nEarth, 31 October 2023
-->
<drawables>
<bitmap id="LauncherIcon" filename="launcher.png" />
</drawables>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB