diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/gps/GarminGpsmap66sCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/gps/GarminGpsmap66sCoordinator.java
index cd867db75c..c092ff50f2 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/gps/GarminGpsmap66sCoordinator.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/gps/GarminGpsmap66sCoordinator.java
@@ -50,9 +50,4 @@ public class GarminGpsmap66sCoordinator extends GarminCoordinator {
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
-
- @Override
- public boolean supportsVO2Max(@NonNull final GBDevice device) {
- return false;
- }
}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/gps/GarminGpsmapH1Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/gps/GarminGpsmapH1Coordinator.java
new file mode 100644
index 0000000000..97c2b0d2bd
--- /dev/null
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/gps/GarminGpsmapH1Coordinator.java
@@ -0,0 +1,53 @@
+package nodomain.freeyourgadget.gadgetbridge.devices.garmin.gps;
+
+import androidx.annotation.NonNull;
+
+import java.util.regex.Pattern;
+
+import nodomain.freeyourgadget.gadgetbridge.R;
+import nodomain.freeyourgadget.gadgetbridge.devices.garmin.GarminCoordinator;
+import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
+
+public class GarminGpsmapH1Coordinator extends GarminCoordinator {
+ @Override
+ public boolean supportsDataFetching(@NonNull final GBDevice device) {
+ // for gps tracks
+ return true;
+ }
+
+ @Override
+ public boolean supportsRecordedActivities(@NonNull final GBDevice device) {
+ return true;
+ }
+
+ @Override
+ public boolean supportsWeather(@NonNull final GBDevice device) {
+ return true;
+ }
+
+ @Override
+ public int getBatteryCount(final GBDevice device) {
+ // does not seem to report the battery %
+ return 0;
+ }
+
+ @Override
+ protected Pattern getSupportedDeviceName() {
+ return Pattern.compile("^GPSMAP H1$");
+ }
+
+ @Override
+ public int getDeviceNameResource() {
+ return R.string.devicetype_garmin_gpsmap_h1;
+ }
+
+ @Override
+ public DeviceKind getDeviceKind(@NonNull GBDevice device) {
+ return DeviceKind.UNKNOWN;
+ }
+
+ @Override
+ public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
+ return false;
+ }
+}
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java
index 1081d577ca..373e5388ab 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java
@@ -75,6 +75,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.garmin.bike.GarminEdge840Coo
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.bike.GarminEdgeExplore2Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.bike.GarminEdgeExploreCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.gps.GarminGpsmap66sCoordinator;
+import nodomain.freeyourgadget.gadgetbridge.devices.garmin.gps.GarminGpsmapH1Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.hrm.GarminHrm600Coordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.hrm.GarminHrmProPlusCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.gps.GarminETrexSeCoordinator;
@@ -672,6 +673,7 @@ public enum DeviceType {
GARMIN_EDGE_EXPLORE(GarminEdgeExploreCoordinator.class),
GARMIN_EDGE_EXPLORE_2(GarminEdgeExplore2Coordinator.class),
GARMIN_GPSMAP_66S(GarminGpsmap66sCoordinator.class),
+ GARMIN_GPSMAP_H1(GarminGpsmapH1Coordinator.class),
GARMIN_ETREX_SE(GarminETrexSeCoordinator.class),
GARMIN_ENDURO(GarminEnduroCoordinator.class),
GARMIN_ENDURO_3(GarminEnduro3Coordinator.class),
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f5e9273e70..6d4c53e854 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1985,6 +1985,7 @@
Garmin Edge Explore
Garmin Edge Explore 2
Garmin GPSMAP 66s
+ Garmin GPSMAP H1
Garmin eTrex SE
Garmin Enduro
Garmin Enduro 3
diff --git a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java
index e6a65632c1..29e4806b72 100644
--- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java
+++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java
@@ -57,6 +57,7 @@ public class AbstractDeviceCoordinatorTest extends TestBase {
put("Forerunner 165 Music", DeviceType.GARMIN_FORERUNNER_165_MUSIC);
put("R60", DeviceType.BLACKVIEW_R60);
put("eTrex SE", DeviceType.GARMIN_ETREX_SE);
+ put("GPSMAP H1", DeviceType.GARMIN_GPSMAP_H1); // #6122
put("GPSMAP 66S", DeviceType.GARMIN_GPSMAP_66S); // matrix
put("GPSMAP 66S #1234512345", DeviceType.GARMIN_GPSMAP_66S); // matrix
put("Instinct Tactical", DeviceType.GARMIN_INSTINCT_TACTICAL);