Bug Fixes, SD Card Protection, Battery Prediction
Bug Fixes
Recording Safety
Mode switch and Quick Photo are now blocked during active recording — prevents accidental recording stop when tapping Mode or Photo data fields. Both fields show dimmed "recording" state with tap disabled.
Quick Photo Race Condition
Replaced fixed 500ms delay with flow-based mode switch confirmation (3s timeout). Photo is taken only after the camera confirms it switched to Photo mode — eliminates the risk of triggering video recording instead of photo capture.
Status Polling: Active Hilights
ACTIVE_HILIGHTS (status 58) was registered for push notifications but missing from status polling. Now polled every 5 seconds — hilight counter stays accurate even if a push notification is missed.
Video Settings Error Feedback
When the camera rejects a video setting (e.g. incompatible resolution+FPS), an InRideAlert now appears with the list of failed settings. Previously errors were only logged silently.
Haptic Feedback on Auto-Highlights
Auto-highlights (lap, power, speed, climb, etc.) now trigger haptic feedback on the Karoo — matching the behavior of manual highlights from tap actions.
New Features
SD Card Full Detection
- Alert "Camera: SD Full!" when remaining recording time drops below 10 seconds
- Auto-record is blocked when SD card is full (both ride start and resume)
- Separate from the existing SD Low warning (< 5 min remaining)
Battery Prediction
Estimates remaining recording time based on real-time battery drain rate.
- Tracks battery readings during active recording (up to 20 data points)
- Requires minimum 3 readings over 10 minutes for reliable prediction
- Alert "Camera: ~N min left" when predicted time drops below 30 minutes
- Readings automatically cleared when recording stops to prevent stale data
- One alert per ride (resets on new ride start)
Stability
- Battery drain readings cleared when recording stops (prevents stale predictions across recording sessions)
- SD threshold constant shared between BatteryAlertHandler and AutoRecordHandler
Changed Files
GoProBleManager.kt— ACTIVE_HILIGHTS in pollStatusGoProCommands.kt— applyVideoSettings returns failed setting namesClipRideActionReceiver.kt— recording guards, photo race fixClipRideExtension.kt— settings error alert, handler contextModeDataType.kt— recording lock UIPhotoDataType.kt— recording lock UIAutoRecordHandler.kt— SD card full guardBatteryAlertHandler.kt— SD Full alert, battery predictionHighlightEventHandler.kt— haptic feedback
Install
Download clipride.apk and install via ADB:
adb install clipride.apk