Fix "last seen at".

This commit is contained in:
darken
2022-09-14 18:00:18 +02:00
committed by Matthias Urhahn
parent 7dfea78c87
commit 87ca90f6cc
20 changed files with 21 additions and 5 deletions
@@ -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,
@@ -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)
}
@@ -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(),
@@ -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(),
@@ -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(),
@@ -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),
@@ -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(),
@@ -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),
@@ -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),
@@ -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),
@@ -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),
@@ -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),
@@ -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(),
@@ -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(),
@@ -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),
@@ -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(),
@@ -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),
@@ -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" }
@@ -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 {
@@ -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"