Refresh Distance in PlaceList

This commit is contained in:
Dimitris
2026-04-06 09:27:39 +02:00
parent 3d7749c6c7
commit c6bad779d3
2 changed files with 12 additions and 4 deletions
@@ -29,6 +29,7 @@ import com.kouros.navigation.data.Constants.RECENT
import com.kouros.navigation.data.Place
import com.kouros.navigation.model.NavigationViewModel
import com.kouros.navigation.utils.getSettingsRepository
import com.kouros.navigation.utils.location
class PlaceListScreen(
private val carContext: CarContext,
@@ -59,6 +60,12 @@ class PlaceListScreen(
override fun onStop(owner: LifecycleOwner) {
navigationViewModel.recentPlaces.value = emptyList()
}
override fun onStart(owner: LifecycleOwner) {
recentPlaces.forEach {
it.distance = location(it.longitude, it.latitude).distanceTo(surfaceRenderer.lastLocation)
}
}
})
}
@@ -28,6 +28,7 @@ import kotlin.math.cos
import kotlin.math.ln
import kotlin.math.pow
import kotlin.math.roundToInt
import kotlin.ranges.contains
import kotlin.time.Duration
import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds
@@ -145,7 +146,7 @@ fun duration(
2.seconds
} else {
val updateDuration = java.time.Duration.between(LocalDateTime.now(), lastLocationUpdate)
if (updateDuration.toMillis().absoluteValue < 1000) {
if (updateDuration.toMillis().absoluteValue !in 1000..2000) {
2.seconds
} else {
((updateDuration!!.toMillis().absoluteValue * 1.8).toDuration(DurationUnit.MILLISECONDS))