github rukamori/ArchiveTune v13.7.0
13.7.0

15 days ago

Changelog

Focuses on lyrics improvements, extractor playback routing, YouLyPlus support, app icon customization, artist blocking, library download visibility, Discord Rich Presence reliability, search behavior, cache/storage stability, and broader Material 3 UI polish. This release also includes localization updates, dependency updates, icon-generation pipeline improvements, and internal refactors.

Major Highlights

Lyrics, Providers & Playback Routing

Lyrics handling has been expanded with stronger provider support, better TTML behavior, and improved playback URL routing through the extractor pipeline.

  • Added romanization and translation support to both enhanced and legacy lyrics modes.
  • Added the YouLyPlus lyrics provider.
  • Added cookie forwarding to streamingExtractionManager.extractAudioUrl.
  • Routed extractor playback URLs through ResolvedUrlRoutingDataSource.
  • Recognized URI paths for extractor playback.
  • Preserved line-synced Better Lyrics TTML output.
  • Classified TTML sync badges more accurately.
  • Filtered empty Paxsenix lyrics payloads.
  • Gated automatic provider translations.
  • Wrapped long lyrics in both lyrics modes.

Contributors: @rukamori
Related: #961

Search, Library & Artist Controls

Search, library, and artist-management flows have been refined with new interaction behavior and stronger content filtering.

  • Opened online search from the floating navigation toolbar on double tap.
  • Opened the search overlay when tapping the Search tab while already on the Search screen.
  • Added global artist blocking and blocked-content handling.
  • Added downloaded album visibility in Library Albums.
  • Added a downloaded album filter.
  • Corrected Local Playlist search mode layout.
  • Prevented Home app bar overlap.
  • Reserved Home chip space during loading.
  • Tightened Home section spacing.

Contributors: @rukamori, @sang765, @mikooochi
Related: #940, #944

App Icons & Launcher Customization

Launcher icon customization has been expanded with metadata-driven selection, GitHub author actions, and a more reliable adaptive-icon generation pipeline.

  • Added a metadata-driven launcher icon selector.
  • Added GitHub author actions to the icon screen.
  • Matched the icon selector design to the app’s UI language.
  • Generated full adaptive launcher icons.
  • Generated adaptive icons from SVG metadata.
  • Preserved SVG launcher artwork.
  • Prevented duplicate adaptive icon layers.
  • Created the adaptive drawable directory when needed.
  • Enforced 512 vector dimensions for icon submissions.
  • Sanitized SVG doctype declarations.
  • Handled missing vector fill colors.
  • Added opaque vector fill support for submitted icon artwork.
  • Aligned the selected icon stroke with row shape.
  • Prevented main-thread vector inflation.
  • Synchronized the selected launcher task icon.

Contributors: @rukamori, @mikooochi

Material UI, Motion & Recognition

The app receives broader Material motion adoption, tonal backdrop changes, and recognition-screen refinements.

  • Applied the global Material motion scheme.
  • Replaced the previous mesh background with a tonal backdrop.
  • Rebuilt the Music Recognition flow and UI.
  • Added restrained Material Shape recognition anchoring.
  • Fixed recognition callback, button shape, and composable shape creation issues.
  • Standardized settings header scroll behavior.
  • Refactored the main header scroll style.
  • Corrected navigation callback typing.
  • Reset TopAppBarState height and content offsets.
  • Filled the AOD shape picker grid width.
  • Used compatible connected button shapes in Debug Settings.

Contributors: @rukamori, @adam-adrian, @mikooochi
Related: #941, #963

Discord Rich Presence & Social Playback

Discord and Music Together reliability have been improved across status rendering, gateway sync, activity platform storage, and session state.

  • Supported multiple artists in Discord RPC status.
  • Centralized Discord RPC sync flow and hardened gateway transport.
  • Fixed Discord Rich Presence missing token handling.
  • Prevented thumbnails from replacing artist artwork.
  • Prevented playing presence from rendering as paused.
  • Serialized the selected activity platform.
  • Marked Music Together sessions active only when connected.

Contributors: @rukamori, @adam-adrian
Related: #919, #932

Localization & Community

This release includes expanded and corrected translations across multiple languages.

  • Completed Vietnamese translation coverage for 61 missing strings.
  • Added missing Vietnamese translations.
  • Updated Indonesian translations.
  • Added Javanese translation support.
  • Fixed ambiguous palette duplicate strings.
  • Added and updated translations through Weblate for French, Indonesian, Korean, Vietnamese, Portuguese (Brazil), Spanish, Turkish, Urdu, Dutch, German, Hebrew, Thai, Chinese Traditional, Japanese, Russian, Ukrainian, Arabic, Italian, and other community-maintained languages.

Contributors: @sang765, @Davidzinco, @Mickael81, @hsp1020, @wynriu, @ValteMCPE, @gallegonovato, @radenya86, @beebtw, @Myrdincx, @flue17, @Yar270, @FullGa123, hijasongood, @nekohepott32, @AlmaziikDev, @Nijeryaprensi, Ur_lightmoon, @andres2, @MadameVulva
Related: #920, #925, #933

Stability & Bug Fixes

Playback, Extractor & YouTube Reliability

Playback and extractor stability have been improved across YouTube routing, stream recovery, fallback behavior, equalizer session handling, and bot-detection paths.

  • Guarded Cast disconnect media item transfer.
  • Required Datasync ID for account login to prevent global playback-forbidden issues.
  • Ignored "Origin doesn't match Host" client errors.
  • Filtered JavaScript player extractor failures in getStreamUrl.
  • Skipped external audio fallback on YouTube bot detection.
  • Used music.youtube.com in toYouTubeWatchUrl.
  • Forwarded the GVS token to the extractor.
  • Recovered equalizer audio sessions.
  • Swapped YouTube Music thumbnails with i.ytimg.com URLs for music videos.
  • Prevented playing presence from rendering as paused.

Contributors: @rukamori, @sang765
Related: #895, #929

Lyrics Screen & Input Handling

Lyrics controls now avoid touch-through behavior and better isolate control surfaces from the underlying player content.

  • Blocked touch-through behind lyrics controls.
  • Isolated the lyrics touch shield from content.
  • Wrapped long lyrics in enhanced and legacy modes.
  • Preserved line-synced Better Lyrics TTML output.
  • Removed problematic player pointer-input handling.

Contributors: @rukamori
Related: #907, #961

Queue, Cast, Navigation & UI State

Queue and navigation behavior have been stabilized with safer bundle keys, fewer forced-scroll cases, and cleaner layout state.

  • Prevented queue list flicker and forced scrolling.
  • Used bundle-safe queue list keys.
  • Corrected navigation callback typing.
  • Ensured app bar state offsets reset correctly.
  • Prevented Home app bar overlap.
  • Reserved chip slot space during Home loading.
  • Corrected Local Playlist search mode layout.
  • Allowed saving the current account.

Contributors: @rukamori, @mikooochi

Storage, Cache & Downloads

Download and storage operations now use safer buffering, timeout handling, and cache-clearing behavior.

  • Increased download write buffer sizes.
  • Added HTTP timeouts.
  • Prevented cache clearing freezes.
  • Refactored media cache clearing through StorageCacheClearReporter.

Contributors: @rukamori, @sang765
Related: #917

Icon Submission & Generation Pipeline

Community icon submission and generation handling has been hardened to reduce malformed output and launcher-resource issues.

  • Accepted JSON-only PR metadata.
  • Sanitized SVG doctype declarations.
  • Enforced 512 vector dimensions.
  • Passed SVG source as a path.
  • Resolved JAXP property compatibility.
  • Created adaptive drawable directories.
  • Prevented duplicate adaptive icon layers.
  • Preserved SVG launcher artwork.
  • Generated full adaptive launcher icons.
  • Avoided main-thread vector inflation.

Contributors: @rukamori, @mikooochi

Dependency & Compatibility Fixes

Dependencies and compatibility paths have been updated for build and runtime reliability.

  • Updated all dependencies to v15.0.3.
  • Updated com.mocharealm.accompanist:lyrics-core to v0.4.6.
  • Updated com.mocharealm.accompanist:lyrics-core to v0.4.7.
  • Updated Gradle to v9.6.1.
  • Replaced deprecated RenderScript blur with a pure Kotlin stack blur.
  • Avoided empty plugin descriptor tasks.

Contributors: @renovate[bot], @sang765, @rukamori
Related: #921, #922, #924, #962, #964, #966

Performance Improvements

  • Memoized ListItemDefaults calls in AppIconRow.
  • Prevented main-thread vector inflation in the icon screen.
  • Increased download write buffers and added HTTP timeouts.
  • Prevented cache-clearing freezes.

Contributors: @rukamori, @mikooochi, @sang765
Related: #917

Internal Cleanup & Refactors

Architecture & UDF

  • Refactored LazyCache to use withDelegate for SimpleCache access.
  • Moved Home screen logic directly to a UDF structure.
  • Moved Search Result data to UDF.
  • Rebuilt Music Recognition flow and UI.
  • Refactored Artist Screen overflow actions into segmented controls.
  • Merged lyrics translation handling.
  • Removed redundant remember usage from AppIconRow.

Contributors: @rukamori

Discord, Settings & Storage Internals

  • Centralized Discord RPC sync flow.
  • Hardened Discord gateway transport.
  • Standardized settings header scroll behavior.
  • Refactored main header scroll style.
  • Refactored cache clearing through StorageCacheClearReporter.

Contributors: @rukamori, @adam-adrian
Related: #919, #941, #963

Build, CI & Release Reliability

  • Increased AdaptiveIconForegroundInset to 20dp.
  • Commented the generated icon preview table.
  • Updated submodules.
  • Updated docs and assets.
  • Removed duplicate strings.
  • Cleaned formatting and unused imports.
  • Bumped the app to 13.7.0.

Contributors: @rukamori

Pull Request Highlights

  • #917 — Increased download write buffer sizes and added HTTP timeouts by @sang765.
  • #919 — Centralized Discord RPC sync flow and hardened gateway transport by @adam-adrian.
  • #920 — Completed Vietnamese translation coverage for 61 missing strings by @sang765.
  • #921 / #924 — Replaced deprecated RenderScript blur with pure Kotlin stack blur by @sang765.
  • #925 — Added missing Vietnamese translations and fixed ambiguous palette duplicates by @sang765.
  • #929 — Swapped YouTube Music thumbnails with YouTube i.ytimg.com URLs for music videos by @sang765.
  • #932 — Added multiple-artist support to Discord RPC status by @adam-adrian.
  • #933 — Updated Indonesian translations and added Javanese translation by @Davidzinco.
  • #941 — Standardized settings header scroll behavior by @adam-adrian.
  • #944 — Opened the search overlay when tapping the Search tab while already on Search by @sang765.
  • #949 — Merged the music-video-only thumbnail swap fix by @sang765.
  • #962 — Updated com.mocharealm.accompanist:lyrics-core to v0.4.6 by @renovate[bot].
  • #963 — Refactored the main header scroll style by @adam-adrian.
  • #964 — Updated dependencies by @renovate[bot].
  • #966 — Updated com.mocharealm.accompanist:lyrics-core to v0.4.7 by @renovate[bot].

Contributors

Thanks to everyone who contributed to this release:

@rukamori, @sang765, @Davidzinco, @mikooochi, @adam-adrian, @Mickael81, @hsp1020, @wynriu, @ValteMCPE, @gallegonovato, @radenya86, @beebtw, @Myrdincx, @flue17, @Yar270, @FullGa123, hijasongood, @nekohepott32, @AlmaziikDev, @Nijeryaprensi, Ur_lightmoon, @andres2, @MadameVulva

Referenced Issues & Pull Requests

#895, #907, #913, #916, #917, #919, #920, #921, #922, #924, #925, #929, #932, #933, #940, #941, #944, #945, #949, #961, #962, #963, #964, #966

Full Changelog

Full Changelog: v13.6.0...v13.7.0

Don't miss a new ArchiveTune release

NewReleases is sending notifications on new releases.