github chrisuthe/SendspinDroid v2.0.0-Beta3

latest release: dev-latest
pre-release11 hours ago

SendSpinDroid v2.0.0-Beta3 Release Notes

Changes since v2.0.0-Beta1 -- 212 files changed, ~18k lines added, ~10k removed.

Architecture: Kotlin Multiplatform Restructure

The entire Music Assistant integration layer was migrated to a new :shared KMP module, laying the groundwork for future iOS support:

  • Created :shared module with platform abstractions, models, filters, and protocol code
  • Migrated transports from OkHttp to Ktor for cross-platform compatibility
  • Moved MA models, WebSocket transport, multiplexer, and SignalingClient to :shared
  • Extracted MaCommandClient and MaAuthHelper as shared components
  • Consolidated ServerRepository into a single UnifiedServerRepository
  • Added 96 unit tests for the shared MA layer
  • Comprehensive code review pass: fixed all 18 critical, 30 high, 35 medium, and 12 low-priority issues
  • Encrypted auth token storage

New Features

  • Redesigned mini-player -- Replaced volume slider with skip controls and elapsed/remaining time display; smooth progress interpolation; configurable position (top/bottom); thicker 3dp progress bar
  • Album-artist filter -- New filter chip on the Artists tab to show only album artists, reducing clutter from featured/compilation artists
  • Audiobook support -- Chapter navigation and playback speed control for audiobook media
  • Friendly server names -- mDNS discovery now extracts the human-readable name from TXT records instead of showing the raw service ID
  • Artwork clearing -- Properly clears album art when the server sends an empty artwork payload (e.g., between tracks with no art)
  • 24-bit and 32-bit PCM audio -- Advertises higher bit depth PCM formats on supported hardware (API 31+) for improved audio quality
  • Static delay reporting -- Sends static_delay_ms in client state for better server-side latency compensation
  • Exit App option -- Added to the overflow menu for clean shutdown
  • FOSS compliance -- Replaced Google ML Kit with zxing-cpp for QR scanning; added fastlane metadata (screenshots, icon, changelogs); disabled dependenciesInfo for F-Droid/IzzyOnDroid compatibility

Bug Fixes

  • Fixed buffering spinner showing over album art when playback is paused
  • Fixed FLAC audio garbled on devices that advertised 32-bit -- compressed codecs now correctly stay at 16-bit
  • Fixed home screen stuck on "Failed to load" after backgrounding
  • Fixed WebRTC remote connections not auto-reconnecting when backgrounded
  • Fixed track timer resetting when navigating between mini-player and Now Playing
  • Fixed Now Playing state lost after returning from Settings
  • Fixed edge-to-edge nav bar overlap in Add Server Wizard
  • Fixed debug log export FileProvider path mismatch
  • Fixed playlist pagination only loading first 15 items (now loads all)
  • Fixed dashes in pasted Remote IDs causing connection failures
  • Fixed top bar title wrapping to a second line
  • Made clock sync convergence threshold adaptive to network jitter
  • Fixed JSON opt* extensions throwing on non-primitive values

CI/Build

  • Refactored CI workflows into focused single-purpose steps

Don't miss a new SendspinDroid release

NewReleases is sending notifications on new releases.