From e3693628c2e042e012de095e821488d7ba84f1a0 Mon Sep 17 00:00:00 2001 From: darken Date: Thu, 2 Apr 2026 15:42:12 +0200 Subject: [PATCH] refactor: Use PodDevice properties instead of reaching through BLE metadata Replace device.meta?.profile?.address/id/label with device.address/profileId/label in AutoConnect, PopUpReaction, and BatteryGlanceWidget. --- .../eu/darken/capod/main/ui/widget/BatteryGlanceWidget.kt | 4 ++-- .../darken/capod/reaction/core/autoconnect/AutoConnect.kt | 2 +- .../eu/darken/capod/reaction/core/popup/PopUpReaction.kt | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/darken/capod/main/ui/widget/BatteryGlanceWidget.kt b/app/src/main/java/eu/darken/capod/main/ui/widget/BatteryGlanceWidget.kt index c9f877f3..3fedd139 100644 --- a/app/src/main/java/eu/darken/capod/main/ui/widget/BatteryGlanceWidget.kt +++ b/app/src/main/java/eu/darken/capod/main/ui/widget/BatteryGlanceWidget.kt @@ -86,8 +86,8 @@ class BatteryGlanceWidget : GlanceAppWidget() { val isPro = upgradeInfo?.isPro ?: initialIsPro - val liveDevice = devices.firstOrNull { it.meta?.profile?.id == profileId } - val device = liveDevice ?: cachedDevice?.takeIf { it.meta?.profile?.id == profileId } + val liveDevice = devices.firstOrNull { it.profileId == profileId } + val device = liveDevice ?: cachedDevice?.takeIf { it.profileId == profileId } val profileLabel = profileId?.let { pid -> profiles.firstOrNull { it.id == pid }?.label diff --git a/app/src/main/java/eu/darken/capod/reaction/core/autoconnect/AutoConnect.kt b/app/src/main/java/eu/darken/capod/reaction/core/autoconnect/AutoConnect.kt index f952bd4e..4400c4f7 100644 --- a/app/src/main/java/eu/darken/capod/reaction/core/autoconnect/AutoConnect.kt +++ b/app/src/main/java/eu/darken/capod/reaction/core/autoconnect/AutoConnect.kt @@ -49,7 +49,7 @@ class AutoConnect @Inject constructor( .map { (connectedDevices, mainDevice) -> log(TAG, VERBOSE) { "mainPodDevice is $mainDevice" } - val mainDeviceAddr = mainDevice.meta?.profile?.address + val mainDeviceAddr = mainDevice.address if (mainDeviceAddr.isNullOrEmpty()) { log(TAG, WARN) { "mainDeviceAddress is null" } return@map diff --git a/app/src/main/java/eu/darken/capod/reaction/core/popup/PopUpReaction.kt b/app/src/main/java/eu/darken/capod/reaction/core/popup/PopUpReaction.kt index a79a381c..41dbb701 100644 --- a/app/src/main/java/eu/darken/capod/reaction/core/popup/PopUpReaction.kt +++ b/app/src/main/java/eu/darken/capod/reaction/core/popup/PopUpReaction.kt @@ -53,7 +53,7 @@ class PopUpReaction @Inject constructor( log(TAG, VERBOSE) { "previous-id=${previous?.identifier}, current-id=${current.identifier}" } val isSameDeviceOrProfile = previous?.identifier == current.identifier || - (previous?.meta?.profile?.id != null && previous.meta?.profile?.id == current.meta?.profile?.id) + (previous?.profileId != null && previous.profileId == current.profileId) val isSameDeviceWithCaseNowOpen = isSameDeviceOrProfile && previous?.caseLidState != current.caseLidState val isNewDeviceWithJustOpenedCase = !isSameDeviceOrProfile && previous?.caseLidState != current.caseLidState @@ -66,7 +66,7 @@ class PopUpReaction @Inject constructor( } private fun throttleCasePopUps(current: PodDevice): Event? { - val cooldownKey = current.meta?.profile?.id ?: current.identifier.toString() + val cooldownKey = current.profileId ?: current.identifier.toString() val now = Instant.now() val lastShown = caseCoolDowns[cooldownKey] @@ -110,7 +110,7 @@ class PopUpReaction @Inject constructor( deviceMonitor.primaryDevice().distinctUntilChangedBy { it?.rawDataHex }, ) { devices, broadcast -> log(TAG) { "$broadcast $devices " } - val primaryAddr = broadcast?.meta?.profile?.address + val primaryAddr = broadcast?.address val direct = devices.singleOrNull { it.address == primaryAddr }.also { log(TAG, VERBOSE) { "Connected main device is $it" } }