From 8469ce4984b9502ba979e3ab82bc7baaf02ed0ed Mon Sep 17 00:00:00 2001 From: Kavish Devar Date: Fri, 3 Apr 2026 20:27:28 +0530 Subject: [PATCH] android: parse optimized charging status thanks @d4rken --- .../me/kavishdevar/librepods/composables/BatteryView.kt | 6 +++--- .../main/java/me/kavishdevar/librepods/constants/Packets.kt | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/android/app/src/main/java/me/kavishdevar/librepods/composables/BatteryView.kt b/android/app/src/main/java/me/kavishdevar/librepods/composables/BatteryView.kt index 9dfb9d4..c98729d 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/composables/BatteryView.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/composables/BatteryView.kt @@ -122,9 +122,9 @@ fun BatteryView(service: AirPodsService, preview: Boolean = false) { val leftLevel = left?.level ?: 0 val rightLevel = right?.level ?: 0 val caseLevel = case?.level ?: 0 - val leftCharging = left?.status == BatteryStatus.CHARGING - val rightCharging = right?.status == BatteryStatus.CHARGING - val caseCharging = case?.status == BatteryStatus.CHARGING + val leftCharging = left?.status == BatteryStatus.CHARGING || left?.status == BatteryStatus.OPTIMIZED_CHARGING + val rightCharging = right?.status == BatteryStatus.CHARGING || right?.status == BatteryStatus.OPTIMIZED_CHARGING + val caseCharging = case?.status == BatteryStatus.CHARGING || case?.status == BatteryStatus.OPTIMIZED_CHARGING val prevLeft = previousBatteryStatus.value.find { it.component == BatteryComponent.LEFT } val prevRight = previousBatteryStatus.value.find { it.component == BatteryComponent.RIGHT } diff --git a/android/app/src/main/java/me/kavishdevar/librepods/constants/Packets.kt b/android/app/src/main/java/me/kavishdevar/librepods/constants/Packets.kt index 3c83a1a..b4487aa 100644 --- a/android/app/src/main/java/me/kavishdevar/librepods/constants/Packets.kt +++ b/android/app/src/main/java/me/kavishdevar/librepods/constants/Packets.kt @@ -40,6 +40,7 @@ object BatteryStatus { const val CHARGING = 1 const val NOT_CHARGING = 2 const val DISCONNECTED = 4 + const val OPTIMIZED_CHARGING = 5 } @Parcelize @@ -58,6 +59,7 @@ data class Battery(val component: Int, val level: Int, val status: Int) : Parcel BatteryStatus.CHARGING -> "CHARGING" BatteryStatus.NOT_CHARGING -> "NOT_CHARGING" BatteryStatus.DISCONNECTED -> "DISCONNECTED" + BatteryStatus.OPTIMIZED_CHARGING -> "OPTIMIZED_CHARGING" else -> null } }