diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sony/headphones/coordinators/SonyWHCH720NCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sony/headphones/coordinators/SonyWHCH720NCoordinator.java new file mode 100644 index 0000000000..c4bcde70da --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sony/headphones/coordinators/SonyWHCH720NCoordinator.java @@ -0,0 +1,62 @@ +/* Copyright (C) 2025 Daniel Dakhno, 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.sony.headphones.coordinators; + +import androidx.annotation.NonNull; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import java.util.regex.Pattern; + +import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.sony.headphones.SonyHeadphonesCapabilities; +import nodomain.freeyourgadget.gadgetbridge.devices.sony.headphones.SonyHeadphonesCoordinator; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; + +public class SonyWHCH720NCoordinator extends SonyHeadphonesCoordinator { + @Override + protected Pattern getSupportedDeviceName() { + return Pattern.compile(".*WH-CH720N.*"); + } + + @Override + public int getDeviceNameResource() { + return R.string.devicetype_sony_wh_ch720n; + } + + @Override + public Set getCapabilities() { + return new HashSet<>(Arrays.asList( + SonyHeadphonesCapabilities.BatterySingle, + SonyHeadphonesCapabilities.AmbientSoundControl, + // TODO SonyHeadphonesCapabilities.AmbientSoundControlButtonMode, + // TODO SonyHeadphonesCapabilities.AutomaticPowerOffByTime, + SonyHeadphonesCapabilities.EqualizerSimple, + SonyHeadphonesCapabilities.EqualizerWithCustomBands, + SonyHeadphonesCapabilities.PowerOffFromPhone, + SonyHeadphonesCapabilities.VoiceNotifications + // TODO SonyHeadphonesCapabilities.Volume + )); + } + + @Override + public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) { + return DeviceKind.HEADPHONES; + } +} 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 42231c09e0..8383e8a998 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -352,6 +352,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.sony.headphones.coordinators import nodomain.freeyourgadget.gadgetbridge.devices.sony.headphones.coordinators.SonyWH1000XM3Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.sony.headphones.coordinators.SonyWH1000XM4Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.sony.headphones.coordinators.SonyWH1000XM5Coordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.sony.headphones.coordinators.SonyWHCH720NCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.sony.headphones.coordinators.SonyWHULT900NCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.sony.headphones.coordinators.SonyWIC100Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.sony.headphones.coordinators.SonyWISP600NCoordinator; @@ -695,6 +696,7 @@ public enum DeviceType { SONY_WF_C510(SonyWFC510Coordinator.class), SONY_WF_C700N(SonyWFC700NCoordinator.class), SONY_WF_C710N(SonyWFC710NCoordinator.class), + SONY_WH_CH720N(SonyWHCH720NCoordinator.class), PIXEL_BUDS_A(PixelBudsACoordinator.class), SHOKZ_OPENSWIM_PRO(ShokzOpenSwimProCoordinator.class), SOUNDCORE_LIBERTY3_PRO(SoundcoreLiberty3ProCoordinator.class), diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5c12080545..a0be88dc92 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2028,6 +2028,7 @@ Sony WH-1000XM4 Sony WH-1000XM5 Sony WH-ULT900N + Sony WH-CH720N Sony WF-SP800N Sony WF-1000XM3 Sony WF-1000XM4