mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
refactor: split MetricsViewModel state updates
- Consolidates `MetricViewModel` back to a single state flow - Introduces a `MutableStateFlow` for state updates, allowing more independent control - Moves `Telemetry`, `MeshPacket`, and config updates into separate coroutines
This commit is contained in:
parent
dcd5ca1c8e
commit
26f210047d
4 changed files with 75 additions and 62 deletions
|
|
@ -83,7 +83,7 @@ fun EnvironmentMetricsScreen(
|
|||
return (celsius * 1.8F) + 32
|
||||
}
|
||||
|
||||
val processedTelemetries: List<Telemetry> = if (state.environmentDisplayFahrenheit) {
|
||||
val processedTelemetries: List<Telemetry> = if (state.isFahrenheit) {
|
||||
state.environmentMetrics.map { telemetry ->
|
||||
val temperatureFahrenheit =
|
||||
celsiusToFahrenheit(telemetry.environmentMetrics.temperature)
|
||||
|
|
@ -124,7 +124,7 @@ fun EnvironmentMetricsScreen(
|
|||
items(processedTelemetries) { telemetry ->
|
||||
EnvironmentMetricsCard(
|
||||
telemetry,
|
||||
state.environmentDisplayFahrenheit
|
||||
state.isFahrenheit
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ fun TracerouteLogScreen(
|
|||
viewModel: MetricsViewModel = hiltViewModel(),
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
val state by viewModel.tracerouteState.collectAsStateWithLifecycle()
|
||||
val state by viewModel.state.collectAsStateWithLifecycle()
|
||||
val dateFormat = remember {
|
||||
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM)
|
||||
}
|
||||
|
|
@ -80,9 +80,9 @@ fun TracerouteLogScreen(
|
|||
modifier = modifier.fillMaxSize(),
|
||||
contentPadding = PaddingValues(horizontal = 16.dp),
|
||||
) {
|
||||
items(state.requests, key = { it.uuid }) { log ->
|
||||
val result = remember(state.requests) {
|
||||
state.results.find { it.decoded.requestId == log.fromRadio.packet.id }
|
||||
items(state.tracerouteRequests, key = { it.uuid }) { log ->
|
||||
val result = remember(state.tracerouteRequests) {
|
||||
state.tracerouteResults.find { it.decoded.requestId == log.fromRadio.packet.id }
|
||||
}
|
||||
val route = remember(result) { result?.fullRouteDiscovery }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue