From 55d0697c44d8d0bf5a593aae09c30e8d4ca0db16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Sat, 26 Aug 2023 12:14:23 +0100 Subject: [PATCH] Huami: Display explicit error if there is not enough free space --- .../huami/operations/UpdateFirmwareOperation2020.java | 10 +++++++++- app/src/main/res/values/strings.xml | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/UpdateFirmwareOperation2020.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/UpdateFirmwareOperation2020.java index ed1d6ffc09..1db8b75e73 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/UpdateFirmwareOperation2020.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/UpdateFirmwareOperation2020.java @@ -54,6 +54,8 @@ public class UpdateFirmwareOperation2020 extends UpdateFirmwareOperation { public static final byte COMMAND_COMPLETE_TRANSFER = (byte) 0xd5; public static final byte COMMAND_FINALIZE_UPDATE = (byte) 0xd6; + public static final byte REPLY_ERROR_FREE_SPACE = (byte) 0x47; + protected int mChunkLength = -1; @Override @@ -133,7 +135,13 @@ public class UpdateFirmwareOperation2020 extends UpdateFirmwareOperation { LOG.error("Unexpected notification during firmware update: "); operationFailed(); getSupport().logMessageContent(value); - displayMessage(getContext(), getContext().getString(R.string.updatefirmwareoperation_metadata_updateproblem), Toast.LENGTH_LONG, GB.ERROR); + int errorMessage = R.string.updatefirmwareoperation_metadata_updateproblem; + // Display a more specific error message for known errors + if (value[0] == HuamiService.RESPONSE && value[1] == COMMAND_START_TRANSFER && value[2] == REPLY_ERROR_FREE_SPACE) { + // Not enough free space on the device + errorMessage = R.string.updatefirmwareoperation_updateproblem_free_space; + } + displayMessage(getContext(), getContext().getString(errorMessage), Toast.LENGTH_LONG, GB.ERROR); done(); } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index eeea5e104f..e79974627b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -824,6 +824,7 @@ %1$s (%2$s) Problem with the firmware transfer. DO NOT REBOOT your Mi Band! Problem with the firmware metadata transfer + The device does not have enough free space Firmware installation complete Firmware installation complete, rebooting device… Firmware flashing failed