From 4313050df5a111253e160284bbc775ab9e790550 Mon Sep 17 00:00:00 2001 From: Julian Steenbakker Date: Mon, 17 Nov 2025 14:26:59 +0100 Subject: [PATCH 1/3] fix: STATE_CONNECTING blocked due to it already being default value --- .../src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java b/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java index 242b16c5..1c01d56c 100644 --- a/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java +++ b/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java @@ -778,7 +778,7 @@ public abstract class DfuBaseService extends IntentService implements DfuProgres * Stores the last progress percent. Used to prevent from sending progress notifications with * the same value. */ - private int mLastProgress = -1; + private int mLastProgress = 0; /* package */ DfuProgressInfo mProgressInfo; private long mLastNotificationTime; From 694ecaadf9c6a10adae8c2841fb0dcfaff6dc307 Mon Sep 17 00:00:00 2001 From: Julian Steenbakker Date: Mon, 17 Nov 2025 14:27:40 +0100 Subject: [PATCH 2/3] fix: enable multiple status updates being passed through --- .../src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java b/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java index 1c01d56c..a876c42d 100644 --- a/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java +++ b/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java @@ -1763,7 +1763,7 @@ protected void refreshDeviceCache(@NonNull final BluetoothGatt gatt, final boole public void updateProgressNotification() { final DfuProgressInfo info = mProgressInfo; final int progress = info.getProgress(); - if (mLastProgress == progress) + if (mLastProgress == progress && progress >= 0 && progress <= 100) return; mLastProgress = progress; From 04abf164aa385f64f18d9888800abbd4d664bb81 Mon Sep 17 00:00:00 2001 From: Julian Steenbakker Date: Mon, 17 Nov 2025 14:27:57 +0100 Subject: [PATCH 3/3] fix: connection state never being set to STATE_DISCONNECTING --- .../src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java b/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java index a876c42d..d2fc0c4f 100644 --- a/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java +++ b/lib/dfu/src/main/java/no/nordicsemi/android/dfu/DfuBaseService.java @@ -1661,6 +1661,8 @@ protected void disconnect(@NonNull final BluetoothGatt gatt) { if (mConnectionState == STATE_DISCONNECTED) return; + mConnectionState = STATE_DISCONNECTING; + sendLogBroadcast(LOG_LEVEL_VERBOSE, "Disconnecting..."); mProgressInfo.setProgress(PROGRESS_DISCONNECTING);