github koiverse/ArchiveTune v12.4.7
12.4.7

7 hours ago

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 perceptualLoudnessDb schema 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 Coil image 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 MainActivity and MusicService to background dispatchers.

  • Implemented concurrent data loading in HomeViewModel.

  • Database: Optimized PRAGMA settings and query performance for migrations.


🛠 Technical Refactors

  • Music Service: Massive refactor of MusicService.kt to 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 isLocal default value handling).
  • Navigation: Simplified navigation logic and removed redundant "Permission Onboarding" screens.
  • Code Structure:
  • Moved DiscordRPC image logic to a centralized resolver.
  • Refactored DownloadUtil to use shared cache definitions.
  • Cleaned up ArtistScreen and AlbumScreen layouts 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

New Contributors

Full Changelog: v12.4.6...v12.4.7

Don't miss a new ArchiveTune release

NewReleases is sending notifications on new releases.