From b103b4f3e46bd184809a0dcba1f56c70a8837878 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Tue, 17 Oct 2023 15:20:20 +0200 Subject: [PATCH] Mi Watch Lite: fix unencrypted support after refactoring common Xiaomi code --- .../service/devices/xiaomi/XiaomiCharacteristic.java | 2 +- .../service/devices/xiaomi/XiaomiPlaintextSupport.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiCharacteristic.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiCharacteristic.java index 70a06ad35..0ce491bb4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiCharacteristic.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiCharacteristic.java @@ -258,7 +258,7 @@ public class XiaomiCharacteristic { buf.putShort((short) 0); buf.put((byte) 0); buf.put((byte) (isEncrypted ? 1 : 0)); - buf.putShort((short) Math.round(currentSending.length / 247.0)); + buf.putShort((short) Math.max(1,Math.round(currentSending.length / 247.0))); final TransactionBuilder builder = mSupport.createTransactionBuilder("send chunked start"); builder.write(bluetoothGattCharacteristic, buf.array()); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiPlaintextSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiPlaintextSupport.java index ff668849a..422f3ec28 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiPlaintextSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/XiaomiPlaintextSupport.java @@ -67,12 +67,12 @@ public class XiaomiPlaintextSupport extends XiaomiSupport { this.characteristicCommandRead.setEncrypted(false); this.characteristicCommandRead.setHandler(this::handleCommandBytes); this.characteristicCommandWrite = new XiaomiCharacteristic(this, btCharacteristicCommandWrite, authService); - this.characteristicCommandRead.setEncrypted(false); + this.characteristicCommandWrite.setEncrypted(false); this.characteristicActivityData = new XiaomiCharacteristic(this, btCharacteristicActivityData, authService); this.characteristicActivityData.setHandler(healthService.getActivityFetcher()::addChunk); - this.characteristicCommandRead.setEncrypted(false); + this.characteristicActivityData.setEncrypted(false); this.characteristicDataUpload = new XiaomiCharacteristic(this, btCharacteristicDataUpload, authService); - this.characteristicCommandRead.setEncrypted(false); + this.characteristicDataUpload.setEncrypted(false); // FIXME why is this needed? getDevice().setFirmwareVersion("...");