From c6125e351ee0f28824480eaa54faa8fe1beb7fff Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Thu, 30 Apr 2026 23:31:45 +0200 Subject: [PATCH] CMF Buds: Handle ANC mode change on buds When the buds change their audio / ANC mode (via buds touch, or a 2nd connected phone) they send the current state using a different command. Handle that so the state is updated properly. --- .../gadgetbridge/service/devices/nothing/Ear1Support.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/Ear1Support.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/Ear1Support.java index 0006eaf30a..fc276fa628 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/Ear1Support.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/Ear1Support.java @@ -152,6 +152,7 @@ public class Ear1Support extends AbstractHeadphoneBTBRDeviceSupport { private static final short battery_status = (short) 0xe001; private static final short battery_status2 = (short) 0xc007; private static final short audio_mode_status = (short) 0xc01e; + private static final short audio_mode_status2 = (short) 0xe003; private static final short unk_maybe_ack = (short) 0xf002; private static final short unk_close_case = (short) 0xe002; //sent twice when the case is closed with earphones in @@ -232,13 +233,13 @@ public class Ear1Support extends AbstractHeadphoneBTBRDeviceSupport { byte[] payload = Arrays.copyOfRange(responseData, incoming.position(), incoming.position() + length); - switch (getRequestCommand(command)) { case battery_status: case battery_status2: devEvts.addAll(handleBatteryInfo(payload)); break; case audio_mode_status: + case audio_mode_status2: devEvts.add(handleAudioModeStatus(payload)); break;