From 81ca61760109cc77a664b917cbc761f95e6b56a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Sun, 22 Oct 2023 10:06:32 +0100 Subject: [PATCH] Xiaomi: Prevent NPE when not yet connected --- .../service/devices/xiaomi/XiaomiSupport.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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 9de912287..41dd98c1e 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 @@ -428,6 +428,12 @@ public abstract class XiaomiSupport extends AbstractBTLEDeviceSupport { } public void sendCommand(final TransactionBuilder builder, final XiaomiProto.Command command) { + if (this.characteristicCommandWrite == null) { + // Can sometimes happen in race conditions when connecting + receiving calendar event or weather updates + LOG.warn("characteristicCommandWrite is null!"); + return; + } + // FIXME builder is ignored final byte[] commandBytes = command.toByteArray(); LOG.debug("Sending command {}", GB.hexdump(commandBytes)); @@ -435,6 +441,12 @@ public abstract class XiaomiSupport extends AbstractBTLEDeviceSupport { } public void sendCommand(final TransactionBuilder builder, final byte[] commandBytes) { + if (this.characteristicCommandWrite == null) { + // Can sometimes happen in race conditions when connecting + receiving calendar event or weather updates + LOG.warn("characteristicCommandWrite is null!"); + return; + } + // FIXME builder is ignored this.characteristicCommandWrite.write(commandBytes); }