From 3c848e6ac0531f9e8655a46d09594715b81ddf13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Tue, 19 May 2026 20:26:16 +0100 Subject: [PATCH] Moondrop Space Travel 2 Ultra: Initial support --- .../MoondropSpaceTravel2UltraCoordinator.java | 33 +++++++++++++++++++ .../gadgetbridge/model/DeviceType.java | 2 ++ app/src/main/res/values/strings.xml | 1 + .../AbstractDeviceCoordinatorTest.java | 1 + 4 files changed, 37 insertions(+) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/moondrop/MoondropSpaceTravel2UltraCoordinator.java diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/moondrop/MoondropSpaceTravel2UltraCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/moondrop/MoondropSpaceTravel2UltraCoordinator.java new file mode 100644 index 0000000000..c2d4832d7e --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/moondrop/MoondropSpaceTravel2UltraCoordinator.java @@ -0,0 +1,33 @@ +/* Copyright (C) 2026 José Rebelo + + 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.moondrop; + +import java.util.regex.Pattern; + +import nodomain.freeyourgadget.gadgetbridge.R; + +public class MoondropSpaceTravel2UltraCoordinator extends MoondropSpaceTravel2Coordinator { + @Override + protected Pattern getSupportedDeviceName() { + return Pattern.compile("Space Travel 2 Ultra"); + } + + @Override + public int getDeviceNameResource() { + return R.string.devicetype_moondrop_space_travel_2_ultra; + } +} 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 1143a5c72c..e6cc838614 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -347,6 +347,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.mijia_lywsd.MijiaXmwsdj04Coo import nodomain.freeyourgadget.gadgetbridge.devices.miscale.MiCompositionScaleCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.miscale.MiSmartScaleCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.moondrop.MoondropSpaceTravel2Coordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.moondrop.MoondropSpaceTravel2UltraCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.moondrop.MoondropSpaceTravelCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.AdvanWatchSE1AICoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.BlackviewR60Coordinator; @@ -834,6 +835,7 @@ public enum DeviceType { SOUNDCORE_SPORT_X20(SoundcoreSportX20Coordinator.class), MOONDROP_SPACE_TRAVEL(MoondropSpaceTravelCoordinator.class), MOONDROP_SPACE_TRAVEL_2(MoondropSpaceTravel2Coordinator.class), + MOONDROP_SPACE_TRAVEL_2_ULTRA(MoondropSpaceTravel2UltraCoordinator.class), BOSE_QC35(QC35Coordinator.class), ONEMORE_SONOFLOW(OneMoreSonoFlowCoordinator.class), HONORBAND3(HonorBand3Coordinator.class), diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cc712c9e6e..66bffb49ae 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2151,6 +2151,7 @@ Pixel Buds A-Series Moondrop Space Travel Moondrop Space Travel 2 + Moondrop Space Travel 2 Ultra Binary sensor Honor Band 3 Honor Band 4 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 647904782c..24e5337235 100644 --- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java +++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java @@ -135,6 +135,7 @@ public class AbstractDeviceCoordinatorTest extends TestBase { put("vívomove Trend", DeviceType.GARMIN_VIVOMOVE_TREND); // #3875 put("fenix 5", DeviceType.GARMIN_FENIX_5); // #3869 put("Forerunner 255S", DeviceType.GARMIN_FORERUNNER_255S); // #3841 + put("Space Travel 2 Ultra", DeviceType.MOONDROP_SPACE_TRAVEL_2_ULTRA); // matrix put("Venu 2", DeviceType.GARMIN_VENU_2); // #3835 put("Venu 4 45mm", DeviceType.GARMIN_VENU_4); // #5461 put("Venu 4 - 45mm", DeviceType.GARMIN_VENU_4); // matrix