diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/realme/RealmeBudsT200Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/realme/RealmeBudsT200Coordinator.java new file mode 100644 index 0000000000..e901c89614 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/realme/RealmeBudsT200Coordinator.java @@ -0,0 +1,85 @@ +/* Copyright (C) 2024 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.realme; + +import android.util.Pair; + +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.devices.oppo.OppoHeadphonesCoordinator; +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; +import nodomain.freeyourgadget.gadgetbridge.model.BatteryConfig; +import nodomain.freeyourgadget.gadgetbridge.service.devices.oppo.commands.TouchConfigSide; +import nodomain.freeyourgadget.gadgetbridge.service.devices.oppo.commands.TouchConfigType; +import nodomain.freeyourgadget.gadgetbridge.service.devices.oppo.commands.TouchConfigValue; + +public class RealmeBudsT200Coordinator extends OppoHeadphonesCoordinator { + @Override + protected Pattern getSupportedDeviceName() { + return Pattern.compile("realme Buds T200", Pattern.LITERAL); + } + + @Override + public String getManufacturer() { + return "Realme"; + } + + @Override + public int getDeviceNameResource() { + return R.string.devicetype_realme_buds_t200; + } + + @Override + public BatteryConfig[] getBatteryConfig(final GBDevice device) { + final BatteryConfig battery1 = new BatteryConfig(0, R.drawable.ic_realme_buds_t300_l, R.string.left_earbud); + final BatteryConfig battery2 = new BatteryConfig(1, R.drawable.ic_realme_buds_t300_r, R.string.right_earbud); + final BatteryConfig battery3 = new BatteryConfig(2, R.drawable.ic_realme_buds_t300_case, R.string.battery_case); + return new BatteryConfig[]{battery1, battery2, battery3}; + } + + @Override + public int getDefaultIconResource() { + return R.drawable.ic_realme_buds_t300; + } + + @Override + protected Map, List> getTouchOptions() { + return new LinkedHashMap<>() {{ + final List options = Arrays.asList( + TouchConfigValue.OFF, + TouchConfigValue.PLAY_PAUSE, + TouchConfigValue.PREVIOUS, + TouchConfigValue.NEXT, + TouchConfigValue.VOLUME_UP, + TouchConfigValue.VOLUME_DOWN, + TouchConfigValue.VOICE_ASSISTANT_REALME, + TouchConfigValue.GAME_MODE + ); + put(Pair.create(TouchConfigSide.LEFT, TouchConfigType.TAP_2), options); + put(Pair.create(TouchConfigSide.LEFT, TouchConfigType.TAP_3), options); + put(Pair.create(TouchConfigSide.LEFT, TouchConfigType.HOLD), options); + put(Pair.create(TouchConfigSide.RIGHT, TouchConfigType.TAP_2), options); + put(Pair.create(TouchConfigSide.RIGHT, TouchConfigType.TAP_3), options); + put(Pair.create(TouchConfigSide.RIGHT, TouchConfigType.HOLD), options); + }}; + } +} 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 ef6ed1446e..eea7ad60fb 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/DeviceType.java @@ -400,6 +400,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.qhybrid.QHybridCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.realme.RealmeBudsAir5ProCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.realme.RealmeBudsT100Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.realme.RealmeBudsT110Coordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.realme.RealmeBudsT200Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.realme.RealmeBudsT300Coordinator; import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds3ProCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds4ActiveCoordinator; @@ -914,6 +915,7 @@ public enum DeviceType { Y66(Y66Coordinator.class), REALME_BUDS_T110(RealmeBudsT110Coordinator.class), REALME_BUDS_T100(RealmeBudsT100Coordinator.class), + REALME_BUDS_T200(RealmeBudsT200Coordinator.class), REALME_BUDS_T300(RealmeBudsT300Coordinator.class), REALME_BUDS_AIR_5_PRO(RealmeBudsAir5ProCoordinator.class), SOFLOW_SO6(SoFlowCoordinator.class), diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d0f3dafc81..d307e02602 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3205,6 +3205,7 @@ Oppo Enco Buds2 Realme Buds T110 Realme Buds T100 + Realme Buds T200 Realme Buds T300 Realme Buds Air 5 Pro Galaxy Buds