Changelog v13.2.0
✨ New Features
ArchiveTune Now Supports Local Music Playback!
🎧 Player & Audio Engine
- Added audio route recovery to restore playback after device changes (#443)
- Implemented playback history tracking system with caching and URL registration
- Added PlaybackStreamRecoveryTracker for retry handling and stream failure recovery
- Improved foreground service management with enhanced notification handling
- Added multi-URL fallback and retry logic for more reliable playback
- Implemented voice query support for both offline and online search
- Added queue auto-expansion when infinite queue is disabled
- Added loading indicator for queue initialization
🎵 Library, Playlists & Sync
- Introduced multi-song like with sync support (#430)
- Added remote sync for library & playlist actions
- Improved playlist removal consistency with remote-first handling
- Added playlist suggestion system with query builder customization
- Enhanced search capabilities with result count queries and pagination (#453)
- Integrated YouTube online search into media session (#456)
📝 Lyrics & Media
- Added lyrics sync offset adjustment with UI controls and dialog
- Improved lyrics sharing system with adaptive layout support
- Enhanced thumbnail handling with structured data model
📁 Local Media Support
- Introduced local file playback support
- Added Local Songs screen with search, sorting, and improved UI
- Implemented local scan configuration (duration + folder filters)
- Redesigned scan workflow UI with better state handling
⚙️ System & Platform
- Added default music player support (#457)
- Enabled Canvas API authentication
- Added TV variant support (#423)
- Added low-end device mode to disable animations
- Improved YouTube login cookie handling
🎨 UI & UX
- Added segmented preference component
- Improved FAB behavior with label support
- Enhanced history screen with search and state handling
- Added custom swipe background colors for song items
- Improved Library Mix layout & controls
- Accessibility improvements in About screen
🐛 Bug Fixes
🎧 Playback & Streaming
- Fixed automix preview issues for YouTube queues (#432)
- Fixed crossfade + offload conflicts (#431)
- Improved stream expiration handling and fallback logic (#433)
- Fixed silent audio issue on Qualcomm devices
- Improved cached playback error handling
- Fixed player restart when reaching ended state
📚 Library & Data
- Fixed playlist sync inconsistencies
- Improved song like transaction handling
- Fixed playlist removal edge cases
- Fixed search and coroutine-related crashes
🎨 UI & Layout
- Fixed blur rendering (now real bitmap blur)
- Fixed layout inconsistencies (fillMaxSize vs matchParentSize)
- Fixed thumbnail cropping issues
- Fixed multiple typos and UI spacing issues
🔧 Misc
- Fixed dependency issues and updates
- Fixed various regressions and minor crashes
⚡ Performance Improvements
- Reduced main thread workload in playback service
- Improved stream resolution and caching efficiency
- Optimized search pagination and result handling
- Enhanced UI rendering and blur performance
- Improved database queries and event handling
🛠 Technical Refactors
🧠 Core & Playback
- Refactored stream client architecture with request profiles
- Unified retry logic for playback authentication
- Improved MusicService structure and error handling
- Simplified tracking URL registration system
📦 Data & Database
- Improved DAO queries and return types
- Added event tracking enhancements
- Refactored local media scanning logic
🎨 UI & Components
- Migrated more components to Material 3 Expressive APIs
- Simplified Library & Playlist UI structure
- Improved Lyrics UI rendering and layout system
- Refactored Preference components with Material shapes
🧹 Codebase Cleanup
- Removed legacy APIs and unused logic
- Simplified sorting, layouts, and state handling
- Improved overall consistency and maintainability
📚 Documentation
- Updated README and app metadata
- Added local playback support documentation
- Improved privacy notice and links
- Updated store listings and translations
🏗 Build / CI
- Upgraded compileSdk & targetSdk to 37
- Refactored Gradle configuration and plugin setup
- Added Sonatype snapshots repository
- Improved CI workflows and artifact handling
🔄 Other Changes
- Dependency upgrades (Compose, AGP, libraries, actions)
- Multiple reverts for stability and experimental rollback
- Translation updates (FR, ES, VI, UK, IT, etc.)
- Internal cleanup, styling tweaks, and minor improvements
- Version bump to v13.2.0
🔄 Other Changes II
- fix(deps): update dependency com.mikepenz:multiplatform-markdown-renderer-m3 to v0.40.2 by @renovate[bot] in #441
- Update agp to v9.1.1 by @renovate[bot] in #463
- Update dependency com.google.guava:guava to v33.6.0-jre by @renovate[bot] in #465
- Update dependency com.valentinilk.shimmer:compose-shimmer to v1.4.0 by @renovate[bot] in #466
- Update actions/cache action to v5 by @renovate[bot] in #468
- Update actions/checkout action to v6 by @renovate[bot] in #469
- Update dependency androidx.annotation:annotation to v1.10.0 by @renovate[bot] in #464
- chore(deps): update actions/download-artifact action to v8 by @renovate[bot] in #470
- chore(deps): update actions/setup-python action to v6 by @renovate[bot] in #471
- fix(deps): update dependency com.github.kyant0:m3color to v2026 by @renovate[bot] in #472
- Update dependency org.jsoup:jsoup to v1.22.2 by @renovate[bot] in #482
- fix(deps): update dependency sh.calvin.reorderable:reorderable to v3.1.0 by @renovate[bot] in #483
📝 Notes
- Major focus on local media support, playback stability, and sync systems
- Several experimental features were refined or reverted for stability