From 25cb04c63fd48159398996732ea2903b1de47c9c Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Thu, 1 Jan 2026 12:47:21 +0100 Subject: [PATCH] Initial support for Garmin Forerunner 920 (Ich just worked after a87ddbb66a29e814b3e5abc9d083ad8a7d83322d) --- CHANGELOG.md | 4 +-- .../GarminForerunner920Coordinator.java | 34 +++++++++++++++++++ .../gadgetbridge/model/DeviceType.java | 2 ++ app/src/main/res/values/strings.xml | 1 + 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/watches/forerunner/GarminForerunner920Coordinator.java diff --git a/CHANGELOG.md b/CHANGELOG.md index de215272fe..aea1a1a9ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,8 @@ * Initial support for CMF Buds 2 * Initial support for Galaxy Buds3 Pro -* Initial support for Garmin Edge 840 -* Initial support for Zendure SolarFlow (test only 800 Pro) +* Initial support for Garmin Edge 840 and Forerunner 920 +* Initial support for Zendure SolarFlow (tested only 800 Pro) * Huawei: Sync raw ECG data (no UI) * Huami: Improve workout charts for activities without gps * Pebble: Support Signal icon with 2025 models diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/watches/forerunner/GarminForerunner920Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/watches/forerunner/GarminForerunner920Coordinator.java new file mode 100644 index 0000000000..4b7d0808ce --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/garmin/watches/forerunner/GarminForerunner920Coordinator.java @@ -0,0 +1,34 @@ +/* Copyright (C) 2026 Andreas Shimokawa + + This file is part of Gadgetbridge. + + Gadgetbridge is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Gadgetbridge is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ +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 GarminForerunner920Coordinator extends GarminWatchCoordinator { + @Override + protected Pattern getSupportedDeviceName() { + return Pattern.compile("^Forerunner 920$"); + } + + @Override + public int getDeviceNameResource() { + return R.string.devicetype_garmin_forerunner_920; + } +} 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 668c392a29..67a57719be 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -119,6 +119,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner.Ga import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner.GarminForerunner645MusicCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner.GarminForerunner735XTCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner.GarminForerunner745Coordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner.GarminForerunner920Coordinator; 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; @@ -652,6 +653,7 @@ public enum DeviceType { GARMIN_FORERUNNER_645_MUSIC(GarminForerunner645MusicCoordinator.class), GARMIN_FORERUNNER_735XT(GarminForerunner735XTCoordinator.class), GARMIN_FORERUNNER_745(GarminForerunner745Coordinator.class), + GARMIN_FORERUNNER_920(GarminForerunner920Coordinator.class), GARMIN_FORERUNNER_945(GarminForerunner945Coordinator.class), GARMIN_FORERUNNER_955(GarminForerunner955Coordinator.class), GARMIN_FORERUNNER_965(GarminForerunner965Coordinator.class), diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 303ce8c4da..d4246d0d8d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1973,6 +1973,7 @@ Garmin Forerunner 645 Music Garmin Forerunner 735XT Garmin Forerunner 745 + Garmin Forerunner 920 Garmin Forerunner 945 Garmin Forerunner 955 Garmin Forerunner 965