From 1f84901c144c42d0fa0873fbf717e887fd2e01a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Sun, 21 Jun 2026 22:16:52 +0100 Subject: [PATCH] Garmin Forerunner 970: Initial support --- .../GarminForerunner970Coordinator.java | 18 ++++++++++++++++++ .../gadgetbridge/model/DeviceType.java | 2 ++ app/src/main/res/values/strings.xml | 1 + .../devices/BluetoothNameTest.java | 1 + 4 files changed, 22 insertions(+) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/watches/forerunner/GarminForerunner970Coordinator.java diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/watches/forerunner/GarminForerunner970Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/watches/forerunner/GarminForerunner970Coordinator.java new file mode 100644 index 0000000000..7c897877f4 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/watches/forerunner/GarminForerunner970Coordinator.java @@ -0,0 +1,18 @@ +package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner; + +import java.util.regex.Pattern; + +import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator; + +public class GarminForerunner970Coordinator extends GarminWatchCoordinator { + @Override + protected Pattern getSupportedDeviceName() { + return Pattern.compile("^Forerunner 970$"); + } + + @Override + public int getDeviceNameResource() { + return R.string.devicetype_garmin_forerunner_970; + } +} 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 cd4314b195..35b35e3b0c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -137,6 +137,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner.Ga import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner.GarminForerunner945Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner.GarminForerunner955Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner.GarminForerunner965Coordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner.GarminForerunner970Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.instinct.GarminInstinct2Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.instinct.GarminInstinct2SCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.instinct.GarminInstinct2SSolarCoordinator; @@ -744,6 +745,7 @@ public enum DeviceType { GARMIN_FORERUNNER_945(GarminForerunner945Coordinator.class), GARMIN_FORERUNNER_955(GarminForerunner955Coordinator.class), GARMIN_FORERUNNER_965(GarminForerunner965Coordinator.class), + GARMIN_FORERUNNER_970(GarminForerunner970Coordinator.class), GARMIN_QUATIX_8(GarminQuatix8Coordinator.class), GARMIN_TACTIX_7(GarminTactix7Coordinator.class), GARMIN_TACTIX_8(GarminTactix8Coordinator.class), diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 99919efbdf..24f48be244 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2074,6 +2074,7 @@ Garmin Forerunner 945 Garmin Forerunner 955 Garmin Forerunner 965 + Garmin Forerunner 970 Garmin Swim 2 Garmin VĂ­voactive 3 Garmin VĂ­voactive 4 diff --git a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/BluetoothNameTest.java b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/BluetoothNameTest.java index 8b08adf2fc..0d52367060 100644 --- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/BluetoothNameTest.java +++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/BluetoothNameTest.java @@ -148,6 +148,7 @@ public class BluetoothNameTest extends TestBase { put("Amazfit Bip 3", DeviceType.AMAZFITBIP3); // #3627 put("Xiaomi Band 8 Active 0C09", DeviceType.MIBAND8ACTIVE); // #3614 put("UAT-4261", DeviceType.GARMIN_VENU_3S); // #3602 + put("Forerunner 970", DeviceType.GARMIN_FORERUNNER_970); // #6320 put("Redmi Watch 3 892C", DeviceType.REDMIWATCH3); // #3581 put("Redmi Buds 5 Pro", DeviceType.REDMIBUDS5PRO); // #3566 put("Redmi Watch 2 C21E", DeviceType.REDMIWATCH2); // #3543