diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/redmibuds/RedmiBuds6Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/redmibuds/RedmiBuds6Coordinator.java new file mode 100644 index 0000000000..daff8d136d --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/redmibuds/RedmiBuds6Coordinator.java @@ -0,0 +1,55 @@ +/* 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.redmibuds; + +import java.util.regex.Pattern; + +import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettings; +import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsCustomizer; +import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsScreen; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; + +public class RedmiBuds6Coordinator extends AbstractRedmiBudsCoordinator { + @Override + public int getDeviceNameResource() { + return R.string.devicetype_redmi_buds_6; + } + + @Override + protected Pattern getSupportedDeviceName() { + return Pattern.compile("Redmi Buds 6"); + } + + @Override + public DeviceSpecificSettings getDeviceSpecificSettings(final GBDevice device) { + final DeviceSpecificSettings deviceSpecificSettings = new DeviceSpecificSettings(); + deviceSpecificSettings.addRootScreen(R.xml.devicesettings_redmibuds5pro_headphones); + deviceSpecificSettings.addRootScreen(R.xml.devicesettings_redmibuds5pro_gestures); + deviceSpecificSettings.addRootScreen(R.xml.devicesettings_redmibuds5pro_sound); + deviceSpecificSettings.addSubScreen( + DeviceSpecificSettingsScreen.CALLS_AND_NOTIFICATIONS, + R.xml.devicesettings_headphones + ); + return deviceSpecificSettings; + } + + @Override + public DeviceSpecificSettingsCustomizer getDeviceSpecificSettingsCustomizer(final GBDevice device) { + return new RedmiBudsSettingsCustomizer(device); + } +} 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 b2b454f50f..46b1327cd7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -396,6 +396,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds3ProCoord import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds4ActiveCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds5ProCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds6ActiveCoordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds6Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds6ProCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds8ActiveCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.roidmi.Roidmi1Coordinator; @@ -550,6 +551,7 @@ public enum DeviceType { REDMIBUDS3PRO(RedmiBuds3ProCoordinator.class), REDMIBUDS4ACTIVE(RedmiBuds4ActiveCoordinator.class), REDMIBUDS5PRO(RedmiBuds5ProCoordinator.class), + REDMIBUDS6(RedmiBuds6Coordinator.class), REDMIBUDS6ACTIVE(RedmiBuds6ActiveCoordinator.class), REDMIBUDS6PRO(RedmiBuds6ProCoordinator.class), REDMIBUDS8ACTIVE(RedmiBuds8ActiveCoordinator.class), diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 395e16e4c3..2a16b02a72 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2203,6 +2203,7 @@ Redmi Buds 4 Active Redmi Buds 5 Pro Redmi Buds 6 Active + Redmi Buds 6 Redmi Buds 6 Pro Redmi Buds 8 Active Redmi Smart Band 2 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 2062a32cd6..1c923e8d05 100644 --- a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java +++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinatorTest.java @@ -69,6 +69,7 @@ public class AbstractDeviceCoordinatorTest extends TestBase { put("Descent G1", DeviceType.GARMIN_DESCENT_G1); // #5915 put("Descent G2", DeviceType.GARMIN_DESCENT_G2); put("Active 2 NFC (Round)-4B84", DeviceType.AMAZFITACTIVE2NFC); + put("Redmi Buds 6", DeviceType.REDMIBUDS6); // #6061 put("Redmi Buds 6 Pro", DeviceType.REDMIBUDS6PRO); put("Xiaomi Watch S4 AB01", DeviceType.XIAOMI_WATCH_S4); put("HUAWEI WATCH FIT 4 Pro-CC6", DeviceType.HUAWEIWATCHFIT4PRO);