diff --git a/README.md b/README.md
index bab569d..11e646c 100644
--- a/README.md
+++ b/README.md
@@ -169,12 +169,14 @@ Please use [this link](https://apps.garmin.com/en-US/apps/6cfd1ea6-e841-4c6a-98d
## Supported Devices
- Approach S60 / S62
- Captain Marvel / Darth Vader / First Avenger / Rey
-- D2 Bravo / Bravo Titanium / Charlie / Delta / Delta PX / Delta S
+- D2 Bravo / Bravo Titanium / Charlie / Delta / Delta PX / Delta S / Air / Air X10
- Descent Mk1 / Mk2 / Mk2S
-- fenix 3 / 3 HR / 5 / 5 Plus / 5S / 5X / 5X Plus / 6 / 6 Pro / 6S / 6S Pro / 6X Pro / Chronos
+- epix 2
+- Enduro
+- fenix 3 / 3 HR / 5 / 5 Plus / 5S / 5X / 5X Plus / 6 / 6 Pro / 6S / 6S Pro / 6X Pro / 7 / 7S / 7X / Chronos
- Forerunner 230 / 235 / 630 / 645 / 645 Music / 735xt / 935 / 945 / 945LTE
- MARQ Adventurer / Athlete / Aviator / Captain / Commander / Driver / Expedition / Golfer
-- Venu / 2 / 2S
+- Venu / 2 / 2S / 2 Plus
- vivoactive 3 / 3 Music / 3 Music LTE / 4 / 4S
*Note: Only tested in on a real fenix 5X and Forerunner 235 in the field, all other watches tested only in the SDK device simulator.*
@@ -239,6 +241,8 @@ Code and ideas borrowed from [RunnersField by kpaumann](https://github.com/kopa/
## Changelog
+- 1.4.0
+ - Add support for new devices
- 1.3.1
- Add support for new devices, update Chinese translation (thanks [Chuanyi](https://github.com/Likenttt))
- 1.3.0
diff --git a/manifest.xml b/manifest.xml
index e90e1bf..c1db5ee 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -1,9 +1,10 @@
-
+
+
@@ -13,6 +14,8 @@
+
+
@@ -26,6 +29,9 @@
+
+
+
@@ -53,6 +59,7 @@
+
diff --git a/monkey.jungle b/monkey.jungle
index 3c1f765..613f743 100644
--- a/monkey.jungle
+++ b/monkey.jungle
@@ -7,6 +7,7 @@ base.excludeAnnotations = base
approachs60.sourcePath = $(approachs60.sourcePath);source-memoryGTE32K;source-round-240x240-b
approachs62.sourcePath = $(approachs62.sourcePath);source-memoryGTE32K;source-round-260x260-a
d2air.sourcePath = $(d2air.sourcePath);source-memoryGTE32K;source-round-390x390-a
+d2airx10.sourcePath = $(d2airx10.sourcePath);source-memoryGTE32K;source-round-416x416-a
d2bravo_titanium.sourcePath = $(d2bravo_titanium.sourcePath);source-round-218x218-b
d2bravo.sourcePath = $(d2bravo.sourcePath);source-round-218x218-b
d2charlie.sourcePath = $(d2charlie.sourcePath);source-memoryGTE32K;source-round-240x240-a
@@ -16,6 +17,8 @@ d2deltas.sourcePath = $(d2deltas.sourcePath);source-memoryGTE32K;source-round-24
descentmk1.sourcePath = $(descentmk1.sourcePath);source-memoryGTE32K;source-round-240x240-a
descentmk2.sourcePath = $(descentmk2.sourcePath);source-memoryGTE32K;source-round-280x280-a
descentmk2s.sourcePath = $(descentmk2s.sourcePath);source-memoryGTE32K;source-round-240x240-d
+enduro.sourcePath = $(enduro.sourcePath);source-memoryGTE32K;source-round-280x280-a
+epix2.sourcePath = $(epix2.sourcePath);source-memoryGTE32K;source-round-416x416-a
fenix3_hr.sourcePath = $(fenix3_hr.sourcePath);source-round-218x218-b
fenix3.sourcePath = $(fenix3.sourcePath);source-round-218x218-b
fenix5.sourcePath = $(fenix5.sourcePath);source-memoryGTE32K;source-round-240x240-a
@@ -29,6 +32,9 @@ fenix6pro.sourcePath = $(fenix6pro.sourcePath);source-memoryGTE32K;source-round-
fenix6s.sourcePath = $(fenix6s.sourcePath);source-memoryGTE32K;source-round-240x240-c
fenix6spro.sourcePath = $(fenix6spro.sourcePath);source-memoryGTE32K;source-round-240x240-c
fenix6xpro.sourcePath = $(fenix6xpro.sourcePath);source-memoryGTE32K;source-round-280x280-a
+fenix7.sourcePath = $(fenix7.sourcePath);source-memoryGTE32K;source-round-260x260-b
+fenix7s.sourcePath = $(fenix7s.sourcePath);source-memoryGTE32K;source-round-240x240-c
+fenix7x.sourcePath = $(fenix7x.sourcePath);source-memoryGTE32K;source-round-280x280-a
fenixchronos.sourcePath = $(fenixchronos.sourcePath);source-memoryGTE32K;source-round-218x218-c
fr230.sourcePath = $(fr230.sourcePath);source-semiround-215x180-a
fr235.sourcePath = $(fr235.sourcePath);source-semiround-215x180-a
@@ -56,6 +62,7 @@ marqexpedition.sourcePath = $(marqexpedition.sourcePath);source-memoryGTE32K;sou
marqgolfer.sourcePath = $(marqgolfer.sourcePath);source-memoryGTE32K;source-round-240x240-c
venu.sourcePath = $(venu.sourcePath);source-memoryGTE32K;source-round-390x390-a
venu2.sourcePath = $(venu2.sourcePath);source-memoryGTE32K;source-round-416x416-a
+venu2plus.sourcePath = $(venu2plus.sourcePath);source-memoryGTE32K;source-round-416x416-a
venu2s.sourcePath = $(venu2s.sourcePath);source-memoryGTE32K;source-round-360x360-a
venud.sourcePath = $(venud.sourcePath);source-memoryGTE32K;source-round-390x390-a
venusq.sourcePath = $(venusq.sourcePath);source-memoryGTE32K;source-rectangle-240x240-a
@@ -71,6 +78,7 @@ vivoactive4s.sourcePath = $(vivoactive4s.sourcePath);source-memoryGTE32K;source-
approachs60.resourcePath = $(approachs60.resourcePath);resources-launcher-40x33;resources-memoryGTE32K
approachs62.resourcePath = $(approachs62.resourcePath);resources-launcher-35x35;resources-memoryGTE32K
d2air.resourcePath = $(d2air.resourcePath);resources-launcher-60x60;resources-memoryGTE32K
+d2airx10.resourcePath = $(d2airx10.resourcePath);resources-launcher-70x70;resources-memoryGTE32K
d2bravo_titanium.resourcePath = $(d2bravo_titanium.resourcePath);resources-memory16K
d2bravo.resourcePath = $(d2bravo.resourcePath);resources-memory16K
d2charlie.resourcePath = $(d2charlie.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
@@ -80,6 +88,8 @@ d2deltas.resourcePath = $(d2deltas.resourcePath);resources-launcher-40x40;resour
descentmk1.resourcePath = $(descentmk1.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
descentmk2.resourcePath = $(descentmk2.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
descentmk2s.resourcePath = $(descentmk2s.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
+enduro.resourcePath = $(enduro.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
+epix2.resourcePath = $(epix2.resourcePath);resources-launcher-60x60;resources-memoryGTE32K
fenix3_hr.resourcePath = $(fenix3_hr.resourcePath);resources-memory16K
fenix3.resourcePath = $(fenix3.resourcePath);resources-memory16K
fenix5.resourcePath = $(fenix5.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
@@ -93,6 +103,9 @@ fenix6pro.resourcePath = $(fenix6pro.resourcePath);resources-launcher-40x40;reso
fenix6s.resourcePath = $(fenix6s.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
fenix6spro.resourcePath = $(fenix6spro.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
fenix6xpro.resourcePath = $(fenix6xpro.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
+fenix7.resourcePath = $(fenix7.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
+fenix7s.resourcePath = $(fenix7s.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
+fenix7x.resourcePath = $(fenix7x.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
fenixchronos.resourcePath = $(fenixchronos.resourcePath);resources-launcher-36x36;resources-memoryGTE32K
fr230.resourcePath = $(fr230.resourcePath);resources-memory16K
fr235.resourcePath = $(fr235.resourcePath);resources-memory16K
@@ -120,6 +133,7 @@ marqexpedition.resourcePath = $(marqexpedition.resourcePath);resources-launcher-
marqgolfer.resourcePath = $(marqgolfer.resourcePath);resources-launcher-40x40;resources-memoryGTE32K
venu.resourcePath = $(venu.resourcePath);resources-launcher-60x60;resources-memoryGTE32K
venu2.resourcePath = $(venu2.resourcePath);resources-launcher-70x70;resources-memoryGTE32K
+venu2plus.resourcePath = $(venu2plus.resourcePath);resources-launcher-70x70;resources-memoryGTE32K
venu2s.resourcePath = $(venu2s.resourcePath);resources-launcher-60x60;resources-memoryGTE32K
venud.resourcePath = $(venud.resourcePath);resources-launcher-60x60;resources-memoryGTE32K
venusq.resourcePath = $(venusq.resourcePath);resources-launcher-36x36;resources-memoryGTE32K