Skip to content

13.7.0

Latest

Choose a tag to compare

@rukamori rukamori released this 02 Jul 07:12

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