From 1dfe8d3f5e2d4507dcb44804c9e09637ad3dff78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Thu, 1 Jan 2026 16:35:46 +0000 Subject: [PATCH] Galaxy Buds: Switch to BTBR support class --- .../galaxy_buds/GalaxyBudsDeviceSupport.java | 51 +++++--------- .../galaxy_buds/GalaxyBudsIOThread.java | 69 ------------------- .../galaxy_buds/GalaxyBudsProtocol.java | 4 +- 3 files changed, 21 insertions(+), 103 deletions(-) delete mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsIOThread.java diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsDeviceSupport.java index 5109630c43..9ec6325712 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsDeviceSupport.java @@ -16,44 +16,31 @@ along with this program. If not, see . */ package nodomain.freeyourgadget.gadgetbridge.service.devices.galaxy_buds; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.util.UUID; -import nodomain.freeyourgadget.gadgetbridge.service.AbstractHeadphoneSerialDeviceSupport; -import nodomain.freeyourgadget.gadgetbridge.service.serial.GBDeviceIoThread; -import nodomain.freeyourgadget.gadgetbridge.service.serial.GBDeviceProtocol; - -public class GalaxyBudsDeviceSupport extends AbstractHeadphoneSerialDeviceSupport { - private static final Logger LOG = LoggerFactory.getLogger(GalaxyBudsDeviceSupport.class); +import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; +import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; +import nodomain.freeyourgadget.gadgetbridge.service.btbr.TransactionBuilder; +import nodomain.freeyourgadget.gadgetbridge.service.serial.AbstractHeadphoneSerialDeviceSupportV2; +public class GalaxyBudsDeviceSupport extends AbstractHeadphoneSerialDeviceSupportV2 { @Override - public void onSendConfiguration(String config) { - super.onSendConfiguration(config); - } - - @Override - public void onTestNewFunction() { - super.onTestNewFunction(); - } - - @Override - public synchronized GalaxyBudsIOThread getDeviceIOThread() { - return (GalaxyBudsIOThread) super.getDeviceIOThread(); - } - - @Override - public boolean useAutoConnect() { - return false; - } - - @Override - protected GBDeviceProtocol createDeviceProtocol() { + protected GalaxyBudsProtocol createDeviceProtocol() { return new GalaxyBudsProtocol(getDevice()); } @Override - protected GBDeviceIoThread createDeviceIOThread() { - return new GalaxyBudsIOThread(getDevice(), getContext(), (GalaxyBudsProtocol) getDeviceProtocol(), - GalaxyBudsDeviceSupport.this, getBluetoothAdapter()); + protected UUID getSupportedService() { + if (getDevice().getType().equals(DeviceType.GALAXY_BUDS)) { + return GalaxyBudsProtocol.UUID_GALAXY_BUDS_DEVICE_CTRL; + } + return GalaxyBudsProtocol.UUID_GALAXY_BUDS_LIVE_DEVICE_CTRL; + } + + @Override + protected TransactionBuilder initializeDevice(final TransactionBuilder builder) { + builder.setDeviceState(GBDevice.State.INITIALIZED); + + return builder; } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsIOThread.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsIOThread.java deleted file mode 100644 index dfeedc0ce2..0000000000 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsIOThread.java +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright (C) 2021-2024 narektor, Petr Vaněk - - 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.service.devices.galaxy_buds; - -import static nodomain.freeyourgadget.gadgetbridge.util.GB.hexdump; - -import android.bluetooth.BluetoothAdapter; -import android.content.Context; -import android.os.ParcelUuid; - -import androidx.annotation.NonNull; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.UUID; - -import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; -import nodomain.freeyourgadget.gadgetbridge.service.btclassic.BtClassicIoThread; - -public class GalaxyBudsIOThread extends BtClassicIoThread { - private static final Logger LOG = LoggerFactory.getLogger(GalaxyBudsIOThread.class); - - private final GalaxyBudsProtocol galaxyBudsProtocol; - private final GBDevice gbDevice; - - @Override - @NonNull - protected UUID getUuidToConnect(@NonNull ParcelUuid[] uuids) { - if (gbDevice.getType().equals(DeviceType.GALAXY_BUDS)) { - return galaxyBudsProtocol.UUID_GALAXY_BUDS_DEVICE_CTRL; - } - return galaxyBudsProtocol.UUID_GALAXY_BUDS_LIVE_DEVICE_CTRL; - } - - public GalaxyBudsIOThread(GBDevice device, Context context, GalaxyBudsProtocol deviceProtocol, - GalaxyBudsDeviceSupport galaxyBudsDeviceSupport, BluetoothAdapter bluetoothAdapter) { - super(device, context, deviceProtocol, galaxyBudsDeviceSupport, bluetoothAdapter); - galaxyBudsProtocol = deviceProtocol; - gbDevice = device; - } - - @Override - protected byte[] parseIncoming(InputStream inStream) throws IOException { - byte[] buffer = new byte[1048576]; //HUGE read - int bytes = inStream.read(buffer); - LOG.debug("read " + bytes + " bytes. " + hexdump(buffer, 0, bytes)); - return Arrays.copyOf(buffer, bytes); - } - -} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsProtocol.java index 69bf64fd60..14c25b4265 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/galaxy_buds/GalaxyBudsProtocol.java @@ -46,8 +46,8 @@ import nodomain.freeyourgadget.gadgetbridge.service.serial.GBDeviceProtocol; public class GalaxyBudsProtocol extends GBDeviceProtocol { private static final Logger LOG = LoggerFactory.getLogger(GalaxyBudsProtocol.class); - final UUID UUID_GALAXY_BUDS_DEVICE_CTRL = UUID.fromString("00001102-0000-1000-8000-00805f9b34fd"); - final UUID UUID_GALAXY_BUDS_LIVE_DEVICE_CTRL = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); + public static final UUID UUID_GALAXY_BUDS_DEVICE_CTRL = UUID.fromString("00001102-0000-1000-8000-00805f9b34fd"); + public static final UUID UUID_GALAXY_BUDS_LIVE_DEVICE_CTRL = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); private static final byte SOM_BUDS = (byte) 0xFE; private static final byte EOM_BUDS = (byte) 0xEE;