From f25ab5d7db3fe776ff08d169161bba35c4e1d4d1 Mon Sep 17 00:00:00 2001 From: timklge <2026103+timklge@users.noreply.github.com> Date: Sat, 9 Aug 2025 15:12:30 +0200 Subject: [PATCH] Also grow grade powerbar on descents, do not show if grade < 0.5 % (#51) --- .../main/kotlin/de/timklge/karoopowerbar/Window.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/de/timklge/karoopowerbar/Window.kt b/app/src/main/kotlin/de/timklge/karoopowerbar/Window.kt index 122b53b..9f52463 100644 --- a/app/src/main/kotlin/de/timklge/karoopowerbar/Window.kt +++ b/app/src/main/kotlin/de/timklge/karoopowerbar/Window.kt @@ -38,6 +38,7 @@ import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.util.Locale +import kotlin.math.absoluteValue import kotlin.math.roundToInt fun remap(value: Double?, fromMin: Double, fromMax: Double, toMin: Double, toMax: Double): Double? { @@ -364,12 +365,17 @@ class Window( powerbarsWithGradeSource.forEach { powerbar -> if (value != null) { - val minGradient = streamData.settings?.minGradient ?: PowerbarSettings.defaultMinGradient - val maxGradient = streamData.settings?.maxGradient ?: PowerbarSettings.defaultMaxGradient + if (value.absoluteValue >= 0.5) { + val minGradient = streamData.settings?.minGradient ?: PowerbarSettings.defaultMinGradient + val maxGradient = streamData.settings?.maxGradient ?: PowerbarSettings.defaultMaxGradient + + powerbar.progress = remap(value.absoluteValue, minGradient.toDouble(), maxGradient.toDouble(), 0.0, 1.0) + } else { + powerbar.progress = null + } val colorRes = getInclineIndicatorColor(value.toFloat()) ?: R.color.zone0 powerbar.progressColor = context.getColor(colorRes) - powerbar.progress = remap(value.toDouble(), minGradient.toDouble(), maxGradient.toDouble(), 0.0, 1.0) powerbar.label = "${String.format(Locale.getDefault(), "%.1f", value)}%" Log.d(TAG, "Grade: $value")