diff --git a/app/src/main/java/eu/darken/capod/monitor/ui/MonitorNotifications.kt b/app/src/main/java/eu/darken/capod/monitor/ui/MonitorNotifications.kt
index 9726594d..2855eaa1 100644
--- a/app/src/main/java/eu/darken/capod/monitor/ui/MonitorNotifications.kt
+++ b/app/src/main/java/eu/darken/capod/monitor/ui/MonitorNotifications.kt
@@ -20,10 +20,6 @@ import eu.darken.capod.common.hasApiLevel
import eu.darken.capod.common.notifications.PendingIntentCompat
import eu.darken.capod.main.ui.MainActivity
import eu.darken.capod.pods.core.PodDevice
-import eu.darken.capod.pods.core.apple.DualApplePods
-import eu.darken.capod.pods.core.getBatteryLevelCase
-import eu.darken.capod.pods.core.getBatteryLevelLeftPod
-import eu.darken.capod.pods.core.getBatteryLevelRightPod
import javax.inject.Inject
@@ -66,21 +62,7 @@ class MonitorNotifications @Inject constructor(
}
builder.setSmallIcon(device.iconRes)
-
- val infoText = when (device) {
- is DualApplePods -> {
- val sb = StringBuilder()
- sb.append("L: ${device.getBatteryLevelLeftPod(context)}")
- sb.append(" | ")
- sb.append("C: ${device.getBatteryLevelCase(context)}")
- sb.append(" | ")
- sb.append("R: ${device.getBatteryLevelRightPod(context)}")
- }
- else -> {
- "Unknown device"
- }
- }
- builder.setContentTitle(infoText)
+ builder.setContentTitle(device.getShortStatus(context))
log(TAG, VERBOSE) { "updatingNotification(): $device" }
return builder
}
diff --git a/app/src/main/java/eu/darken/capod/pods/core/PodDevice.kt b/app/src/main/java/eu/darken/capod/pods/core/PodDevice.kt
index d00118ee..8fc718b1 100644
--- a/app/src/main/java/eu/darken/capod/pods/core/PodDevice.kt
+++ b/app/src/main/java/eu/darken/capod/pods/core/PodDevice.kt
@@ -31,6 +31,8 @@ interface PodDevice {
fun getLabel(context: Context): String
+ fun getShortStatus(context: Context): String
+
@get:DrawableRes
val iconRes: Int
get() = R.drawable.ic_device_generic_earbuds
diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/BasicSingleApplePods.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/BasicSingleApplePods.kt
index a4dd3a5e..0e47b827 100644
--- a/app/src/main/java/eu/darken/capod/pods/core/apple/BasicSingleApplePods.kt
+++ b/app/src/main/java/eu/darken/capod/pods/core/apple/BasicSingleApplePods.kt
@@ -1,11 +1,19 @@
package eu.darken.capod.pods.core.apple
+import android.content.Context
+import eu.darken.capod.R
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.lowerNibble
import eu.darken.capod.pods.core.HasSinglePod
+import eu.darken.capod.pods.core.getBatteryLevelHeadset
interface BasicSingleApplePods : ApplePods, HasSinglePod {
+ override fun getShortStatus(context: Context): String = context.getString(
+ R.string.pods_single_basic_status_short,
+ getBatteryLevelHeadset(context),
+ )
+
override val batteryHeadsetPercent: Float?
get() = when (val value = rawPodsBattery.lowerNibble.toInt()) {
15 -> null
diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/DualApplePods.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/DualApplePods.kt
index 77b3d674..471b631c 100644
--- a/app/src/main/java/eu/darken/capod/pods/core/apple/DualApplePods.kt
+++ b/app/src/main/java/eu/darken/capod/pods/core/apple/DualApplePods.kt
@@ -7,13 +7,24 @@ import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.isBitSet
import eu.darken.capod.common.lowerNibble
import eu.darken.capod.common.upperNibble
-import eu.darken.capod.pods.core.HasCase
-import eu.darken.capod.pods.core.HasDualPods
+import eu.darken.capod.pods.core.*
import eu.darken.capod.pods.core.HasDualPods.Pod
-import eu.darken.capod.pods.core.HasEarDetection
interface DualApplePods : ApplePods, HasDualPods, HasEarDetection, HasCase {
+ override fun getShortStatus(context: Context): String = context.getString(
+ R.string.pods_dual_case_status_short,
+ getBatteryLevelLeftPod(context).let {
+ if (isLeftPodCharging) "$it*" else it
+ },
+ getBatteryLevelCase(context).let {
+ if (isCaseCharging) "$it*" else it
+ },
+ getBatteryLevelRightPod(context).let {
+ if (isRightPodCharging) "$it*" else it
+ },
+ )
+
val microPhonePod: Pod
get() = when (rawStatus.isBitSet(5)) {
true -> Pod.LEFT
diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/SingleApplePods.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/SingleApplePods.kt
index 7ddb43bf..d1071c62 100644
--- a/app/src/main/java/eu/darken/capod/pods/core/apple/SingleApplePods.kt
+++ b/app/src/main/java/eu/darken/capod/pods/core/apple/SingleApplePods.kt
@@ -1,12 +1,20 @@
package eu.darken.capod.pods.core.apple
+import android.content.Context
+import eu.darken.capod.R
import eu.darken.capod.common.isBitSet
import eu.darken.capod.common.upperNibble
import eu.darken.capod.pods.core.HasEarDetection
import eu.darken.capod.pods.core.HasSinglePod
+import eu.darken.capod.pods.core.getBatteryLevelHeadset
interface SingleApplePods : BasicSingleApplePods, HasEarDetection, HasSinglePod {
+ override fun getShortStatus(context: Context): String = context.getString(
+ R.string.pods_single_basic_status_short,
+ getBatteryLevelHeadset(context),
+ )
+
val isHeadphonesBeingWorn: Boolean
get() = rawStatus.isBitSet(1)
diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/UnknownAppleDevice.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/UnknownAppleDevice.kt
index 28f4feea..24b735d8 100644
--- a/app/src/main/java/eu/darken/capod/pods/core/apple/UnknownAppleDevice.kt
+++ b/app/src/main/java/eu/darken/capod/pods/core/apple/UnknownAppleDevice.kt
@@ -17,4 +17,8 @@ data class UnknownAppleDevice constructor(
override fun getLabel(context: Context): String {
return context.getString(R.string.device_unknown_label)
}
+
+ override fun getShortStatus(context: Context): String {
+ return context.getString(R.string.device_unknown_label)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0840d4d0..8d089751 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -99,4 +99,6 @@
Show other people\'s devices that are near you.
Auto play
Start music playback music when wearing the device (if supported).
+ L %1$s | C %2$s | R %3$s
+ Headphones: %1$s
\ No newline at end of file