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
TopAppBarStateheight 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.comintoYouTubeWatchUrl. - Forwarded the GVS token to the extractor.
- Recovered equalizer audio sessions.
- Swapped YouTube Music thumbnails with
i.ytimg.comURLs 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-coreto v0.4.6. - Updated
com.mocharealm.accompanist:lyrics-coreto 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
ListItemDefaultscalls inAppIconRow. - 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
LazyCacheto usewithDelegateforSimpleCacheaccess. - 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
rememberusage fromAppIconRow.
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
AdaptiveIconForegroundInsetto20dp. - 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.comURLs 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-coreto 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-coreto 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