UI & Protocol Improvements
- UI Layout Redesign: Moved playback state (Playing/Paused) to toolbar title, song title now displays prominently in the main view area
- SendSpin Protocol Compliance: Fixed client/state message format to use correct payload wrapper structure
- Protocol Field Names: Updated to use spec-compliant player@v1_support field name in client/hello
- Volume Sync: Device volume now syncs with server on connect and updates the UI slider correctly
- Goodbye Reason: Fixed disconnect message to use valid user_request reason
Volume Control & Audio Enhancements
- Hybrid Volume Control: Implemented volume control using device media stream for better integration with system audio
- Time Filter Improvement: Added continuous forgetting factor for smoother clock synchronization adaptation
- Android Auto: Added audio output feature declaration for better Android Auto discovery
Stability & Polish
- UI Polish: Improved visual consistency and fixed stale connection state display bug
- Crash Fixes:
- Fixed crash when getting cellular network type without telephony permission
- Fixed crash when refocusing app during network reconnection
- Fixed crash on network transition
Network Resilience
- Seamless Network Transitions: Added playback continuity when switching between WiFi and cellular networks
- Network Evaluation: New subsystem for monitoring network quality
- Stats for Nerds: Added detailed network statistics display for debugging
- Dev Build Workflow: Added GitHub Action for automatic development builds
Full Changelog: v1.0.25...v1.0.29