summaryrefslogtreecommitdiff
path: root/android-app/app/src/main
diff options
context:
space:
mode:
authorClaude <noreply@anthropic.com>2026-05-20 23:47:23 +0000
committerClaude <noreply@anthropic.com>2026-05-20 23:47:23 +0000
commitf12e64422cc6157bf8dbcec272f4dd1f6e74b4f9 (patch)
treeba3aa49b34c78b224daf4bbe384e68d49ea799da /android-app/app/src/main
parent154393a6306ab476644fa1a35344b5dea837348e (diff)
Fix invisible speed-colored track: use step() with hex string literals
Expression.color(Color.parseColor()) inside interpolate() stops was silently failing to render on device. Replace with Expression.step() and Expression.literal(hexString) which MapLibre's renderer handles natively for line-color. https://claude.ai/code/session_01YUbuZNDAoLea4cf9UGQ9qn
Diffstat (limited to 'android-app/app/src/main')
-rw-r--r--android-app/app/src/main/kotlin/org/terst/nav/track/TrackColors.kt18
1 files changed, 7 insertions, 11 deletions
diff --git a/android-app/app/src/main/kotlin/org/terst/nav/track/TrackColors.kt b/android-app/app/src/main/kotlin/org/terst/nav/track/TrackColors.kt
index 3bcabb1..145a4dd 100644
--- a/android-app/app/src/main/kotlin/org/terst/nav/track/TrackColors.kt
+++ b/android-app/app/src/main/kotlin/org/terst/nav/track/TrackColors.kt
@@ -1,10 +1,7 @@
package org.terst.nav.track
-import android.graphics.Color
import org.maplibre.android.style.expressions.Expression
-import org.maplibre.android.style.layers.PropertyFactory
import org.maplibre.geojson.Feature
-import org.maplibre.geojson.FeatureCollection
import org.maplibre.geojson.LineString
import org.maplibre.geojson.Point
@@ -21,15 +18,14 @@ fun speedSegments(points: List<TrackPoint>): List<Feature> =
}
/**
- * MapLibre expression that interpolates line-color from the "speed" feature property.
+ * MapLibre expression that step-interpolates line-color from the "speed" feature property.
* Scale: 0 kt → blue · 4 kt → cyan · 7 kt → green · 10 kt → amber · 13+ kt → red.
*/
-fun speedColorExpression(): Expression = Expression.interpolate(
- Expression.linear(),
+fun speedColorExpression(): Expression = Expression.step(
Expression.get("speed"),
- Expression.stop(0, Expression.color(Color.parseColor("#2196F3"))), // blue
- Expression.stop(4, Expression.color(Color.parseColor("#00BCD4"))), // cyan
- Expression.stop(7, Expression.color(Color.parseColor("#4CAF50"))), // green
- Expression.stop(10, Expression.color(Color.parseColor("#FFC107"))), // amber
- Expression.stop(13, Expression.color(Color.parseColor("#F44336"))) // red
+ Expression.literal("#2196F3"), // < 4 kt: blue
+ Expression.stop(4, Expression.literal("#00BCD4")), // cyan
+ Expression.stop(7, Expression.literal("#4CAF50")), // green
+ Expression.stop(10, Expression.literal("#FFC107")), // amber
+ Expression.stop(13, Expression.literal("#F44336")) // red
)