@@ -157,11 +157,10 @@ private fun MainScreen(state: WatchState, accent: Color) {
157157 text = " %.0f" .format(WatchUnits .speed(state.speedKmh, state.imperialUnits)),
158158 fontSize = speedFontSp,
159159 fontWeight = FontWeight .Bold ,
160- // Disconnected: use the accent color so the dashboard
161- // matches the gauge's safe-band tint instead of the
162- // green-tier "0" that reads as if the wheel were idle.
163- color = if (state.connected) speedTierColor(state.speedKmh, maxSpeed)
164- else accent
160+ // The gauge band already encodes the safety zones via
161+ // green/yellow/red. The speed glyph follows the user's
162+ // accent so the watch identity matches their phone.
163+ color = accent
165164 )
166165 if (state.showSpeedUnit) {
167166 Spacer (Modifier .width(3 .dp))
@@ -453,17 +452,21 @@ private fun DetailsScreen(state: WatchState, accent: Color) {
453452 text = " %.0f %s" .format(speedDisplay, speedUnit),
454453 fontSize = speedSp,
455454 fontWeight = FontWeight .Bold ,
456- color = Color . White
455+ color = accent
457456 )
458457 Spacer (Modifier .height(4 .dp))
459458 val live = state.connected
460- DetailRow (R .string.watch_voltage_label, if (live) " %.1f V" .format(state.voltage) else DASH , labelSp, valueSp, labelWidth, valueWidth)
461- DetailRow (R .string.watch_current_label, if (live) " %.1f A" .format(state.current) else DASH , labelSp, valueSp, labelWidth, valueWidth)
462- DetailRow (R .string.watch_power_label, if (live) " %.0f W" .format(powerW) else DASH , labelSp, valueSp, labelWidth, valueWidth)
463- DetailRow (R .string.watch_pwm_label, if (live) " %.0f %%" .format(state.pwmPercent) else DASH , labelSp, valueSp, labelWidth, valueWidth)
464- DetailRow (R .string.watch_temp_label, if (live) " %.0f %s" .format(tempDisplay, tempUnit) else DASH , labelSp, valueSp, labelWidth, valueWidth)
465- DetailRow (R .string.watch_torque_label, if (live) " %.1f" .format(state.torque) else DASH , labelSp, valueSp, labelWidth, valueWidth)
466- DetailRow (R .string.watch_trip_label, if (live) " %.2f %s" .format(tripDisplay, distUnit) else DASH , labelSp, valueSp, labelWidth, valueWidth)
459+ // Accent-tint live values so the page reads as a continuation of
460+ // the dashboard's accent identity. Disconnected dashes stay grey
461+ // so the rider can tell at a glance that the row isn't live.
462+ val valueColor = if (live) accent else Color (0xFF606060 )
463+ DetailRow (R .string.watch_voltage_label, if (live) " %.1f V" .format(state.voltage) else DASH , labelSp, valueSp, labelWidth, valueWidth, valueColor)
464+ DetailRow (R .string.watch_current_label, if (live) " %.1f A" .format(state.current) else DASH , labelSp, valueSp, labelWidth, valueWidth, valueColor)
465+ DetailRow (R .string.watch_power_label, if (live) " %.0f W" .format(powerW) else DASH , labelSp, valueSp, labelWidth, valueWidth, valueColor)
466+ DetailRow (R .string.watch_pwm_label, if (live) " %.0f %%" .format(state.pwmPercent) else DASH , labelSp, valueSp, labelWidth, valueWidth, valueColor)
467+ DetailRow (R .string.watch_temp_label, if (live) " %.0f %s" .format(tempDisplay, tempUnit) else DASH , labelSp, valueSp, labelWidth, valueWidth, valueColor)
468+ DetailRow (R .string.watch_torque_label, if (live) " %.1f" .format(state.torque) else DASH , labelSp, valueSp, labelWidth, valueWidth, valueColor)
469+ DetailRow (R .string.watch_trip_label, if (live) " %.2f %s" .format(tripDisplay, distUnit) else DASH , labelSp, valueSp, labelWidth, valueWidth, valueColor)
467470 }
468471 }
469472}
@@ -475,7 +478,8 @@ private fun DetailRow(
475478 labelSp : TextUnit ,
476479 valueSp : TextUnit ,
477480 labelWidth : Dp ,
478- valueWidth : Dp
481+ valueWidth : Dp ,
482+ valueColor : Color = Color .White
479483) {
480484 // Fixed-width label + fixed-width value gives a tabular alignment so
481485 // values stack vertically across rows. The whole row is centred by the
@@ -495,7 +499,7 @@ private fun DetailRow(
495499 Text (
496500 text = value,
497501 fontSize = valueSp,
498- color = Color . White ,
502+ color = valueColor ,
499503 fontWeight = FontWeight .Medium ,
500504 textAlign = TextAlign .Start ,
501505 modifier = Modifier .width(valueWidth)
0 commit comments