2021-10-24 10:02:45 +02:00
|
|
|
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;
|
2021-11-03 22:06:35 +01:00
|
|
|
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
|
2021-10-24 10:02:45 +02:00
|
|
|
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;
|
2021-11-03 22:06:35 +01:00
|
|
|
private final GBDevice gbDevice;
|
2021-10-24 10:02:45 +02:00
|
|
|
|
|
|
|
@NonNull
|
|
|
|
protected UUID getUuidToConnect(@NonNull ParcelUuid[] uuids) {
|
2021-11-03 22:06:35 +01:00
|
|
|
if (gbDevice.getType().equals(DeviceType.GALAXY_BUDS)) {
|
|
|
|
return galaxyBudsProtocol.UUID_GALAXY_BUDS_DEVICE_CTRL;
|
|
|
|
}
|
2023-02-21 15:50:24 +01:00
|
|
|
return galaxyBudsProtocol.UUID_GALAXY_BUDS_LIVE_DEVICE_CTRL;
|
2021-10-24 10:02:45 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public GalaxyBudsIOThread(GBDevice device, Context context, GalaxyBudsProtocol deviceProtocol,
|
|
|
|
GalaxyBudsDeviceSupport galaxyBudsDeviceSupport, BluetoothAdapter bluetoothAdapter) {
|
|
|
|
super(device, context, deviceProtocol, galaxyBudsDeviceSupport, bluetoothAdapter);
|
|
|
|
galaxyBudsProtocol = deviceProtocol;
|
2021-11-03 22:06:35 +01:00
|
|
|
gbDevice = device;
|
2021-10-24 10:02:45 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@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);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|