1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-07-02 09:46:24 +02:00

Xiaomi: Fix reconnect if characteristics are null

If a service was found, but characteristics are null, maybe we're just
connecting too early - set the device to reconnect.
This commit is contained in:
José Rebelo 2023-12-05 18:30:33 +00:00
parent 4de7cb3591
commit 7f7834c620

View File

@ -118,13 +118,17 @@ public class XiaomiSupport extends AbstractBTLEDeviceSupport {
BluetoothGattCharacteristic btCharacteristicCommandWrite = null;
BluetoothGattCharacteristic btCharacteristicActivityData = null;
BluetoothGattCharacteristic btCharacteristicDataUpload = null;
// Attempt to find a known xiaomi service
for (Map.Entry<UUID, XiaomiBleUuids.XiaomiBleUuidSet> xiaomiUuid : XiaomiBleUuids.UUIDS.entrySet()) {
if (getSupportedServices().contains(xiaomiUuid.getKey())) {
LOG.debug("Found Xiaomi service: {}", xiaomiUuid.getKey());
btCharacteristicCommandRead = getCharacteristic(xiaomiUuid.getValue().getCharacteristicCommandRead());
btCharacteristicCommandWrite = getCharacteristic(xiaomiUuid.getValue().getCharacteristicCommandWrite());
btCharacteristicActivityData = getCharacteristic(xiaomiUuid.getValue().getCharacteristicActivityData());
btCharacteristicDataUpload = getCharacteristic(xiaomiUuid.getValue().getCharacteristicDataUpload());
uuidSet = xiaomiUuid.getValue();
btCharacteristicCommandRead = getCharacteristic(uuidSet.getCharacteristicCommandRead());
btCharacteristicCommandWrite = getCharacteristic(uuidSet.getCharacteristicCommandWrite());
btCharacteristicActivityData = getCharacteristic(uuidSet.getCharacteristicActivityData());
btCharacteristicDataUpload = getCharacteristic(uuidSet.getCharacteristicDataUpload());
if (btCharacteristicCommandRead == null) {
LOG.warn("btCharacteristicCommandRead characteristicc is null");
continue;
@ -139,7 +143,6 @@ public class XiaomiSupport extends AbstractBTLEDeviceSupport {
continue;
}
uuidSet = xiaomiUuid.getValue();
break;
}
}