mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
refactor: Conducting time filter at the component lvl to avoid metric nav cards from being disabled when we don't have recent data (#1402)
This commit is contained in:
parent
f6af9b8782
commit
013e3de792
7 changed files with 54 additions and 50 deletions
|
|
@ -65,6 +65,8 @@ fun DeviceMetricsScreen(
|
|||
) {
|
||||
val state by viewModel.state.collectAsStateWithLifecycle()
|
||||
var displayInfoDialog by remember { mutableStateOf(false) }
|
||||
val selectedTimeFrame by viewModel.timeFrame.collectAsState()
|
||||
val data = state.deviceMetricsFiltered(selectedTimeFrame)
|
||||
|
||||
Column {
|
||||
|
||||
|
|
@ -82,11 +84,10 @@ fun DeviceMetricsScreen(
|
|||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.fillMaxHeight(fraction = 0.33f),
|
||||
state.deviceMetrics.reversed(),
|
||||
data.reversed(),
|
||||
promptInfoDialog = { displayInfoDialog = true }
|
||||
)
|
||||
|
||||
val selectedTimeFrame by viewModel.timeFrame.collectAsState()
|
||||
MetricsTimeSelector(
|
||||
selectedTimeFrame,
|
||||
onOptionSelected = { viewModel.setTimeFrame(it) }
|
||||
|
|
@ -98,7 +99,7 @@ fun DeviceMetricsScreen(
|
|||
LazyColumn(
|
||||
modifier = Modifier.fillMaxSize()
|
||||
) {
|
||||
items(state.deviceMetrics) { telemetry -> DeviceMetricsCard(telemetry) }
|
||||
items(data) { telemetry -> DeviceMetricsCard(telemetry) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,6 +77,8 @@ fun EnvironmentMetricsScreen(
|
|||
viewModel: MetricsViewModel = hiltViewModel(),
|
||||
) {
|
||||
val state by viewModel.state.collectAsStateWithLifecycle()
|
||||
val selectedTimeFrame by viewModel.timeFrame.collectAsState()
|
||||
val data = state.environmentMetricsFiltered(selectedTimeFrame)
|
||||
|
||||
/* Convert Celsius to Fahrenheit */
|
||||
@Suppress("MagicNumber")
|
||||
|
|
@ -85,7 +87,7 @@ fun EnvironmentMetricsScreen(
|
|||
}
|
||||
|
||||
val processedTelemetries: List<Telemetry> = if (state.isFahrenheit) {
|
||||
state.environmentMetrics.map { telemetry ->
|
||||
data.map { telemetry ->
|
||||
val temperatureFahrenheit =
|
||||
celsiusToFahrenheit(telemetry.environmentMetrics.temperature)
|
||||
telemetry.copy {
|
||||
|
|
@ -94,7 +96,7 @@ fun EnvironmentMetricsScreen(
|
|||
}
|
||||
}
|
||||
} else {
|
||||
state.environmentMetrics
|
||||
data
|
||||
}
|
||||
|
||||
var displayInfoDialog by remember { mutableStateOf(false) }
|
||||
|
|
@ -118,7 +120,6 @@ fun EnvironmentMetricsScreen(
|
|||
promptInfoDialog = { displayInfoDialog = true }
|
||||
)
|
||||
|
||||
val selectedTimeFrame by viewModel.timeFrame.collectAsState()
|
||||
MetricsTimeSelector(
|
||||
selectedTimeFrame,
|
||||
onOptionSelected = { viewModel.setTimeFrame(it) }
|
||||
|
|
|
|||
|
|
@ -71,6 +71,8 @@ fun SignalMetricsScreen(
|
|||
) {
|
||||
val state by viewModel.state.collectAsStateWithLifecycle()
|
||||
var displayInfoDialog by remember { mutableStateOf(false) }
|
||||
val selectedTimeFrame by viewModel.timeFrame.collectAsState()
|
||||
val data = state.signalMetricsFiltered(selectedTimeFrame)
|
||||
|
||||
Column {
|
||||
|
||||
|
|
@ -88,11 +90,10 @@ fun SignalMetricsScreen(
|
|||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.fillMaxHeight(fraction = 0.33f),
|
||||
meshPackets = state.signalMetrics.reversed(),
|
||||
meshPackets = data.reversed(),
|
||||
promptInfoDialog = { displayInfoDialog = true }
|
||||
)
|
||||
|
||||
val selectedTimeFrame by viewModel.timeFrame.collectAsState()
|
||||
MetricsTimeSelector(
|
||||
selectedTimeFrame,
|
||||
onOptionSelected = { viewModel.setTimeFrame(it) }
|
||||
|
|
@ -103,7 +104,7 @@ fun SignalMetricsScreen(
|
|||
LazyColumn(
|
||||
modifier = Modifier.fillMaxSize()
|
||||
) {
|
||||
items(state.signalMetrics) { meshPacket -> SignalMetricsCard(meshPacket) }
|
||||
items(data) { meshPacket -> SignalMetricsCard(meshPacket) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue