feat(map): Add last heard filter for node tracks (#3222)

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
This commit is contained in:
James Rich 2025-09-27 16:56:19 -05:00 committed by GitHub
parent 61c6d6c76e
commit f3d34ed8a9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 127 additions and 125 deletions

View file

@ -104,11 +104,18 @@ abstract class BaseMapViewModel(
private val lastHeardFilter = MutableStateFlow(LastHeardFilter.fromSeconds(mapPrefs.lastHeardFilter))
private val lastHeardTrackFilter = MutableStateFlow(LastHeardFilter.fromSeconds(mapPrefs.lastHeardTrackFilter))
fun setLastHeardFilter(filter: LastHeardFilter) {
mapPrefs.lastHeardFilter = filter.seconds
lastHeardFilter.value = filter
}
fun setLastHeardTrackFilter(filter: LastHeardFilter) {
mapPrefs.lastHeardTrackFilter = filter.seconds
lastHeardTrackFilter.value = filter
}
val ourNodeInfo: StateFlow<Node?> = nodeRepository.ourNodeInfo
val isConnected =
@ -167,16 +174,18 @@ abstract class BaseMapViewModel(
val showWaypoints: Boolean,
val showPrecisionCircle: Boolean,
val lastHeardFilter: LastHeardFilter,
val lastHeardTrackFilter: LastHeardFilter,
)
val mapFilterStateFlow: StateFlow<MapFilterState> =
combine(showOnlyFavorites, showWaypointsOnMap, showPrecisionCircleOnMap, lastHeardFilter) {
favoritesOnly,
showWaypoints,
showPrecisionCircle,
lastHeard,
->
MapFilterState(favoritesOnly, showWaypoints, showPrecisionCircle, lastHeard)
combine(
showOnlyFavorites,
showWaypointsOnMap,
showPrecisionCircleOnMap,
lastHeardFilter,
lastHeardTrackFilter,
) { favoritesOnly, showWaypoints, showPrecisionCircle, lastHeardFilter, lastHeardTrackFilter ->
MapFilterState(favoritesOnly, showWaypoints, showPrecisionCircle, lastHeardFilter, lastHeardTrackFilter)
}
.stateIn(
scope = viewModelScope,
@ -187,6 +196,7 @@ abstract class BaseMapViewModel(
showWaypointsOnMap.value,
showPrecisionCircleOnMap.value,
lastHeardFilter.value,
lastHeardTrackFilter.value,
),
)
}