From 24a84a49f19d2cdd438b9dbf34205d0f8d9d5cc1 Mon Sep 17 00:00:00 2001 From: darken Date: Thu, 2 Apr 2026 15:59:40 +0200 Subject: [PATCH] refactor: Remove meta from PodDevice public API and delete unused PodMonitorExtensions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All external consumers now use top-level PodDevice properties. BlePodMonitor extensions were dead code — all callers use DeviceMonitor equivalents. --- .../java/eu/darken/capod/monitor/core/DeviceMonitor.kt | 4 ++-- .../java/eu/darken/capod/monitor/core/PodDevice.kt | 1 - .../darken/capod/monitor/core/PodMonitorExtensions.kt | 10 ---------- .../java/eu/darken/capod/monitor/core/PodDeviceTest.kt | 8 ++------ 4 files changed, 4 insertions(+), 19 deletions(-) delete mode 100644 app/src/main/java/eu/darken/capod/monitor/core/PodMonitorExtensions.kt diff --git a/app/src/main/java/eu/darken/capod/monitor/core/DeviceMonitor.kt b/app/src/main/java/eu/darken/capod/monitor/core/DeviceMonitor.kt index d35caa69..d6936300 100644 --- a/app/src/main/java/eu/darken/capod/monitor/core/DeviceMonitor.kt +++ b/app/src/main/java/eu/darken/capod/monitor/core/DeviceMonitor.kt @@ -32,8 +32,8 @@ class DeviceMonitor @Inject constructor( ) { pods, aapStates, cachedStates, profiles -> // Live devices — BLE + AAP + cached fallback for missing fields val liveDevices = pods.map { pod -> - val bondedAddress = pod.meta?.profile?.address - val profile = pod.meta?.profile + val bondedAddress = pod.meta.profile?.address + val profile = pod.meta.profile PodDevice( profileId = profile?.id, label = profile?.label, diff --git a/app/src/main/java/eu/darken/capod/monitor/core/PodDevice.kt b/app/src/main/java/eu/darken/capod/monitor/core/PodDevice.kt index b6e4cd53..ab5ed6a8 100644 --- a/app/src/main/java/eu/darken/capod/monitor/core/PodDevice.kt +++ b/app/src/main/java/eu/darken/capod/monitor/core/PodDevice.kt @@ -40,7 +40,6 @@ data class PodDevice( /** BLE scan address (RPA, rotates). */ val bleAddress: BluetoothAddress? get() = ble?.address val identifier: BlePodSnapshot.Id? get() = ble?.identifier - val meta: BlePodSnapshot.Meta? get() = ble?.meta /** True when at least one live data source (BLE or AAP) is present. */ val isLive: Boolean get() = ble != null || aap != null diff --git a/app/src/main/java/eu/darken/capod/monitor/core/PodMonitorExtensions.kt b/app/src/main/java/eu/darken/capod/monitor/core/PodMonitorExtensions.kt deleted file mode 100644 index 4ffefc4f..00000000 --- a/app/src/main/java/eu/darken/capod/monitor/core/PodMonitorExtensions.kt +++ /dev/null @@ -1,10 +0,0 @@ -package eu.darken.capod.monitor.core - -import eu.darken.capod.pods.core.apple.ble.BlePodSnapshot -import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.map - -fun BlePodMonitor.devicesWithProfiles(): Flow> = devices - .map { devices -> devices.filter { it.meta.profile != null } } - -fun BlePodMonitor.primaryDevice(): Flow = devicesWithProfiles().map { it.firstOrNull() } \ No newline at end of file diff --git a/app/src/test/java/eu/darken/capod/monitor/core/PodDeviceTest.kt b/app/src/test/java/eu/darken/capod/monitor/core/PodDeviceTest.kt index 43430fb0..e1368d6c 100644 --- a/app/src/test/java/eu/darken/capod/monitor/core/PodDeviceTest.kt +++ b/app/src/test/java/eu/darken/capod/monitor/core/PodDeviceTest.kt @@ -98,25 +98,21 @@ class PodDeviceTest : BaseTest() { } @Test - fun `identity properties delegate to BLE`() { + fun `identifier delegates to BLE`() { val id = BlePodSnapshot.Id() - val meta = mockk(relaxed = true) val device = PodDevice( profileId = null, ble = mockk(relaxed = true) { every { identifier } returns id - every { this@mockk.meta } returns meta }, aap = null, ) device.identifier shouldBe id - device.meta shouldBe meta } @Test - fun `identity properties null when BLE null`() { + fun `identifier null when BLE null`() { val device = PodDevice(profileId = null, ble = null, aap = null) device.identifier.shouldBeNull() - device.meta.shouldBeNull() } @Test