From 2ff143b8584caef60c494d6dba298265157b46c7 Mon Sep 17 00:00:00 2001 From: darken Date: Wed, 4 Jun 2025 22:40:39 +0200 Subject: [PATCH] Determine case charging state more accurately The previous logic for determining if the case was charging relied on the `batteryCasePercent` being non-null. This commit refines the logic to check if the `batteryCasePercent` falls within the valid range of 0.0 to 1.0, providing a more accurate assessment of the case's charging status. --- .../main/java/eu/darken/capod/pods/core/apple/DualApplePods.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/DualApplePods.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/DualApplePods.kt index 0eb9bc90..899a9109 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/DualApplePods.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/DualApplePods.kt @@ -148,8 +148,9 @@ interface DualApplePods : ApplePods, HasChargeDetectionDual, DualPodDevice, HasE override val isCaseCharging: Boolean get() { payload.private?.data?.get(3)?.let { raw -> + val level = (raw and 0x7Fu).toInt() / 100f val isCharging = (raw and 0x80u).toInt() != 0 - if (batteryCasePercent != null) return isCharging + if (0f <= level && level <= 1.0f) return isCharging } return pubFlags.isBitSet(2)