cc11a3d31a
Overlay screen staleness: - Add _lastUpdateTime field to track GPS data freshness - Add _stalenessCheckTimer for periodic staleness monitoring (1s interval) - Update _lastUpdateTime from message.timestamp in _listenToMainAppMessages - Start staleness monitoring in initState, cancel in dispose - Calculate staleness opacity in build() (0.5 alpha after 3s) - Apply staleness dimming to speed text, unit text, heading icon, and heading text - Show "--" for speed after 10s of no data (setState in timer callback) - Immediate snap-back when fresh data arrives (no AnimatedOpacity) SpeedometerScreen error surfacing: - Import permission_handler for openAppSettings - Register error callback on OverlayProvider in initState postFrameCallback - Implement _handleOverlayError to show snackbars for overlay errors - Permission error: snackbar with "Settings" action button that opens app settings - Creation failure: snackbar with error message (no action button) - Communication degraded: snackbar with error message (no action button) - Clean up error callback in dispose (try-catch for disposed provider) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>