From b395e889c3edd4041360784a4d8fb08e2d1b1867 Mon Sep 17 00:00:00 2001 From: MrYoranimo Date: Tue, 16 Jan 2024 13:55:06 +0100 Subject: [PATCH] Xiaomi: temporary fix for database errors when reconnecting --- .../service/devices/xiaomi/XiaomiBleSupport.java | 6 ++++-- .../service/devices/xiaomi/XiaomiSppSupport.java | 6 ++++-- .../gadgetbridge/service/devices/xiaomi/XiaomiSupport.java | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiBleSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiBleSupport.java index 268db4805..5b8f95206 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiBleSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiBleSupport.java @@ -113,8 +113,10 @@ public class XiaomiBleSupport extends XiaomiConnectionSupport { } // FIXME unsetDynamicState unsets the fw version, which causes problems.. - if (getDevice().getFirmwareVersion() == null && mXiaomiSupport.getCachedFirmwareVersion() != null) { - getDevice().setFirmwareVersion(mXiaomiSupport.getCachedFirmwareVersion()); + if (getDevice().getFirmwareVersion() == null) { + getDevice().setFirmwareVersion(mXiaomiSupport.getCachedFirmwareVersion() != null ? + mXiaomiSupport.getCachedFirmwareVersion() : + "N/A"); } if (btCharacteristicCommandRead == null || btCharacteristicCommandWrite == null) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiSppSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiSppSupport.java index 240964989..e974bed05 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiSppSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiSppSupport.java @@ -71,8 +71,10 @@ public class XiaomiSppSupport extends XiaomiConnectionSupport { @Override protected TransactionBuilder initializeDevice(TransactionBuilder builder) { // FIXME unsetDynamicState unsets the fw version, which causes problems.. - if (getDevice().getFirmwareVersion() == null && mXiaomiSupport.getCachedFirmwareVersion() != null) { - getDevice().setFirmwareVersion(mXiaomiSupport.getCachedFirmwareVersion()); + if (getDevice().getFirmwareVersion() == null) { + getDevice().setFirmwareVersion(mXiaomiSupport.getCachedFirmwareVersion() != null ? + mXiaomiSupport.getCachedFirmwareVersion() : + "N/A"); } builder.add(new SetDeviceStateAction(getDevice(), GBDevice.State.INITIALIZING, getContext())); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiSupport.java index dde826743..80064424b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiSupport.java @@ -178,7 +178,7 @@ public class XiaomiSupport extends AbstractDeviceSupport { public void setContext(final GBDevice device, final BluetoothAdapter adapter, final Context context) { // FIXME unsetDynamicState unsets the fw version, which causes problems.. - if (getCachedFirmwareVersion() == null && device.getFirmwareVersion() != null) { + if (device.getFirmwareVersion() != null) { setCachedFirmwareVersion(device.getFirmwareVersion()); }