From be73323222b68c5e09fbdb96c42f9bff2dff4c4d Mon Sep 17 00:00:00 2001 From: NTeditor Date: Thu, 18 Jun 2026 10:01:35 +0300 Subject: [PATCH] oppo: add AncConfigValue.toMask() method --- .../devices/oppo/OppoHeadphonesProtocol.java | 5 +--- .../devices/oppo/commands/AncConfigValue.java | 30 ++++++++++++------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/oppo/OppoHeadphonesProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/oppo/OppoHeadphonesProtocol.java index 5d91d2dad6..38d8053392 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/oppo/OppoHeadphonesProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/oppo/OppoHeadphonesProtocol.java @@ -606,10 +606,7 @@ public class OppoHeadphonesProtocol extends GBDeviceProtocol { } public byte[] encodeAncTouchCycleModesSet(final EnumSet modes) { - int mask = 0; - for (AncConfigValue mode : modes) { - mask |= mode.getCode(); - } + final int mask = AncConfigValue.toMask(modes); final byte[] payload = new byte[] { (byte) AncConfigType.TOUCH_CYCLE_MODES.getCode(), (byte) 0x01, diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/oppo/commands/AncConfigValue.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/oppo/commands/AncConfigValue.java index cd4b69681f..54dd7f5a47 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/oppo/commands/AncConfigValue.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/oppo/commands/AncConfigValue.java @@ -56,17 +56,6 @@ public enum AncConfigValue { return prefId; } - public static EnumSet fromMask(int mask) { - EnumSet modes = EnumSet.noneOf(AncConfigValue.class); - for (AncConfigValue mode : AncConfigValue.values()) { - if ((mask & mode.getCode()) == mode.getCode()) { - modes.add(mode); - } - } - - return modes; - } - @Nullable public static AncConfigValue fromPrefId(final String prefId) { for (final AncConfigValue param : AncConfigValue.values()) { @@ -78,6 +67,25 @@ public enum AncConfigValue { return null; } + public static int toMask(Iterable modes) { + int mask = 0; + for (AncConfigValue mode : modes) { + mask |= mode.getCode(); + } + return mask; + } + + public static EnumSet fromMask(int mask) { + EnumSet modes = EnumSet.noneOf(AncConfigValue.class); + for (AncConfigValue mode : AncConfigValue.values()) { + if ((mask & mode.getCode()) == mode.getCode()) { + modes.add(mode); + } + } + + return modes; + } + public static Set toPrefIds(Iterable modes) { Set prefIds = new HashSet<>(); for (AncConfigValue mode : modes) {