diff --git a/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragmentVM.kt b/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragmentVM.kt index 3a0d225b..f0e9b97b 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragmentVM.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/overview/OverviewFragmentVM.kt @@ -80,7 +80,6 @@ class OverviewFragmentVM @Inject constructor( .forEach { items.add(it) } pods - .sortedBy { it.rssi } .map { when (it) { is DualApplePods -> DualApplePodsCardVH.Item(it) diff --git a/app/src/main/java/eu/darken/capod/monitor/core/PodMonitor.kt b/app/src/main/java/eu/darken/capod/monitor/core/PodMonitor.kt index 393da8ec..58261d6a 100644 --- a/app/src/main/java/eu/darken/capod/monitor/core/PodMonitor.kt +++ b/app/src/main/java/eu/darken/capod/monitor/core/PodMonitor.kt @@ -19,9 +19,9 @@ class PodMonitor @Inject constructor( val pods: Flow> = bleScanner.scan() .onStart { emptyList() } .map { scanResults -> - scanResults.mapNotNull { scanResult -> - podFactory.createPod(scanResult) - } + scanResults + .sortedByDescending { it.rssi } + .mapNotNull { podFactory.createPod(it) } } companion object { 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 f1fe3907..76dddd23 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,6 +20,10 @@ 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.airpods.DualApplePods +import eu.darken.capod.pods.core.getBatteryCase +import eu.darken.capod.pods.core.getBatteryLeftPod +import eu.darken.capod.pods.core.getBatteryRightPod import javax.inject.Inject @@ -48,20 +52,32 @@ class MonitorNotifications @Inject constructor( builder = NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID) .setChannelId(NOTIFICATION_CHANNEL_ID) .setContentIntent(openPi) - .setPriority(NotificationCompat.PRIORITY_HIGH) + .setPriority(NotificationCompat.PRIORITY_LOW) .setSmallIcon(R.drawable.ic_notification_device_status_icon) + .setOngoing(true) .setContentTitle(context.getString(R.string.app_name)) - .setStyle( - NotificationCompat.BigTextStyle().bigText(context.getString(R.string.device_status_loading_message)) - ) } - fun getBuilder(podDevice: PodDevice?): NotificationCompat.Builder { - if (podDevice == null) return builder - -// builder.setContentTitle(gear.primary.get(context)) -// builder.setStyle(NotificationCompat.BigTextStyle().bigText(it.secondary.get(context))) - log(TAG, VERBOSE) { "updatingNotification(): $podDevice" } + fun getBuilder(device: PodDevice?): NotificationCompat.Builder { + if (device == null) { + builder.setContentTitle(context.getString(R.string.device_status_loading_message)) + return builder + } + val infoText = when (device) { + is DualApplePods -> { + val sb = StringBuilder() + sb.append("L: ${device.getBatteryLeftPod(context)}") + sb.append(" | ") + sb.append("C: ${device.getBatteryCase(context)}") + sb.append(" | ") + sb.append("R: ${device.getBatteryRightPod(context)}") + } + else -> { + "Unknown device" + } + } + builder.setContentTitle(infoText) + log(TAG, VERBOSE) { "updatingNotification(): $device" } return builder }