Phase 16: Sensor Status Screen UI (Issue #133) #133

Open
opened 2026-09-25 10:24:17 +02:00 by robert · 1 comment
Owner

Display watch/phone/GPS/sensor status in Settings, using SensorStatus model from Phase 12.

Requirements:

  • Create SensorStatusFragment for Settings display
  • Show watch connection + battery status
  • Show bike sensor status (wheel, power, HR + signal quality)
  • Show GPS status (lock quality, accuracy, last fix age)
  • Show phone status (battery, permissions)
  • Color-code status: green (excellent), yellow (fair), red (poor)
  • Refresh interval: 1 second during updates
  • Use SensorStatus.isReadyForRide() to show warning badges

Blockers: None - Phase 12 SensorStatus model complete
Dependencies: #130 (Phase 12 SensorStatus model), #44 (Settings)
Priority: MEDIUM - enables diagnostics but not ride-critical

Related: Phase 12 (#81), Phase 13-15 voice/onboarding

Display watch/phone/GPS/sensor status in Settings, using SensorStatus model from Phase 12. Requirements: - Create SensorStatusFragment for Settings display - Show watch connection + battery status - Show bike sensor status (wheel, power, HR + signal quality) - Show GPS status (lock quality, accuracy, last fix age) - Show phone status (battery, permissions) - Color-code status: green (excellent), yellow (fair), red (poor) - Refresh interval: 1 second during updates - Use SensorStatus.isReadyForRide() to show warning badges Blockers: None - Phase 12 SensorStatus model complete Dependencies: #130 (Phase 12 SensorStatus model), #44 (Settings) Priority: MEDIUM - enables diagnostics but not ride-critical Related: Phase 12 (#81), Phase 13-15 voice/onboarding
Author
Owner

Phase 16 Implementation Complete

Commit: 8eefeb9

Delivered:

  • SensorStatusFragment.kt (350 lines): Real-time diagnostics UI
  • SensorStatusFragmentTest.kt (25 tests): UI rendering + refresh
  • SENSOR-STATUS-UI.md (design + integration guide)

What works:
✅ Watch status (connection + battery with progress bar)
✅ GPS status (lock + accuracy + last fix age)
✅ Bike sensors (wheel, power, HR with 5 quality levels)
✅ Phone status (battery + permissions)
✅ Readiness check (overall status + warnings)
✅ 1-second refresh loop for live updates
✅ Color coding: green (excellent), yellow (fair), red (poor)
✅ Warning badge from SensorStatus.getWarnings()

UI Sections:

  • Watch: connection + battery %
  • GPS: lock + accuracy + age
  • Bike: 3 sensors × 5 quality levels
  • Phone: battery + permissions
  • Readiness: status + warnings

Integration:

  • Settings Diagnostics tab
  • Real-time from SensorStatus (Phase 12)
  • Non-blocking warnings
  • Ephemeral (no persistent logging)

Next: Wire into Settings navigation, integration testing

**Phase 16 Implementation Complete** **Commit**: 8eefeb9 Delivered: - SensorStatusFragment.kt (350 lines): Real-time diagnostics UI - SensorStatusFragmentTest.kt (25 tests): UI rendering + refresh - SENSOR-STATUS-UI.md (design + integration guide) **What works**: ✅ Watch status (connection + battery with progress bar) ✅ GPS status (lock + accuracy + last fix age) ✅ Bike sensors (wheel, power, HR with 5 quality levels) ✅ Phone status (battery + permissions) ✅ Readiness check (overall status + warnings) ✅ 1-second refresh loop for live updates ✅ Color coding: green (excellent), yellow (fair), red (poor) ✅ Warning badge from SensorStatus.getWarnings() **UI Sections**: - Watch: connection + battery % - GPS: lock + accuracy + age - Bike: 3 sensors × 5 quality levels - Phone: battery + permissions - Readiness: status + warnings **Integration**: - Settings Diagnostics tab - Real-time from SensorStatus (Phase 12) - Non-blocking warnings - Ephemeral (no persistent logging) **Next**: Wire into Settings navigation, integration testing
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
robert/PedalPebble#133
No description provided.