From 87ca90f6cc40db2ffcc5413c22978e3a7edc7573 Mon Sep 17 00:00:00 2001 From: darken Date: Tue, 13 Sep 2022 22:00:02 +0200 Subject: [PATCH] Fix "last seen at". --- .../java/eu/darken/capod/common/bluetooth/BleScanResult.kt | 3 +++ .../eu/darken/capod/common/serialization/JavaInstantAdapter.kt | 2 +- .../eu/darken/capod/pods/core/apple/airpods/AirPodsGen1.kt | 1 + .../eu/darken/capod/pods/core/apple/airpods/AirPodsGen2.kt | 1 + .../eu/darken/capod/pods/core/apple/airpods/AirPodsGen3.kt | 1 + .../java/eu/darken/capod/pods/core/apple/airpods/AirPodsMax.kt | 1 + .../java/eu/darken/capod/pods/core/apple/airpods/AirPodsPro.kt | 1 + .../java/eu/darken/capod/pods/core/apple/beats/BeatsFlex.kt | 1 + .../java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3.kt | 1 + .../java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3.kt | 1 + .../main/java/eu/darken/capod/pods/core/apple/beats/BeatsX.kt | 1 + .../java/eu/darken/capod/pods/core/apple/beats/PowerBeats3.kt | 1 + .../eu/darken/capod/pods/core/apple/beats/PowerBeatsPro.kt | 1 + .../java/eu/darken/capod/pods/core/apple/misc/Twsi99999.kt | 1 + .../eu/darken/capod/pods/core/apple/misc/UnknownAppleDevice.kt | 1 + .../eu/darken/capod/pods/core/apple/misc/VarunrAirPodsPro.kt | 1 + .../eu/darken/capod/pods/core/unknown/UnknownDeviceFactory.kt | 1 + .../eu/darken/capod/wear/ui/overview/OverviewFragmentVM.kt | 2 +- .../darken/capod/wear/ui/overview/cards/pods/DualPodsCardVH.kt | 3 +-- app-wear/src/main/res/layout/overview_pods_dual_item.xml | 1 - 20 files changed, 21 insertions(+), 5 deletions(-) diff --git a/app-common/src/main/java/eu/darken/capod/common/bluetooth/BleScanResult.kt b/app-common/src/main/java/eu/darken/capod/common/bluetooth/BleScanResult.kt index b6e0d44b..0d1bab93 100644 --- a/app-common/src/main/java/eu/darken/capod/common/bluetooth/BleScanResult.kt +++ b/app-common/src/main/java/eu/darken/capod/common/bluetooth/BleScanResult.kt @@ -6,10 +6,12 @@ import androidx.core.util.forEach import com.squareup.moshi.Json import com.squareup.moshi.JsonClass import kotlinx.parcelize.Parcelize +import java.time.Instant @Parcelize @JsonClass(generateAdapter = true) data class BleScanResult( + @Json(name = "receivedAt") val receivedAt: Instant, @Json(name = "address") val address: String, @Json(name = "rssi") val rssi: Int, @Json(name = "generatedAtNanos") val generatedAtNanos: Long, @@ -28,6 +30,7 @@ data class BleScanResult( companion object { fun fromScanResult(scanResult: ScanResult) = BleScanResult( + receivedAt = Instant.now(), address = scanResult.device.address, rssi = scanResult.rssi, generatedAtNanos = scanResult.timestampNanos, diff --git a/app-common/src/main/java/eu/darken/capod/common/serialization/JavaInstantAdapter.kt b/app-common/src/main/java/eu/darken/capod/common/serialization/JavaInstantAdapter.kt index 5df6c167..5b121ebe 100644 --- a/app-common/src/main/java/eu/darken/capod/common/serialization/JavaInstantAdapter.kt +++ b/app-common/src/main/java/eu/darken/capod/common/serialization/JavaInstantAdapter.kt @@ -9,5 +9,5 @@ class JavaInstantAdapter { fun toJson(obj: Instant): Long = obj.toEpochMilli() @FromJson - fun fromJson(epochMillis: Long): Instant = Instant.ofEpochSecond(epochMillis) + fun fromJson(epochMillis: Long): Instant = Instant.ofEpochMilli(epochMillis) } \ No newline at end of file diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1.kt index 75e0f2b8..2de5284d 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1.kt @@ -53,6 +53,7 @@ data class AirPodsGen1 constructor( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, cachedBatteryPercentage = result.getLatestCaseBattery(), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2.kt index 270140d9..515fbf06 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2.kt @@ -52,6 +52,7 @@ data class AirPodsGen2 constructor( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, cachedBatteryPercentage = result.getLatestCaseBattery(), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3.kt index ae7c147c..3d343c13 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3.kt @@ -51,6 +51,7 @@ data class AirPodsGen3 constructor( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, cachedBatteryPercentage = result.getLatestCaseBattery(), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMax.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMax.kt index a1242391..a33a5c44 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMax.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMax.kt @@ -55,6 +55,7 @@ data class AirPodsMax( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, rssiAverage = result.averageRssi(basic.rssi), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsPro.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsPro.kt index 179fb662..9a42b8fd 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsPro.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/airpods/AirPodsPro.kt @@ -53,6 +53,7 @@ data class AirPodsPro( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, cachedBatteryPercentage = result.getLatestCaseBattery(), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsFlex.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsFlex.kt index 9b29c25b..93f69439 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsFlex.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsFlex.kt @@ -44,6 +44,7 @@ data class BeatsFlex( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, rssiAverage = result.averageRssi(basic.rssi), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3.kt index d051fe90..11f4d0ab 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3.kt @@ -43,6 +43,7 @@ data class BeatsSolo3( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, rssiAverage = result.averageRssi(basic.rssi), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3.kt index c3a59a60..72cf5a3a 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3.kt @@ -41,6 +41,7 @@ data class BeatsStudio3( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, rssiAverage = result.averageRssi(basic.rssi), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsX.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsX.kt index ed8d955e..f6b93fbb 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsX.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/BeatsX.kt @@ -44,6 +44,7 @@ data class BeatsX( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, rssiAverage = result.averageRssi(basic.rssi), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3.kt index 76fdc394..83130e9d 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3.kt @@ -44,6 +44,7 @@ data class PowerBeats3( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, rssiAverage = result.averageRssi(basic.rssi), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsPro.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsPro.kt index ad4744e1..4792a081 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsPro.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsPro.kt @@ -52,6 +52,7 @@ data class PowerBeatsPro( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, cachedBatteryPercentage = result.getLatestCaseBattery(), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/Twsi99999.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/Twsi99999.kt index 73144172..c8a319b3 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/Twsi99999.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/Twsi99999.kt @@ -128,6 +128,7 @@ data class Twsi99999 constructor( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, cachedBatteryPercentage = result.getLatestCaseBattery(), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/UnknownAppleDevice.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/UnknownAppleDevice.kt index a0602aaf..62c1de4f 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/UnknownAppleDevice.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/UnknownAppleDevice.kt @@ -47,6 +47,7 @@ data class UnknownAppleDevice( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, rssiAverage = result.averageRssi(basic.rssi), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/VarunrAirPodsPro.kt b/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/VarunrAirPodsPro.kt index 0d243fcd..00a05e59 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/VarunrAirPodsPro.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/apple/misc/VarunrAirPodsPro.kt @@ -128,6 +128,7 @@ data class VarunrAirPodsPro constructor( return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, cachedBatteryPercentage = result.getLatestCaseBattery(), diff --git a/app-common/src/main/java/eu/darken/capod/pods/core/unknown/UnknownDeviceFactory.kt b/app-common/src/main/java/eu/darken/capod/pods/core/unknown/UnknownDeviceFactory.kt index 5c78119b..97c08564 100644 --- a/app-common/src/main/java/eu/darken/capod/pods/core/unknown/UnknownDeviceFactory.kt +++ b/app-common/src/main/java/eu/darken/capod/pods/core/unknown/UnknownDeviceFactory.kt @@ -32,6 +32,7 @@ class UnknownDeviceFactory @Inject constructor() { return basic.copy( identifier = result.id, seenFirstAt = result.seenFirstAt, + seenLastAt = scanResult.receivedAt, seenCounter = result.seenCounter, confidence = result.confidence, rssiAverage = result.averageRssi(basic.rssi), diff --git a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragmentVM.kt b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragmentVM.kt index 37b516ec..03143c18 100644 --- a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragmentVM.kt +++ b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragmentVM.kt @@ -98,7 +98,7 @@ class OverviewFragmentVM @Inject constructor( } val podToShow = mainPod ?: podDeviceCache.loadMainDevice()?.let { - log(TAG, VERBOSE) { "Using podDeviceCache" } + log(TAG, VERBOSE) { "Using podDeviceCache: $it" } podFactory.createPod(it)?.device } log(TAG, VERBOSE) { "Showing $podToShow" } diff --git a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/pods/DualPodsCardVH.kt b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/pods/DualPodsCardVH.kt index 23194004..dc0aa478 100644 --- a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/pods/DualPodsCardVH.kt +++ b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/pods/DualPodsCardVH.kt @@ -38,8 +38,7 @@ class DualPodsCardVH(parent: ViewGroup) : } deviceIcon.setImageResource(device.iconRes) - lastSeen.text = context.getString(R.string.last_seen_x, device.lastSeenFormatted(item.now)) -// reception.text = item.getReceptionText() + lastSeen.text = context.getString(R.string.last_seen_x, "\n" + device.lastSeenFormatted(item.now)) // Pods battery state device.apply { diff --git a/app-wear/src/main/res/layout/overview_pods_dual_item.xml b/app-wear/src/main/res/layout/overview_pods_dual_item.xml index 21e5a46f..594c4685 100644 --- a/app-wear/src/main/res/layout/overview_pods_dual_item.xml +++ b/app-wear/src/main/res/layout/overview_pods_dual_item.xml @@ -272,7 +272,6 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="16dp" android:gravity="center" - app:drawableStartCompat="@drawable/ic_baseline_watch_later_12" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"