From f8cc520edebdc12529d5770683aaa788d281858d Mon Sep 17 00:00:00 2001 From: Daniele Gobbetti Date: Sun, 31 Oct 2021 15:48:36 +0100 Subject: [PATCH] BtClassic: generalize device initialization Also override the new generic initialization for Nothing Ear (1) --- .../gadgetbridge/service/btclassic/BtClassicIoThread.java | 8 ++++++-- .../service/devices/nothing/NothingIOThread.java | 7 +++++++ .../service/devices/nothing/NothingProtocol.java | 8 -------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btclassic/BtClassicIoThread.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btclassic/BtClassicIoThread.java index baca7a460..55ae751f5 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btclassic/BtClassicIoThread.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btclassic/BtClassicIoThread.java @@ -170,12 +170,16 @@ public abstract class BtClassicIoThread extends GBDeviceIoThread { return false; } - write(mProtocol.encodeSetTime()); - setUpdateState(GBDevice.State.INITIALIZED); + initialize(); return true; } + protected void initialize() { + write(mProtocol.encodeSetTime()); + setUpdateState(GBDevice.State.INITIALIZED); + } + /** * Returns the uuid to connect to. * Default implementation returns the first of the given uuids that were diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/NothingIOThread.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/NothingIOThread.java index 415ac4972..e72d52ff5 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/NothingIOThread.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/NothingIOThread.java @@ -29,6 +29,13 @@ public class NothingIOThread extends BtClassicIoThread { return mNothingProtocol.UUID_DEVICE_CTRL; } + @Override + protected void initialize() { + write(mNothingProtocol.encodeBatteryStatusReq()); + write(mNothingProtocol.encodeAudioModeStatusReq()); + setUpdateState(GBDevice.State.INITIALIZED); + } + public NothingIOThread(GBDevice device, Context context, NothingProtocol deviceProtocol, Ear1Support ear1Support, BluetoothAdapter bluetoothAdapter) { super(device, context, deviceProtocol, ear1Support, bluetoothAdapter); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/NothingProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/NothingProtocol.java index 7b960df42..2f04afb9c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/NothingProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/nothing/NothingProtocol.java @@ -218,14 +218,6 @@ public class NothingProtocol extends GBDeviceProtocol { return super.encodeSendConfiguration(config); } - @Override - public byte[] encodeSetTime() { - // This are earphones, there is no time to set here. However this method gets called soon - // after connecting, hence we use it to perform some initializations. - // TODO: Find a way to send more requests during the first connection - return encodeAudioModeStatusReq(); - } - private GBDeviceEvent handleBatteryInfo(byte[] payload) { //LOG.debug("Battery payload: " + hexdump(payload));