refactor: Remove meta from PodDevice public API and delete unused PodMonitorExtensions

All external consumers now use top-level PodDevice properties. BlePodMonitor extensions were dead code — all callers use DeviceMonitor equivalents.
This commit is contained in:
darken
2026-04-02 16:01:00 +02:00
parent e3693628c2
commit 24a84a49f1
4 changed files with 4 additions and 19 deletions
@@ -32,8 +32,8 @@ class DeviceMonitor @Inject constructor(
) { pods, aapStates, cachedStates, profiles -> ) { pods, aapStates, cachedStates, profiles ->
// Live devices — BLE + AAP + cached fallback for missing fields // Live devices — BLE + AAP + cached fallback for missing fields
val liveDevices = pods.map { pod -> val liveDevices = pods.map { pod ->
val bondedAddress = pod.meta?.profile?.address val bondedAddress = pod.meta.profile?.address
val profile = pod.meta?.profile val profile = pod.meta.profile
PodDevice( PodDevice(
profileId = profile?.id, profileId = profile?.id,
label = profile?.label, label = profile?.label,
@@ -40,7 +40,6 @@ data class PodDevice(
/** BLE scan address (RPA, rotates). */ /** BLE scan address (RPA, rotates). */
val bleAddress: BluetoothAddress? get() = ble?.address val bleAddress: BluetoothAddress? get() = ble?.address
val identifier: BlePodSnapshot.Id? get() = ble?.identifier 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. */ /** True when at least one live data source (BLE or AAP) is present. */
val isLive: Boolean get() = ble != null || aap != null val isLive: Boolean get() = ble != null || aap != 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<List<BlePodSnapshot>> = devices
.map { devices -> devices.filter { it.meta.profile != null } }
fun BlePodMonitor.primaryDevice(): Flow<BlePodSnapshot?> = devicesWithProfiles().map { it.firstOrNull() }
@@ -98,25 +98,21 @@ class PodDeviceTest : BaseTest() {
} }
@Test @Test
fun `identity properties delegate to BLE`() { fun `identifier delegates to BLE`() {
val id = BlePodSnapshot.Id() val id = BlePodSnapshot.Id()
val meta = mockk<BlePodSnapshot.Meta>(relaxed = true)
val device = PodDevice( val device = PodDevice(
profileId = null, ble = mockk(relaxed = true) { profileId = null, ble = mockk(relaxed = true) {
every { identifier } returns id every { identifier } returns id
every { this@mockk.meta } returns meta
}, },
aap = null, aap = null,
) )
device.identifier shouldBe id device.identifier shouldBe id
device.meta shouldBe meta
} }
@Test @Test
fun `identity properties null when BLE null`() { fun `identifier null when BLE null`() {
val device = PodDevice(profileId = null, ble = null, aap = null) val device = PodDevice(profileId = null, ble = null, aap = null)
device.identifier.shouldBeNull() device.identifier.shouldBeNull()
device.meta.shouldBeNull()
} }
@Test @Test