From b057e6a35c6f83141d88fbe7482e415d1e93cc61 Mon Sep 17 00:00:00 2001 From: Ilya Nikitenkov Date: Sat, 15 Mar 2025 18:03:27 +0300 Subject: [PATCH] Huawei Freebuds Pro: Initial support --- CHANGELOG.md | 1 + .../HuaweiFreebudsProCoordinator.java | 35 +++++++++++++++++++ .../gadgetbridge/model/DeviceType.java | 2 ++ app/src/main/res/values/strings.xml | 1 + 4 files changed, 39 insertions(+) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebudspro/HuaweiFreebudsProCoordinator.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bf1385f2f..cf8a865768 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * Initial support for EarFun Air S and Air Pro 4 headphones * Initial support for Garmin Instinct 3 +* Initial support for Huawei Freebuds Pro * Amazfit Active 2: Fix device discovery * Amazfit GTR2e: Enable PAI support * Fossil/Skagen Hybrids: Fix hidden upload button in app manager diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebudspro/HuaweiFreebudsProCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebudspro/HuaweiFreebudsProCoordinator.java new file mode 100644 index 0000000000..8f412ccd6d --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/freebudspro/HuaweiFreebudsProCoordinator.java @@ -0,0 +1,35 @@ +package nodomain.freeyourgadget.gadgetbridge.devices.huawei.freebudspro; + +import androidx.annotation.NonNull; + +import java.util.regex.Pattern; + +import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiFreebudsCoordinator; +import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; +import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; +import nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiFreebudsSupport; + +public class HuaweiFreebudsProCoordinator extends HuaweiFreebudsCoordinator { + + @Override + protected Pattern getSupportedDeviceName() { + return Pattern.compile("huawei freebuds pro.*", Pattern.CASE_INSENSITIVE); + } + + @NonNull + @Override + public Class getDeviceSupportClass() { + return HuaweiFreebudsSupport.class; + } + + @Override + public DeviceType getDeviceType() { + return DeviceType.HUAWEI_FREEBUDS_PRO; + } + + @Override + public int getDeviceNameResource() { + return R.string.devicetype_huawei_freebuds_pro; + } +} 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 0a4baf1ea0..b88e5df05b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -186,6 +186,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband6.MiBand6Coordin import nodomain.freeyourgadget.gadgetbridge.devices.huami.miband7.MiBand7Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huami.zeppe.ZeppECoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.freebuds5i.HuaweiFreebuds5iCoordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.huawei.freebudspro.HuaweiFreebudsProCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.honorband3.HonorBand3Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.honorband4.HonorBand4Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.honorband5.HonorBand5Coordinator; @@ -593,6 +594,7 @@ public enum DeviceType { HUAWEIWATCH3(HuaweiWatch3Coordinator.class), HUAWEIWATCH4PRO(HuaweiWatch4ProCoordinator.class), HUAWEI_FREEBUDS5I(HuaweiFreebuds5iCoordinator.class), + HUAWEI_FREEBUDS_PRO(HuaweiFreebudsProCoordinator.class), VESC(VescCoordinator.class), BINARY_SENSOR(BinarySensorCoordinator.class), FLIPPER_ZERO(FlipperZeroCoordinator.class), diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4d49cec8f2..918a249a5a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1936,6 +1936,7 @@ Huawei Watch 3 (Pro) Huawei Watch 4 (Pro) Huawei FreeBuds 5i + Huawei FreeBuds Pro Femometer Vinca II Xiaomi Watch Lite Redmi Watch 3 Active