New Features
- Share Tracking Profiles and Geofences via deep links - In-app share buttons emit
colota://setuplinks and QR codes that the receiving device imports through a confirmation screen (#336, #337) - Overland batch upload - Queued points are sent in one POST envelope to Overland-compatible backends instead of one request per point, with configurable batch size (#347)
- Tracking lifecycle event logging - Activity Log now captures profile activations, geofence entries and exits, and tracking start/stop events (#339)
- Tracking Profiles in docs deep-link generator - The web setup-link generator now has a Tracking Profiles section alongside Geofences
Improvements
- Motion detection rewrite - Replaced the timer-based stationary detector with an accelerometer-variance approach plus
SIG_MOTION. Wakes faster when you start moving and no longer mistakes a smooth car ride for being still (#293) - Stationary interval warning - In-app warning when a Stationary profile interval is above 60s, since longer values can miss the first minutes of a trip
- Larger setup QR code - Setup-link QR is rendered larger so configs with many geofences and profiles scan reliably, with a hint when the payload is dense enough that scanning may still fail
- Unified map action buttons - All map screens use a shared
MapActionButtoncomponent
Bug Fixes
- Map ANR on dispose - Map switched to
TextureViewso disposing the surface during navigation no longer freezes the UI thread (#356) - ScrollView MotionEvent crash - Defensive bounds check on pointer index resolves a rare crash when fast scrolling triggers a stale
MotionEvent(#357) - Trip detail map gestures - Trip detail map moved outside the surrounding
ScrollView, so vertical pan and tap-to-highlight reach the map again (#333)
Full Changelog: v1.7.1...v1.8.0