From 8e563ac7bbd8519a83cbeedf2f9ec1ee54fbbd7d Mon Sep 17 00:00:00 2001 From: darken Date: Tue, 18 Jan 2022 12:02:27 +0100 Subject: [PATCH] Move model identifier out of top level factory and into specific device classes. --- .../capod/pods/core/apple/AppleFactory.kt | 24 +++++++++---------- .../pods/core/apple/airpods/AirPodsGen1.kt | 4 ++++ .../pods/core/apple/airpods/AirPodsGen2.kt | 4 ++++ .../pods/core/apple/airpods/AirPodsGen3.kt | 4 ++++ .../pods/core/apple/airpods/AirPodsMax.kt | 3 +++ .../pods/core/apple/airpods/AirPodsPro.kt | 4 ++++ .../capod/pods/core/apple/beats/BeatsFlex.kt | 3 +++ .../capod/pods/core/apple/beats/BeatsSolo3.kt | 3 +++ .../pods/core/apple/beats/BeatsStudio3.kt | 3 +++ .../capod/pods/core/apple/beats/BeatsX.kt | 3 +++ .../pods/core/apple/beats/PowerBeats3.kt | 3 +++ .../pods/core/apple/beats/PowerBeatsPro.kt | 4 ++++ 12 files changed, 50 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/AppleFactory.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/AppleFactory.kt index 3dc44e84..b127f15f 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/AppleFactory.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/AppleFactory.kt @@ -23,7 +23,7 @@ import javax.inject.Singleton @Singleton class AppleFactory @Inject constructor( private val continuityProtocolDecoder: ContinuityProtocol.Decoder, - private val proximityPairingDecoder: ProximityPairing.Decoder + private val proximityPairingDecoder: ProximityPairing.Decoder, ) { data class KnownDevice( @@ -153,62 +153,62 @@ class AppleFactory @Inject constructor( val dmDirty = pm.data[1] val specificDevice = when { - dm == 0x0220.toUShort() -> AirPodsGen1( + dm == AirPodsGen1.DEVICE_CODE -> AirPodsGen1( identifier = identifier, scanResult = scanResult, proximityMessage = pm, cachedBatteryPercentage = cachedCaseBattery, ) - dm == 0x0F20.toUShort() -> AirPodsGen2( + dm == AirPodsGen2.DEVICE_CODE -> AirPodsGen2( identifier = identifier, scanResult = scanResult, proximityMessage = pm, cachedBatteryPercentage = cachedCaseBattery, ) - dm == 0x1320.toUShort() -> AirPodsGen3( + dm == AirPodsGen3.DEVICE_CODE -> AirPodsGen3( identifier = identifier, scanResult = scanResult, proximityMessage = pm, cachedBatteryPercentage = cachedCaseBattery, ) - dm == 0x0e20.toUShort() -> AirPodsPro( + dm == AirPodsPro.DEVICE_CODE -> AirPodsPro( identifier = identifier, scanResult = scanResult, proximityMessage = pm, cachedBatteryPercentage = cachedCaseBattery, ) - dmDirty == 11.toUByte() -> PowerBeatsPro( + dmDirty == PowerBeatsPro.DEVICE_CODE_DIRTY -> PowerBeatsPro( identifier = identifier, scanResult = scanResult, proximityMessage = pm, cachedBatteryPercentage = cachedCaseBattery, ) - dmDirty == 10.toUByte() -> AirPodsMax( + dmDirty == AirPodsMax.DEVICE_CODE_DIRTY -> AirPodsMax( identifier = identifier, scanResult = scanResult, proximityMessage = pm, ) - dm == 0x0320.toUShort() -> PowerBeats3( + dm == PowerBeats3.DEVICE_CODE -> PowerBeats3( identifier = identifier, scanResult = scanResult, proximityMessage = pm ) - dm == 0x0620.toUShort() -> BeatsSolo3( + dm == BeatsSolo3.DEVICE_CODE -> BeatsSolo3( identifier = identifier, scanResult = scanResult, proximityMessage = pm ) - dmDirty == 9.toUByte() -> BeatsStudio3( + dmDirty == BeatsStudio3.DEVICE_CODE_DIRTY -> BeatsStudio3( identifier = identifier, scanResult = scanResult, proximityMessage = pm ) - dm == 0x0520.toUShort() -> BeatsX( + dm == BeatsX.DEVICE_CODE -> BeatsX( identifier = identifier, scanResult = scanResult, proximityMessage = pm ) - dm == 0x1020.toUShort() -> BeatsFlex( + dm == BeatsFlex.DEVICE_CODE -> BeatsFlex( identifier = identifier, scanResult = scanResult, proximityMessage = pm diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1.kt index 6f16b2b6..424e9f43 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1.kt @@ -23,4 +23,8 @@ data class AirPodsGen1 constructor( override val batteryCasePercent: Float? get() = super.batteryCasePercent ?: cachedBatteryPercentage + + companion object { + val DEVICE_CODE = 0x0220.toUShort() + } } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2.kt index fc1608d6..87133228 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2.kt @@ -23,4 +23,8 @@ data class AirPodsGen2 constructor( override val batteryCasePercent: Float? get() = super.batteryCasePercent ?: cachedBatteryPercentage + + companion object { + val DEVICE_CODE = 0x0F20.toUShort() + } } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3.kt index 0619f926..70b3233d 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3.kt @@ -23,4 +23,8 @@ data class AirPodsGen3 constructor( override val batteryCasePercent: Float? get() = super.batteryCasePercent ?: cachedBatteryPercentage + + companion object { + val DEVICE_CODE = 0x1320.toUShort() + } } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMax.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMax.kt index 3dc22d64..7ec66c9e 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMax.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMax.kt @@ -20,4 +20,7 @@ data class AirPodsMax( override val iconRes: Int get() = R.drawable.ic_device_generic_headphones + companion object { + val DEVICE_CODE_DIRTY = 10.toUByte() + } } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsPro.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsPro.kt index 4540b213..a80bff84 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsPro.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsPro.kt @@ -25,4 +25,8 @@ data class AirPodsPro( override val batteryCasePercent: Float? get() = super.batteryCasePercent ?: cachedBatteryPercentage + + companion object { + val DEVICE_CODE = 0x0e20.toUShort() + } } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsFlex.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsFlex.kt index d8a18fd3..8563e26c 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsFlex.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsFlex.kt @@ -20,4 +20,7 @@ data class BeatsFlex( override val iconRes: Int get() = R.drawable.ic_device_generic_earbuds + companion object { + val DEVICE_CODE = 0x1020.toUShort() + } } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3.kt index fb646a45..da790de9 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3.kt @@ -20,4 +20,7 @@ data class BeatsSolo3( override val iconRes: Int get() = R.drawable.ic_device_generic_earbuds + companion object { + val DEVICE_CODE = 0x0620.toUShort() + } } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3.kt index 2e86dd85..523570a6 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3.kt @@ -20,4 +20,7 @@ data class BeatsStudio3( override val iconRes: Int get() = R.drawable.ic_device_generic_earbuds + companion object { + val DEVICE_CODE_DIRTY = 9.toUByte() + } } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsX.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsX.kt index ad0dce34..c19a019d 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsX.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsX.kt @@ -20,4 +20,7 @@ data class BeatsX( override val iconRes: Int get() = R.drawable.ic_device_generic_earbuds + companion object { + val DEVICE_CODE = 0x0520.toUShort() + } } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3.kt index 3d1c2f3c..2c818cb9 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3.kt @@ -20,4 +20,7 @@ data class PowerBeats3( override val iconRes: Int get() = R.drawable.ic_device_generic_earbuds + companion object { + val DEVICE_CODE = 0x0320.toUShort() + } } \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsPro.kt b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsPro.kt index 3d939f17..6892310b 100644 --- a/app/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsPro.kt +++ b/app/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsPro.kt @@ -23,4 +23,8 @@ data class PowerBeatsPro( override val batteryCasePercent: Float? get() = super.batteryCasePercent ?: cachedBatteryPercentage + + companion object { + val DEVICE_CODE_DIRTY = 11.toUByte() + } } \ No newline at end of file