From 9884229a7b075073d5283889c0ab9bef4009277e Mon Sep 17 00:00:00 2001 From: DaneEvans Date: Tue, 8 Jul 2025 22:22:06 +1000 Subject: [PATCH] fix 2198 - graphs scale to farenheit (#2384) --- .../mesh/model/EnvironmentMetricsState.kt | 13 ++++++++++--- .../mesh/ui/metrics/EnvironmentMetrics.kt | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/model/EnvironmentMetricsState.kt b/app/src/main/java/com/geeksville/mesh/model/EnvironmentMetricsState.kt index 5e0016b13..da9131598 100644 --- a/app/src/main/java/com/geeksville/mesh/model/EnvironmentMetricsState.kt +++ b/app/src/main/java/com/geeksville/mesh/model/EnvironmentMetricsState.kt @@ -21,6 +21,7 @@ import androidx.compose.ui.graphics.Color import com.geeksville.mesh.TelemetryProtos.Telemetry import com.geeksville.mesh.ui.common.theme.InfantryBlue import com.geeksville.mesh.ui.common.theme.Orange +import com.geeksville.mesh.util.UnitConversions enum class Environment(val color: Color) { TEMPERATURE(Color.Red) { @@ -75,7 +76,7 @@ data class EnvironmentMetricsState( * @return [EnvironmentGraphingData] */ @Suppress("LongMethod") - fun environmentMetricsFiltered(timeFrame: TimeFrame): EnvironmentGraphingData { + fun environmentMetricsFiltered(timeFrame: TimeFrame, useFahrenheit: Boolean = false): EnvironmentGraphingData { val oldestTime = timeFrame.calculateOldestTime() val telemetries = environmentMetrics.filter { it.time >= oldestTime } val shouldPlot = BooleanArray(Environment.entries.size) { false } @@ -90,9 +91,15 @@ data class EnvironmentMetricsState( telemetries.minBy { it.environmentMetrics.temperature }, telemetries.maxBy { it.environmentMetrics.temperature } ) + var minTempValue = minTemp.environmentMetrics.temperature + var maxTempValue = maxTemp.environmentMetrics.temperature + if (useFahrenheit) { + minTempValue = UnitConversions.celsiusToFahrenheit(minTempValue) + maxTempValue = UnitConversions.celsiusToFahrenheit(maxTempValue) + } if (minTemp.environmentMetrics.temperature != 0f || maxTemp.environmentMetrics.temperature != 0f) { - minValues.add(minTemp.environmentMetrics.temperature) - maxValues.add(maxTemp.environmentMetrics.temperature) + minValues.add(minTempValue) + maxValues.add(maxTempValue) shouldPlot[Environment.TEMPERATURE.ordinal] = true } diff --git a/app/src/main/java/com/geeksville/mesh/ui/metrics/EnvironmentMetrics.kt b/app/src/main/java/com/geeksville/mesh/ui/metrics/EnvironmentMetrics.kt index 4df84ea30..96c71d8d8 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/metrics/EnvironmentMetrics.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/metrics/EnvironmentMetrics.kt @@ -120,7 +120,7 @@ fun EnvironmentMetricsScreen( val state by viewModel.state.collectAsStateWithLifecycle() val environmentState by viewModel.environmentState.collectAsStateWithLifecycle() val selectedTimeFrame by viewModel.timeFrame.collectAsState() - val graphData = environmentState.environmentMetricsFiltered(selectedTimeFrame) + val graphData = environmentState.environmentMetricsFiltered(selectedTimeFrame, state.isFahrenheit) val data = graphData.metrics val processedTelemetries: List = if (state.isFahrenheit) {