Changelog v12.4.7
✨ New Features
Player & Audio Engine
- High Fidelity Audio: Added "Very High" and "Highest" audio quality options to settings.
- Audio Normalization: Implemented
perceptualLoudnessDbschema to support more accurate audio normalization. - Audio Offload: Introduced a new preference key and ExoPlayer configuration to support audio offloading for better battery efficiency during playback.
- Player V4 Design: Added a new "V4" player design style, alongside a new "Glow" background animation style.
- Playback Control:
- Added custom shuffle and repeat mode commands to the Media Session callback.
- Added specific "Start Mix" buttons for both Local and Online playlists.
- Added a loading progress bar state when the player is buffering.
Lyrics Experience
-
Visual Overhaul: Completely overhauled lyrics animations, specifically implementing a "BetterLyrics-style" karaoke animation that features improved gradients, glow effects, and smoother transitions.
-
TTML Support: Added full parsing support for TTML lyrics, including handling for background vocals and precise end-times.
-
Styling Options:
-
Added a distinct style for Romanized lyrics to differentiate them visually.
-
Added a "Karaoke" animation style for standard lyrics display.
-
Added settings to adjust preview time constants.
-
Synchronization: Implemented auto-sync logic for lyrics and a fallback animation if karaoke data is missing.
User Interface & Theming
-
Navigation Rail: Implemented a Navigation Rail for wide-screen devices (replacing the bottom bar) to improve tablet/landscape usability.
-
Material 3 Adoption: Full migration to Material 3 UI components, including Switches, Sliders, Edit Texts, and Palette Pickers.
-
Theme Creator:
-
Added a comprehensive Palette Picker Screen with carousel indicators.
-
Added support for Custom Theme Seeds, "Exact Palettes," and a "Pure Black" mode.
-
Vibrant mesh backgrounds now feature increased blob opacity and falloff stops.
-
Blur Effects:
-
Added toggle options to disable blur effects specifically in Album and Library screens.
-
Refined the TopAppBar blur with dynamic height adjustments based on scroll position.
-
Year in Music: Added a summary feature (
YearInMusicScreen) that generates shareable images with theme-based colors and user statistics.
Library & Content Management
-
Global Video Filtering: Added a comprehensive "Hide Video" preference that filters video content across all application areas:
-
Home, Search (and Suggestions), Explore, New Releases, Artist Pages, and Playlists.
-
Playlist Management:
-
Auto-Sync: Implemented automatic synchronization for playlists with immediate triggers upon enabling.
-
Duplicate Handling: Added robust duplicate detection and state management when importing playlists.
-
Reordering & Pinning: Added support for dragging to reorder playlists and pinning favorite playlists.
-
Tagging: Added support for tagging multiple playlists and filtering by tags in the library.
-
Artist Separators: Added a dialog and options for managing custom artist separators.
Integrations
-
Last.fm:
-
Implemented full OAuth Login and mobile session authentication.
-
Enhanced robustness for "Now Playing" updates and session key handling.
-
Discord RPC:
-
Added a Discord Image Resolver to handle rich presence assets.
-
Implemented connection status checks, wait logic, and automatic image type detection.
-
GitHub: Added a cached "Contributors" section to the About screen (filtering out bots).
🐛 Bug Fixes
Playback & Audio
- Looping Issues: Fixed a bug where Album Looping was not working as expected.
- Radio Mode: Resolved an issue where Radio mode would restart the current song from the beginning upon start.
- Normalization: Fixed bugs preventing audio normalization from functioning correctly.
- Metadata: Corrected track duration calculations for Last.fm updates and handled null song cases to prevent crashes.
User Interface
-
Blur & Visibility:
-
Fixed issues where the TopAppBar shadow/background was missing.
-
Adjusted alpha values for blur overlays to fix visibility issues ("Blur like before").
-
Fixed the "Downloaded" filter pill not showing downloaded albums correctly.
-
Lyrics: Fixed scrolling motion reduction and improved gradient transitions for karaoke fills.
-
Bottom Sheet: Fixed background opacity issues in
BottomSheetPlayer.
Sync & Database
-
Startup Crashes: Fixed an ANR (App Not Responding) issue caused by SQLite deadlocks during startup after YouTube login.
-
Playlists:
-
Fixed inconsistencies when adding songs to playlists.
-
Fixed auto-sync database queries.
-
Improved error handling for Backup/Restore operations.
-
Login Persistence: Fixed Last.fm login dialog behavior and credential storage (reading from
local.properties).
System & Services
- Foreground Service: Ensured compliance with Android O+ foreground service requirements to prevent crashes.
- Discord Presence: Fixed connection stability, restart lockout logic, and shutdown resilience.
- Crash Reporting: Enhanced the Debug Activity to include stack traces and action buttons.
⚡ Performance Improvements
-
Image Caching: Optimized
Coilimage requests by dynamically sizing requests and implementing automated cache pruning for old entries. -
Lyrics Engine:
-
Implemented binary search for lyric line index lookup (significantly faster than linear search).
-
Optimized update delays for smoother synchronization.
-
Concurrency:
-
Offloaded blocking operations in
MainActivityandMusicServiceto background dispatchers. -
Implemented concurrent data loading in
HomeViewModel. -
Database: Optimized
PRAGMAsettings and query performance for migrations.
🛠 Technical Refactors
- Music Service: Massive refactor of
MusicService.ktto delegate media notification handling, command processing, and coroutine scope management. - Database Migration: Consolidated migrations and added a "Schema Repair" mechanism to handle updates to version 25 (including
isLocaldefault value handling). - Navigation: Simplified navigation logic and removed redundant "Permission Onboarding" screens.
- Code Structure:
- Moved
DiscordRPCimage logic to a centralized resolver. - Refactored
DownloadUtilto use shared cache definitions. - Cleaned up
ArtistScreenandAlbumScreenlayouts to remove unused imports and improve rendering efficiency.
🌐 Localization
- New Languages: Added support for Estonian, Vietnamese.
- Updated Translations: French, German, Indonesian, Japanese, Korean, Portuguese (Brazil), Russian.
Other Changes II
- Rename section from 'phoneScreenshots' to 'ArchiveTune Screenshots' by @Windowstechtips in #92
- fix TopAppBar background by @GoldenWarriorM in #100
- French language added by @MicheDePainn in #103
- Redesign artist by @koiverse in #105
- fix(deps): update compose to v1.10.0-rc01 by @renovate[bot] in #110
- fix(deps): update dependency androidx.activity:activity-compose to v1.12.0 by @renovate[bot] in #111
- fix(deps): update dependency androidx.compose.material3:material3 to v1.5.0-alpha09 by @renovate[bot] in #112
- fix(deps): update dependency androidx.lifecycle:lifecycle-process to v2.10.0 by @renovate[bot] in #113
- fix(deps): update dependency androidx.navigation:navigation-compose to v2.9.6 by @renovate[bot] in #114
- merge Dev to main by @koiverse in #135
- Fix typo in README description by @Windowstechtips in #108
- add autoscroll button animation and .clickable scroll to current lyric by @GoldenWarriorM in #153
- fix (Queue): prevent dragged queue item from being hidden behind others and fix current track highlighting during reordering by @GoldenWarriorM in #158
- fix (ui/Menu): improve bottom sheet menu scrolling and gesture handling by @GoldenWarriorM in #166
- Update German translations in archivetune_strings.xml by @siggi1984 in #168
- Update German translations in strings.xml by @siggi1984 in #169
- Update French translation in strings.xml by @Mickael81 in #173
- Update French translation in archivetune_strings.xml by @Mickael81 in #174
- Fix French translation issues & Proper Apple Music style lyric implementation for karaoke style. by @Windowstechtips in #175
- Fix web remix client not working and premium audio quality not being available. by @Mizuuta in #183
- Update lyrics API URL in BetterLyrics.kt by @Windowstechtips in #184
- Update API base URL for BetterLyrics by @Windowstechtips in #185
- TTML Overhaul, Lyrics Overhaul, Stats Page Overhaul, Homepage Optimizations by @Windowstechtips in #187
- Dev by @Windowstechtips in #189
- Add automix and autoplay similar content to queue UI by @Windowstechtips in #190
- Remove unnecessary explicit multidex as it enabled by default by @MrBoomDeveloper in #193
- Refactor bottom sheet drag logic into reusable modifier by @Windowstechtips in #194
- animated glow bg and some other fixes by @Windowstechtips in #195
- Update Translate by @koiverse in #196
- ❤️🔥 Use navigation rail instead of bottom one if screen is wide by @MrBoomDeveloper in #200
- Refactor lyrics and player UI for performance and style by @Windowstechtips in #202
New Contributors
- @GoldenWarriorM made their first contribution in #100
- @MicheDePainn made their first contribution in #103
- @siggi1984 made their first contribution in #168
- @Mickael81 made their first contribution in #173
- @Mizuuta made their first contribution in #183
- @MrBoomDeveloper made their first contribution in #193
Full Changelog: v12.4.6...v12.4.7