Releases: rukamori/ArchiveTune
Release list
14.1.0
Changelog V14.1.0
This release focuses on playback compatibility, Canvas stability, Android 15 artwork handling, YouTube stream-client improvements, lyrics provider support, and a major expansion of the player and always-on-display experience.
It also improves network-gate handling, playback authentication, queue behavior, Discord integration, Cast support, localization, playlist imports, and several Android UI edge cases. The release includes substantial community contributions across player design, AOD, lyrics, localization, and playlist management.
Major Highlights
Canvas Artwork and Android Compatibility
Canvas playback and notification artwork handling have been hardened for newer Android versions and a wider range of media codecs.
- Added Canvas media-codec validation before attempting playback.
- Prevented retry loops and crashes when Canvas videos are unsupported.
- Added conditional artwork URI generation for Ice Cream builds to avoid Android 15 metadata-artwork crashes.
- Simplified notification artwork URI conversion.
- Improved Canvas compatibility checks and playback stability.
Contributors: @rukamori, @mikooochi
Related issue: #1047
Material Extended V9 Player
ArchiveTune now includes a major Material Extended V9 player experience with dynamic artwork-driven theming and improved player interactions.
- Added the Material Extended V9 player theme.
- Added dynamic majority-color extraction and animated color transitions.
- Improved player control hierarchy and layout.
- Added thread-safety improvements around player state.
- Improved download and backup integration.
- Refined navigation-bar behavior and player surfaces.
- Improved responsiveness when switching between tracks.
Contributor: @IIXII-L192
Pull request: #1069
YouTube Playback and Stream Clients
YouTube playback compatibility has been updated with a new Android VR client and improved authentication behavior.
- Added the "ANDROID_VR_1_65_10" stream client.
- Updated stream-client ordering logic.
- Replaced the previous "ANDROID_VR_NO_AUTH" client handling.
- Improved primary Web playback authentication without requiring a PoToken in applicable cases.
- Extracted Web playback PoToken minting and forbidden-request detection.
- Improved playback authentication state handling.
- Refined token binding and persisted visitor-data handling.
Contributors: @rukamori
Lyrics and BetterLyrics
Lyrics provider coverage has been expanded with support for BetterLyrics Portato.
- Added BetterLyrics Portato support for word-synchronised lyrics.
- Added provider handling for songs that do not expose syllable-synchronised lyrics.
- Improved lyrics provider selection and ordering.
- Kept lyrics provider actions visible when changing provider settings.
- Improved lyrics search and provider reliability.
Contributor: @rukamori
Related issue: #1060
Related issue: #1128
Always-On Display and Lock Controls
The AOD experience has been substantially expanded with additional playback and device-lock controls.
- Added DreamService-based Always-On Display support.
- Added smart-lock behavior.
- Added shake-to-unlock support.
- Added automatic locking.
- Added additional AOD interaction and marquee behavior.
- Improved sleep-timer interaction with playback.
- Improved AOD touch handling.
Contributor: @Balajitechlabs
Pull request: #1120
Playlist Import Improvements
M3U and CSV imports now provide better source matching and a safer review process.
- Added source-aware playlist matching.
- Added a review step before imported songs are saved.
- Improved matching of imported tracks against available media.
- Reduced accidental or incorrect playlist entries during import.
Contributor: @Sandy4j
Pull request: #1041
Localization and Android Locale Support
Localization handling has been improved, including proper Egyptian Arabic resource resolution.
- Corrected the Egyptian Arabic Android resource directory.
- Improved Android locale resolution for "ar-EG".
- Added and updated community translations across multiple languages.
Contributor: @midomizo933
Pull request: #1078
Related issue: #1074
Stability and Bug Fixes
Playback and Network Gate
- Handle network-gate IO failures as temporarily unavailable instead of permanently blocked.
- Display blocked-gate messages through the appropriate UI channel.
- Improved retryable network-gate handling.
- Temporarily bypassed the access gate where required.
- Improved playback recovery when gate availability changes.
Contributors: @rukamori
Player and Queue
- Fixed player bottom-sheet visibility during expansion.
- Prevented unsupported Canvas playback from repeatedly crashing.
- Bootstrapped infinite queues for short queues.
- Improved artist resolution from subtitle endpoints.
- Handled missing subtitle runs safely.
- Improved Home quick-access behavior for personalised content.
- Restored Cast-device discovery and selection.
- Prevented playlist badges from wrapping incorrectly.
- Resolved Flow-combination limitations in HomeViewModel.
Contributor: @rukamori
Related issues: #1038, #1088, #1102, #1137
Discord and External Integrations
- Prevented Discord traffic when Rich Presence is disabled.
- Improved external-integration state handling.
- Reduced unnecessary background communication.
Contributor: @rukamori
Related issue: #1121
Lyrics Settings
- Kept provider-dialog actions visible during provider configuration.
- Improved provider-selection behavior.
- Fixed lyrics-provider ordering interactions.
Contributor: @rukamori
Related issue: #1128
Android and Artwork Compatibility
- Fixed Android 15 notification metadata-artwork crashes.
- Improved notification artwork URI generation.
- Prevented Canvas retries for incompatible media codecs.
- Improved compatibility between cached Canvas content and the active playback codec.
Contributors: @rukamori, @mikooochi
Related issue: #1047
Internal Refactors
YouTube Authentication
- Reworked playback-auth state handling around the current YouTube playback session.
- Extracted Web playback PoToken generation into dedicated logic.
- Added explicit forbidden-player-request detection.
- Replaced visitor-data checks with session-based authentication state where appropriate.
- Extracted the YouTube login WebView client.
- Simplified login initiation through "startLogin".
- Reworked verification authentication state and account-information ordering.
Contributor: @rukamori
Player State and UI
- Replaced player bottom-sheet collapsed/dismissed checks with "isExpandedOrExpanding".
- Updated player visibility conditions to account for transitional expansion states.
- Simplified Android VR stream-client handling.
- Improved player and navigation state coordination.
Contributor: @rukamori
Support and Dependency Cleanup
- Removed the existing Start.io integration from the browser-support repository.
- Continued cleanup related to the Start.io GPL-compliance work.
- Refined slider-color initialization.
- Updated project domain information.
- Improved release/version workflow handling.
Contributors: @mikooochi, @rukamori
Pull Request Highlights
- #1041 — Improved M3U/CSV playlist imports with source-aware matching and a review flow by @Sandy4j.
- #1053 — Recognition, download, AOD, sleep-timer, lyrics, GMS, and Start.io GPL-compliance improvements by @IIXII-L192.
- #1069 — Material Extended V9 player, dynamic majority-color transitions, thread-safety, download, and backup updates by @IIXII-L192.
- #1078 — Fixed Egyptian Arabic Android locale resource handling by @midomizo933.
- #1120 — Added DreamService AOD, smart lock, shake-to-unlock, auto-lock, and related AOD features by @Balajitechlabs.
- #1127 — Reverted the experimental Apple Music player, frosted mini-player, and floating-navigation-bar implementation by @rukamori.
Resolved and Referenced Issues
- #1038 — Music player bottom-sheet transition and visibility behavior.
- #1047 — Canvas playback crash caused by incompatible cached Canvas content.
- #1060 — BetterLyrics Portato provider support.
- #1074 — Egyptian Arabic locale directory structure.
- #1088 — Playlist badge wrapping.
- #1102 — Google Cast device discovery.
- #1121 — Discord Rich Presence remaining active when playback is stopped.
- #1128 — Lyrics provider ordering controls.
- #1137 — Personalised Home quick picks.
Localization
Translations were added or updated for:
- Arabic
- Arabic (Egyptian)
- Arabic (Levantine)
- Chinese (Simplified)
- Chinese (Traditional)
- Czech
- French
- German
- Hungarian
- Indonesian
- Italian
- Kurdish (Kurmanji)
- Portuguese (Brazil)
- Russian
- Sinhala
- Spanish
- Tagalog
- Thai
- Turkish
- Urdu
- Vietnamese
Translation contributors included:
@Mickael81, @gallegonovato, @ffelixm, @nike49424, @marstraveler01, @midomizo933, @halilibrahirn, @fiiiish_owo, @Hanifz99, @Fathirazzamy, @NGLTX, @hanifz, @beebtw, @hijasongood, @withme, @hewkawar, @DarkForceFREEFIRE, @siggi1984, @AxMilin, @Voravit09, @cursedovich, @hellsfaun, @GearCzech, @ValteMCPE, @MXMH2o1o, and @Fathirazzamy.
Contributors
Thanks to the contributors who worked on this release:
@rukamori, @mikooochi, @IIXII-L192, @Simone20031, @Balajitechlabs, @Sandy4j, @midomizo933, @Mickael81, @gallegonovato, @ffelixm, @nike49424, @marstraveler01, @halilibrahirn, @fiiiish_owo, @Hanifz99, @Fathirazzamy, @NGLTX, @hanifz, @beebtw, @hijasongood, @withme, @hewkawar, @DarkForceFREEFIRE, @siggi1984, @AxMilin, @Voravit09, @cursedovich, @hellsfaun, @GearCzech, @ValteMCPE, @MXMH2o1o
Referenced Issues and Pull Requests
#1038, #1041, #1047, #1053, #1060, #1069, #1074, #1078, #1088, #1102, #1120, #1121, #1127, #1128, #11...
14.0.0
Changelog V14.0.0
This release expands background music recognition, improves playback and device controls, introduces scheduled backups, enhances download management, and adds broader filtering for blocked artists and music videos.
It also delivers major updates to the mini player, media-detail screens, lyrics customization, Spotify playlist downloads, Canvas artwork handling, diagnostics, playback authentication, and application stability.
Major Highlights
Background Music Recognition
Music recognition can now operate while ArchiveTune is outside the foreground.
- Added background device-audio recognition through the Music Recognition quick-settings tile.
- Added a background recognition preference to the Music Recognition screen.
- Fixed background recognition compilation failures.
- Improved recognition service reliability and lifecycle handling.
Contributor: @mikooochi
Playback Devices and Audio Information
Player V7 and V8 now provide better system output controls and more detailed local-file information.
- Added a native audio-output switcher.
- Added a reactive playback-device indicator.
- Added real bitrate and sample-rate information for local audio.
- Added fallback metadata when bitrate or sample-rate information is unavailable.
- Improved file-size formatting with dynamic units and decimal precision.
- Fixed an Android 10 crash when opening the output switcher.
- Added a V7 and V8 volume-bar preference.
- Prevented duplicate copies of the current song from appearing in the queue.
Contributors: @adam-adrian, @mikooochi, @rukamori
Pull requests: #981, #988, #991, #1000
Mini Player and Player Controls
Player surfaces and controls have been reconstructed for clearer interaction and better visual consistency.
- Reconstructed the mini player.
- Restored circular artwork progress.
- Replaced the floating mini-player toolbar with a compact navigation bar.
- Added explicit-content badges across all player styles.
- Added a lyrics player-controls visibility toggle.
- Added a Canvas artwork refresh action.
- Added reactive Canvas artwork updates during playback.
- Added a V7 and V8 volume-bar toggle.
- Aligned paired floating mini-player surfaces.
- Improved player-menu Canvas action visibility across player designs.
Contributors: @mikooochi, @rukamori
Download Library and Spotify Downloads
Download management now provides clearer grouping, searchable content, and expanded Spotify playlist support.
- Added grouped download-management tabs.
- Added searchable downloaded-media rows.
- Added Spotify playlist download actions.
- Added download-state handling to Spotify playlist headers.
- Added concurrent Spotify track resolution with up to eight active resolutions.
- Fixed synchronized pause controls in download headers.
- Restored paused-download controls.
- Fixed queueing of subsequent downloaded songs.
- Restored artwork for downloaded songs.
- Reused playback data when preparing downloads.
Contributors: @rukamori, @mikooochi
Scheduled Backups
ArchiveTune can now create backups on a configured schedule.
- Added scheduled backup support.
- Added scheduled-backup repository handling.
- Repaired the scheduled-backup settings layout.
- Improved document-name handling for backup destinations.
Contributor: @mikooochi
Blocked Artists and Music-Video Filtering
Content filtering is now enforced more consistently across playback, playlists, albums, artists, and library screens.
-
Removed blocked-artist items from playback queues.
-
Filtered blocked artists before playback begins.
-
Added persistent music-video metadata to songs.
-
Added a preference for hiding music videos.
-
Applied music-video filtering to:
- Artist content
- Albums
- Cached playlists
- Online playlists
- Local playlists
- Liked songs
- Library songs
- Artist-song collections
-
Preserved music-video metadata during library and like synchronization.
-
Added appropriate YouTube artwork handling for music-video entries.
-
Updated the music database from version 32 to version 33.
Contributor: @mikooochi
Lyrics Customization and Search
Lyrics screens now provide more display controls and more reliable refresh behavior.
- Added selectable lyrics background styles.
- Added persisted custom-background image permissions.
- Added a responsive background-customization layout.
- Added a player-controls visibility switch.
- Added lyrics refresh actions to search-result headers.
- Replaced state-based refresh dialogs with event-driven completion handling.
- Made lyrics searches cancellable and forced fresh requests when required.
- Improved lyrics preload persistence.
- Fixed immediate updating of the controls switch.
- Fixed lyrics-menu shape conversion.
- Expanded and corrected the lyrics search dialog.
Contributors: @mikooochi, @rukamori
Canvas Artwork Refresh
Canvas artwork can now be manually refreshed when cached artwork is outdated or incorrect.
- Added manual Canvas artwork refresh from the player menu.
- Added forced refresh support to the artwork provider.
- Added no-cache network requests during manual refresh.
- Added cache replacement for individual media items.
- Preserved reusable cached Canvas videos.
- Rejected artwork that does not match the current media.
- Added playback revision tracking to update active artwork safely.
- Preserved cancellation handling during Canvas requests.
Contributors: @mikooochi, @rukamori
Related: #530
Media Details, Albums and Playlists
Media-detail screens now share a more responsive and consistent action layout.
- Unified responsive actions across media-detail screens.
- Added balanced action placement for constrained screen widths.
- Added horizontally scrollable actions with fading edges.
- Added confirmation before removing saved media.
- Reconstructed album and playlist screen data.
- Aligned cached-playlist screens with other playlist details.
- Restored album screen structure.
- Restored top-playlist access in Library Mix.
- Compactly arranged Artist screen playback actions.
- Corrected playlist creation so data is saved before the dialog closes.
- Synchronized remote playlist covers while preserving local covers.
Contributors: @rukamori, @mikooochi
About, Settings and Update Screens
Several major screens have been reconstructed using more consistent responsive surfaces and grouping.
- Reconstructed the About screen.
- Tightened About screen section spacing.
- Added a distinct lead-developer surface.
- Grouped application settings into clearer sections.
- Reconstructed update-status presentation.
- Added tonal segmented surfaces to the Update screen.
- Rounded standalone update-list surfaces.
- Prevented duplicate update checks.
- Migrated nightly update channels to canary.
- Added workflow-based download fallback for canary releases.
- Updated repository links and release metadata.
Contributor: @rukamori
Related: #1025
Diagnostics and Cipher Recovery
Playback diagnostics and YouTube decryption recovery have received major reliability improvements.
- Added a unified log viewer.
- Added player-aware window insets to the log screen.
- Added self-recovering YouTube decryption.
- Added refresh progress percentages.
- Added vertically animated refresh countdowns.
- Animated only countdown digits that changed.
- Simplified token generation.
- Improved JavaScript plan pattern detection.
- Added required global execution shims.
- Increased compiler limits for larger player scripts.
- Moved cipher refresh compilation away from the main thread.
- Recorded refresh rate limits using the actual refresh timestamp.
- Reset manual refresh limits after 24 hours.
- Prevented throttled playback URLs.
- Preserved playback authentication during recovery.
- Added extractor authentication-event handling.
- Added runtime bearer-token replacement after authentication failures.
Contributor: @rukamori
Stability and Bug Fixes
Playback and Streaming
- Removed redundant stream preflight requests that caused long loading times.
- Preferred Web Remix playback where appropriate.
- Preserved signed-in YouTube playback authentication.
- Marked stream clients as failed when no HTTP status was returned.
- Added fallback playback for online playlist songs.
- Reconstructed initial queue creation.
- Prevented duplicate current-song entries.
- Closed inactive Music Together rooms.
- Preserved favorite actions for uncached songs.
- Prevented Cast disconnection crashes.
- Preserved playback authentication identifiers during recovery.
- Added handling for extractor responses with HTTP 401, 403, and 410 statuses.
Contributors: @rukamori, @mikooochi
Related issues: #973, #984
Artwork and Image Loading
- Restored artwork for downloaded songs.
- Prevented blurry notification artwork.
- Prevented crashes caused by recycled artwork bitmaps.
- Adapted thumbnail ratios for different media types.
- Optimized image loading.
- Rejected mismatched Canvas artwork.
- Preserved reusable cached Canvas videos.
- Corrected adaptive launcher-icon scaling.
- Prevented duplicate launcher-icon layers.
- Sampled integrated icon backgrounds from rasterized artwork.
Contributors: @rukamori, @mikooochi, @adam-adrian
Related issue: #1011
Pull request: #1012
Library, History and Playlists
- Preserved playlist spacing when using pure-black appearance.
- Preserved nullable artwork in listening statistics.
- Added lazy loading to History to reduce interface lag.
- Restored top-playlist access in Library Mix.
- Kept Auto Playlist search results below the app bar.
- Anchored the Library refresh indicator below the app bar.
- Improved liked-song sorting stability.
- Prevented the bottom sheet from collapsing...
13.7.0
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 t...
13.6.0
Changelog
Focuses on playback reliability, Chromecast integration, Music Together improvements, onboarding, backup handling, update delivery, and broader UI stability. This release also includes performance improvements, internal refactors, localization updates, and build pipeline refinements.
Major Highlights
Playback, Player & Audio
This release improves playback stability across multiple player styles, especially around CanvasArtwork, cached playback, fallback handling, and stream recovery.
- Stabilized CanvasArtwork playback across V7 and compatible player styles.
- Improved fallback playback, cached canvas reuse, and compatibility handling.
- Disabled problematic audio decoding paths where needed to prevent playback crashes.
- Improved recovery from invalid stream sessions, stale playback state, and cached playback span issues.
- Fixed player queue access from player controls.
- Fixed queue selection toolbar crashes, toolbar spacing, and selection count behavior.
- Added a local song shuffle action for faster local playback control.
- Improved open-ended read handling for WebM and Ogg playback streams.
Contributors: @rukamori, @mikooochi
Related: #823, #835, #851, #870, #885, #886
Chromecast, Cast & GMS Integration
Chromecast support has been added and the Cast experience has been redesigned for better reliability and a more modern interface.
- Added Chromecast / Cast support for GMS builds.
- Added LAN mode and HTTPS handling for Cast playback.
- Replaced the legacy Cast router UI with a Jetpack Compose Cast menu.
- Improved cast route selection behavior.
- Added receiver branding support for ArchiveTune Cast.
- Stabilized the Cast bridge, route picker menu, selectable-route handling, and AppCompat route dialog support.
- Improved GMS Bluetooth scan permission handling.
Contributors: @mikooochi, @rukamori
Music Together & Social Presence
Music Together now provides clearer session ownership and participant state, with improved layout behavior and Discord Rich Presence reliability.
- Added ownership transfer for Music Together sessions.
- Added join and leave notifications for shared playback sessions.
- Added Music Together access from the floating navigation toolbar.
- Refactored Music Together screen state handling.
- Improved adaptive layout behavior for responsive rendering.
- Centralized Discord RPC sync flow.
- Improved replay hold-aware Discord presence behavior.
- Fixed Discord Rich Presence album button URLs.
- Hydrated Discord presence links from the music service.
Contributors: @rukamori, @adam-adrian
Related: #864, #871, #877, #899
Library, Playlists & Search
Playlist management and search behavior have been improved with new controls, better state persistence, and cleaner UI handling.
- Added playlist hiding from the library context menu.
- Added playlist sort direction controls.
- Restored custom playlist reordering.
- Personalized top discovery sections in Search.
- Switched Search to official tab behavior.
- Fixed local playlist song selection persistence after refresh.
- Restored remote history song playback.
- Improved hidden playlist toggle styling.
- Merged playlist action controls for cleaner playlist management.
- Added NG language-code support.
Contributors: @rukamori, @sang765, @mikooochi
Related: #836
Onboarding, Backup & Update Flow
The first-run experience, backup restoration, and update flow have been expanded and refined.
- Added a first-run onboarding flow.
- Refined onboarding page design and fixed onboarding UI issues.
- Added
RestoreBackupFileActivitywith.backupintent handling and validation. - Redesigned the update screen structure.
- Added in-app GMS update downloads.
- Allowed update triggering for FOSS builds.
- Improved update download progress dialogs.
- Centered download dialog content.
- Added direct-download warning strings.
- Fixed GMS nightly artifact URLs.
- Restricted direct APK downloads to GMS builds.
Contributors: @mikooochi, @sang765, @rukamori
Related: #872
Widgets, Quick Settings & System UI
System-level integrations received new widget and quick settings support.
- Added the Listening Insights widget with additional listening information.
- Added AOD quick settings tile support.
- Improved AOD launch behavior by expanding the player before entering AOD mode.
- Added snackbar notifications.
- Added AI translate dialog background mode.
Contributors: @rukamori, @sang765
Related: #878, #893
Stability & Bug Fixes
Playback & Media Reliability
- Fixed V7 Canvas playback instability.
- Fixed Canvas fallback behavior and cached Canvas compatibility.
- Fixed Canvas decoding crash cases.
- Fixed playback effect rebinding.
- Fixed cached Canvas handling.
- Fixed search bar text-input crash cases.
- Fixed playback recovery callback typing.
- Fixed bad stream-session recovery.
- Fixed local songs incorrectly using YouTube radio.
- Ensured radio playback replaces the queue correctly.
- Fixed Music Together playback sync reliability.
- Widened Music Together screen state flow typing.
- Switched device mute detection to
AudioManagerfor more reliable mute-state handling.
Contributors: @rukamori, @mikooochi
Related: #864, #871, #877
Lyrics & Translation
- Fixed lyrics preload getting stuck by falling back through available providers.
- Preserved original lyrics after translation.
- Restored TTML word phonetics.
- Stripped embedded word timing tags from lyrics output.
- Removed the top grabber indicator from the lyrics screen.
- Blocked player-control touch passthrough from the lyrics screen.
Contributors: @rukamori
Related: #823, #890
UI, Layout & Responsiveness
- Unified player-aware bottom padding across settings screens.
- Fixed Add to Playlist dialog adaptive layout so actions remain visible.
- Removed the dark background from the create row.
- Redesigned the Tags Management dialog with an adaptive layout.
- Added adaptive Playback Error information layout.
- Added adaptive Music Together activity layout.
- Fixed Home screen speed dial auto-fit height.
- Fixed speed dial icon contrast.
- Fixed floating navigation toolbar brightness.
- Fixed pure-black mode FAB transparency in the floating toolbar.
- Fixed onboarding segmented list item calls.
- Disabled slider style for V7, V8, and V9 player styles where it caused appearance issues.
Contributors: @adam-adrian, @rukamori, @mikooochi
Related: #834, #876, #883
Queue, Player Menu & Navigation
- Removed unused radio menu actions from the player menu.
- Removed the library create-playlist FAB from the floating navigation toolbar.
- Removed queue selection count from the toolbar.
- Prevented selection toolbar constraint crashes.
- Fixed queue opening from player controls.
- Replaced the legacy queue selector.
Contributors: @rukamori
Related: #886
YouTube, Playlists & Data Handling
- Fixed YouTube playlist mutations when delegated authentication becomes stale.
- Fixed Library Mix screen most-played album display.
- Fixed remote history song playback.
- Improved WebM and Ogg stream handling for open-ended reads.
Contributors: @rukamori, @mikooochi
Related: #891
Performance Improvements
- Reused cached Canvas videos to reduce repeated Canvas resolution work.
- Reused cached playback spans to reduce repeated playback processing.
- Improved WebM and Ogg stream handling for open-ended reads.
- Enabled Gradle build caching.
- Refined
MusicServiceDataSpeclength handling. - Removed unused cached-resource checks.
- Improved update download progress handling.
- Refined update screen structure.
Contributors: @rukamori, @mikooochi
Internal Cleanup & Refactors
Architecture & Navigation
- Moved Search to the top route for a cleaner navigation structure.
- Moved vibration settings into Privacy settings.
- Added translucent top app bar icon buttons in
MainActivity. - Lightened Mood & Genres cards.
- Refreshed resource icons.
Contributors: @rukamori
Related: #849
Lyrics, Providers & Modules
- Extracted lyrics providers into a submodule.
- Moved pointer-input handling to the Apple Music controls column for safer input consumption.
- Preserved original lyrics state through translation and provider workflows.
Contributors: @sang765, @rukamori
Related: #880
Cast & Playback Internals
- Replaced the flat-list Cast route sheet with a Compose-based route flow.
- Specified Cast screen state typing for
MutableStateFlow. - Centralized Cast route selection success handling before hiding the route picker.
- Refined
MusicServiceplayback sync behavior. - Refined
DataSpechandling. - Improved cached playback logic.
Contributors: @mikooochi, @rukamori
Build, CI & Release Reliability
- Made release signing optional.
- Added support for FOSS release signing.
- Added GMS naming to build artifacts.
- Gated issue notifications on successful APK builds.
- Triggered development notifications after APK builds.
- Enabled Gradle build cache.
- Disabled cache duration for changing modules.
- Fixed compile issues around widget updater scope, extra branches, and missing resources.
- Updated submodule references.
- Merged submodule changes.
- Removed the Izzy variant.
- Moved the Discord OAuth callback activity into the shared manifest.
- Cleaned unused strings, resources, and codebase entries.
- Updated random speed dial color behavior.
- Prevented icon color overrides.
- Updated About ViewModel and cleaned attribution-related code.
- Bumped version to
13.6.0.
Contributors: @rukamori
Localization & Community
- Added missing Vietnamese and Japanese translations.
- Updated translations through Weblate for Korean, Spanish, German, French, Indonesian, Japanese, Estoni...
13.5.0
Changelog
✨ Major Highlights
Playback, Player & Audio
- Added CanvasArtwork support across V7/V8/V9 player styles, including V8/V9 artwork canvas URLs, V7 backdrop integration, animated canvas playback, blur refinement, canvas cache handling, and highest-bitrate canvas selection — @mikooochi, @rukamori
- Improved V7 player backdrop rendering with dynamic palettes, custom
V7ColorBucketextraction, native/RenderScript blur handling, gradient tuning, zoom scaling, canvas layout fixes, and better artwork color generation — @rukamori, @sang765, @Windowstechtips - Added audible playback recovery, mute recovery, crossfade handoff recovery, volume watchdog handling, system volume sync, normalized volume smoothing, and retryable playback exception handling — @rukamori, @mikooochi
- Added YouTube playback watchtime tracking with
playedTimeMs, elapsed playback parameters, and refined playback registration behavior — @rukamori - Added queue clear action, queue start index clamping, duplicate playlist-entry preservation, current-song header improvements, and better player bottom sheet/back press behavior (#824) — @rukamori, @mikooochi, @adam-adrian
- Integrated Google Voice Assistant support (#702) — @rukamori
- Switched Discord RPC from C++ Social SDK to Gateway WebSocket and improved responsive Discord presence updates — @sang765, @mikooochi
Lyrics, Romanization & Providers
- Added provider-supplied romanized lyrics support through
LyricsEntry, TTML transliteration parsing, entry utilities, and prioritization of provided romanized text — @rukamori - Added multi-source BetterLyrics fetching with configurable provider order, KUGOU support, Paxsenix YouTube lyrics provider (#790), LrcLib enhanced lyric selection, and better lyrics source labeling — @rukamori, @sang765
- Improved enhanced lyrics scrolling, focus anchoring, keep-alive zones, sync render keys, source labels, provider badges, duration handling, and lyrics offset persistence (#724, #725, #746) — @rukamori, @mikooochi
- Reduced coroutine explosion in lyrics romanization and optimized lyrics polling/update loops for TTML/non-TTML formats — @rukamori
- Added embedded lyrics import from local songs and hid unparseable TTML search results — @mikooochi
Library, Playlists & Local Music
- Reworked UI Of Library — @ianshulyadav, @sang765
- Added supported local audio validation with MIME/extension checks, local song filtering, song icon placeholders, included-folder support, and embedded local lyrics import — @mikooochi, @rukamori
- Restored Spotify playlists from cached DataStore JSON, added Spotify playlist display state, explicit badges, Spotify track IDs, and safer Spotify playlist resolution — @rukamori
- Restored playlist tag filters, redesigned playlist tag dialog, preserved custom local playlist order on removal (#756), and improved playlist sync progress/error handling — @mikooochi, @rukamori
- Added batch
addSongsToPlaylistsupport through InnerTube/YouTube and improved online playlist duplicate preservation — @rukamori - Improved Library Top Mixes so mixes play library queues, stay unique, distribute tracks better, and use listened/liked songs as signals instead of exclusions — @mikooochi
- Added search filter views for online search results (#717), refreshed quick picks on pull, and sped up YouTube generated personal playlist loading (#830) — @rukamori, @adam-adrian
Accounts, Sync & Integrations
- Added YouTube sub-channel switching support (#514) — @rukamori
- Added smart “Add another account” flow with unsaved account warning (#802) — @sang765
- Improved Spotify/Facebook login stability, popup rendering, and WebView user-agent handling — @mikooochi, @rukamori
- Added libre.fm support with custom endpoint handling and UDF restructuring (#808) — @mikooochi
- Added Discord expired-token reauthorization warning — @rukamori
Storage, Downloads & Cache
- Added external storage support for cache/downloaded music, storage picker integration, writable tree probing, cache root resolution, move warnings, and move progress UI — @rukamori
- Improved cache clearing with progress dialogs, byte limits for canvas cache, SD card ANR avoidance, and safer storage helper organization — @rukamori, @mikooochi
- Improved download performance by aligning OkHttp concurrency with download parallelism, caching resolved stream URLs with quality-aware keys, reusing resilient stream resolution, and reducing disk I/O contention — @rukamori
- Fixed cancellation behavior so removing/canceling downloads does not accidentally remove all downloaded music — @rukamori
- Extended cache-corruption recovery to malformed container parsing errors (#812) — @adam-adrian
Updater, Release Channels & Builds
- Added Stable/Nightly download URL constants (#621), Daily Nightly update channel, in-app Daily changelog, Check for Update bottom sheet, and direct APK URLs with device/architecture suffixes — @rukamori, @sang765
- Improved updater startup timing, saved-channel handling (#767, #777), Daily Nightly default channel behavior (#827), update prompt channel binding, and up-to-date messaging — @sang765, @mikooochi, @adam-adrian
- Refactored update dialogs to Material Design 3 spec (#801) — @sang765
- Added build variants for Izzy, FOSS, and GMS, expanded release ABI distribution config, and fixed release workflow ownership/static job naming — @rukamori
About, Attribution & Community Metadata
- Updated About screen team structure, added Respecter section, extracted strings (#772), rebuilt About layout, limited displayed contributors to 20, and added attribution overflow dialogs — @sang765, @mikooochi
- Improved contributor and attribution loading from GitHub/Weblate, including authenticated translation credits, cached translation contributors, paginated translation changes, and keeping all translation languages — @mikooochi, @rukamori
- Migrated InnerTube API into the external core submodule (#810) — @sang765
🛠 Stability & Fixes
Playback & Media Reliability
- Fixed V7/V8/V9 player background preference behavior, backdrop palette assignment, canvas layering, canvas positioning, canvas cache resume, canvas active playback, artwork blur cache keys, and canvas OkHttp client reuse — @mikooochi, @rukamori
- Fixed audio normalization gain and smoothing (#797), system volume slider sync, mute recovery, retryable playback exceptions, playback auth retry conditions, and stale login playback context — @mikooochi, @rukamori
- Fixed malformed/invalid playback registration parameters, removed bundled watchtime URLs, and prevented invalid playback registration state — @rukamori
- Fixed first back press handling when dismissing player UI (#824), player bottom sheet collapse behavior (#729), and status bar handling for V7 player style — @adam-adrian, @rukamori
- Fixed list queue playback start index crashes, local history delete behavior, history remote issues, and playback history sync (#780) — @mikooochi, @rukamori, @adam-adrian
Lyrics & Provider Fixes
- Fixed lyrics source label placement, provider display, blank provider lyrics search results (#739), lyrics badge wrapping, source spacing, enhanced lyrics source visibility, and selected non-synced lyrics showing “not found” (#746) — @rukamori
- Fixed lyrics user work being replaced by remote lyrics (#616), restored lyrics speed offset for V2/enhanced lyrics, and preserved per-song lyrics offset — @rukamori, @mikooochi
- Fixed enhanced lyrics rendering cancellation and sync render version handling (#725), forced scroll into focus, and adjusted autoplay seek bar behavior (#769) — @rukamori, @sang765
- Fixed Musixmatch duration parameter handling per API v1.7.0 and improved error detection (#773) — @sang765
YouTube, InnerTube & Network Fixes
- Refined InnerTube retry behavior with transient network failure detection and proxy rotation — @rukamori
- Fixed bot-detection handling using auth state, PO token/GVS, stale login state, and
setLogin = falsehandling (#731) — @rukamori - Fixed playlist visits writing account search history, random song insertion into online playlists, auto-inserted video IDs during synced playlist creation, and duplicate online playlist entry preservation — @rukamori
- Improved Artist/Playlist parsing through
musicShelfRenderer,itemSectionRenderer, full immersive header descriptions, video/live performance list items, and bettervideoId/watch endpoint extraction — @rukamori - Fixed NewPipe direct media networking when proxy is unset to prevent localhost connection attempts — @rukamori
UI, Navigation & Compose Fixes
- Fixed speed dial pager/grid behavior, filter chip alignment, playlist tags mapper clash, lyrics menu dialog structure, button shape, component receiver scope, and online search route encoding crash — @mikooochi, @rukamori
- Fixed TV navigation rail refocus/key events, auto playlist tap entering selection mode, liked songs filtering (#794), and missing Spotify playlist tab display — @rukamori, @mikooochi
- Fixed YouTube thumbnail aspect ratio handling with square crop option (#791), then reverted the earlier thumbnail aspect ratio change through #804 — @sang765, @rukamori
- Fixed About screen resource lookup scope, mini-player padding in dialogs, contributor cache behavior, and attribution compile errors — @mikooochi, @rukamori
Storage, Cache & Download Fixes
- Fixed SD card cache clearing ANR risk, cache progress refresh, storage helper scoping, previous URI permission release, configured storage ID prioritization, and
mnt/media_rwrecognition — @mikooochi, @rukamori - Fixed download speed issues, downloader stream resolver reuse, cache corruption recovery (#800, #812), and malformed container parse recovery — @rukamori, @adam-adrian
- Fixed dismissed download toolbar persistence in album/download UI — @mikooochi, @rukamori
Updater & ...
13.4.0
Changelog
✨ Major Highlights
🎧 Playback, Player & Audio
- Added V8 and V9 player styles with refined animations, morphing transitions, and improved playback interactions — @koiverse
- Introduced V7 canvas artwork playback with YouTube-backed animated visuals and fallback artwork handling — @koiverse
- Enhanced
MusicServicewith resumable playback notifications, queue persistence improvements, crossfade stability, and offline cache optimizations (#662) — @koiverse - Added customizable AOD experience with artwork glow shadow support and improved metadata synchronization — @koiverse
- Added sleep timer support for V7 mode — @koiverse
- Implemented playback vibration and haptic feedback support across player controls and lyrics interactions — @nekohepott32
- Added playback widget system using Jetpack Glance with new themed widget layouts — @harshal20m, @koiverse
📝 Lyrics, Karaoke & AI
- Added LRC bounce animations, dynamic scaling, instrumental break indicators, and smoother drift correction for Lyrics V2/Enhanced — @koiverse
- Improved TTML parsing with better CJK handling, XML entity resolution, and enhanced compatibility for nested namespaced lyrics — @koiverse
- Added synchronized lyrics indicators and lyrics provider ordering customization (#627) — @koiverse
- Added OpenRouter AI provider integration with searchable model picker and API validation handling — @koiverse
- Enhanced romanization with context-aware transliteration and word-level TTML support — @koiverse, @mikooochi
🎨 Interface, Navigation & Material 3
- Replaced legacy pull-to-refresh implementations with Material 3 Expressive components — @koiverse
- Refined settings, preferences, side sheets, dialogs, and navigation layouts with improved shapes, descriptions, and adaptive behavior — @koiverse
- Added animated floating navigation toolbar behaviors with sliding pill animations and expressive transitions — @koiverse
- Reworked Music Recap, Mood & Genres, News, Library Mix, and Player layouts with adaptive Material 3 components — @koiverse, @mikooochi
- Added immersive artist headers with monthly listeners and subscriber count support — @mikooochi
🌐 Connectivity, Accounts & Sync
- Added optional force-sync behavior when switching accounts with improved authoritative sync handling — @mikooochi
- Added automatic Google login exit flow and improved web auth session cleanup handling — @sang765, @koiverse
- Introduced rotating proxy/IP rotation system with cooldown pools and automatic configuration fetching — @koiverse
- Added Spotify logout support and cancellable Spotify track importing — @koiverse
- Added low data usage mode and improved YouTube fallback handling (#691) — @koiverse
📚 Library, Discovery & Content
- Added AI-powered “Build Your Mix” functionality with validated library mix generation — @koiverse
- Introduced revamped New Release experience with structured content models and tabbed navigation — @mikooochi
- Added playlist descriptions, local playlist syncing to YouTube, and local song sorting preferences — @koiverse, @mikooochi
- Improved artist page handling, release type extraction, and metadata rendering (#626) — @koiverse, @mikooochi
- Added Android Auto compatibility improvements and missing feature integrations (#688) — @mikooochi, @koiverse
🐞 Stability & Fixes
🔧 Playback & Service Reliability
- Fixed queue selection inconsistencies and removed unused queue trigger logic (#603) — @koiverse
- Reworked crossfade playback logic and stabilized audio handoff behavior — @koiverse
- Fixed playback rendering issues related to canvas artwork, backdrop ordering, and offload handling — @koiverse
- Improved queue snapshot persistence during stop/memory trim events — @koiverse
🎵 Lyrics & Media Fixes
- Fixed BetterLyrics album parameter handling — @koiverse
- Restored compatibility for nested TTML lyrics and improved instrumental break rendering — @koiverse
- Improved AI translation conditions and lyric timing animations — @koiverse
- Fixed album duration localization issues and multiple lyrics rendering regressions — @koiverse
🎨 UI & UX Fixes
- Fixed various settings layout inconsistencies, toolbar dismiss behavior, and widget resizing problems — @koiverse, @mikooochi
- Improved lifecycle-aware playlist state collection and refresh handling — @koiverse
- Fixed updater APK architecture/device flavor handling — @sang765
- Fixed Quick Picks occasionally not appearing — @koiverse
📦 Dependency & Platform Updates
- Updated Compose to
1.12.0-alpha03(#635) — @renovate[bot] - Updated Material 3 to
1.5.0-alpha20(#636) — @renovate[bot] - Updated Material 3 Adaptive to
1.3.0-beta02(#637) — @renovate[bot] - Updated AndroidX Browser to
1.10.0(#670) — @renovate[bot]
⚡ Performance Improvements
- Reduced redundant lyrics fetching checking cached metadata before network requests — @koiverse
- Improved lyrics provider concurrency using shared cache selection logic — @koiverse
- Optimized queue hydration, persistent state saving, and widget preference updates — @koiverse
- Enhanced crossfade transition performance and playback state synchronization — @koiverse
🛠 Internal Cleanup & Refactors
🧠 Core & Playback
- Refactored crossfade, queue hydration, and playback persistence systems for better reliability — @koiverse
- Simplified audio normalization and playback service logic to prevent random muting — @koiverse
- Improved sync metadata handling and account switching internals — @koiverse
🎨 Compose & UI Architecture
- Migrated multiple screens to adaptive Material 3 layouts and expressive components — @mikooochi, @koiverse
- Refactored Lyrics Enhanced scrolling, focus handling, and manual scroll synchronization — @koiverse
- Simplified toolbar animations and navigation state handling across floating navigation components — @koiverse
📦 Project Maintenance
- Added ProGuard rules for Glance/media processing and cleaned unused dependencies/code — @koiverse
- Refined AndroidManifest override handling and scheduler service registration — @mikooochi, @koiverse
- Updated docs, translations, fastlane metadata, and internal tooling — @koiverse, @mikooochi
🌍 Translation & Community
- Updated Indonesian translations — @adam-adrian
- Updated French translation — @Mickael81
- Added German translations — @flue17
- Added Portuguese (Brazil) translations — @ValteMCPE
- Added Spanish translations — @gallegonovato
- Added Japanese and Korean translations
- Various translation updates through Weblate and contributor improvements
🛠 Other Changes
- Added multiple account mode — @koiverse
- Added “Remove from cache” action for cached songs — @sang765
- Added APP_UPDATE_PAT workflow support and follow-up cleanup/reverts — @sang765, @koiverse
- Reworked Discord settings/preferences integration and platform support (Xbox, Samsung, PS4, PS5) — @koiverse
- Added route-based artist navigation improvements (#626) — @koiverse
- Added issue/patch follow-ups, docs updates, cleanup commits, and merge syncs from contributors — @koiverse, @mikooochi, @nekohepott32
Other Changes II
- feat(Webview): automatic exit from LoginScreen after successful login @sang765 in #624
- Add vibration to player controls @nekohepott32 in #631
- feat: add APP_UPDATE_PAT for GitHub API rate limitpass @sang765 in #634
- fix(deps): update compose to v1.12.0-alpha03 @renovate[bot] in #635
- fix(deps): update dependency androidx.compose.material3:material3 to v1.5.0-alpha20 @renovate[bot] in #636
- fix(deps): update dependency androidx.compose.material3.adaptive:adaptive to v1.3.0-beta02 @renovate[bot] in #637
- Add haptic feedback support for lyrics screen, shuffle/repeat buttons and add settings toggle @nekohepott32 in #643
- fix(HapticFeedback): more reliable pause haptic @nekohepott32 in #645
- feat: add "Remove from cache" to selected songs in CachePlaylistScreen @sang765 in #646
- Revert "feat: add APP_UPDATE_PAT for GitHub API rate limitpass" @koiverse in #653
- feat : New dynamic Colors Widget @harshal20m in #655
- fix(Updater): support device (mobile/tv) and architecture flavor dimensions in APK download URL @sang765 in #666
- chore(deps): update dependency com.google.devtools.ksp to v2.3.9 @renovate[bot] in #678
- fix(deps): update dependency androidx.browser:browser to v1.10.0 @renovate[bot] in #670
- Update Indonesian translation @adam-adrian in #693
New Contributors
- @nekohepott32 made their first contribution in #631
- @harshal20m made their first contribution in #655
- @adam-adrian made their first contribution in #693
13.3.0
Changelog v13.3.0
✨ New Features
🎧 Player & Audio Engine
- Added “Remove from queue” action directly inside the player menu with full Queue integration
- Introduced undo support for both single and multi-song queue removals
- Improved queue restoration handling with cancellation-aware recovery logic
- Added persistent queue restoration logic from v12.4.1 behavior
- Implemented
buildPlayNextShuffleOrderfor smarter shuffle playback behavior (#556 #552) - Added scheme-aware data source routing for more reliable playback handling (#552)
- Enhanced caching logic to recover downloads with unknown content lengths
- Improved playback recovery and cleanup handling in
MusicService - Added malformed stream error handling with improved playback error messaging
- Persist playback queue during play/pause events to restore the correct position after force-stop
- Improved media notification creation for enhanced playback UX and Android dynamic island support
- Enhanced player backdrop with dynamic artwork scaling, resizing, and color extraction
- Added high-resolution artwork loading across player, notifications, thumbnails, and metadata (#562)
📝 Lyrics & Media
- Added RTL (right-to-left) text layout support for Lyrics V2 (#485)
- Added lyrics translation enablement support
- Added Unison as a new lyrics source
- Improved karaoke animation timing and word synchronization (#462 #573)
- Added blur toggle option for lyrics background effects
- Automatically set default lyrics language based on device locale
- Improved Lyrics V2 rendering and simplified timing synthesis logic
🎨 UI, Theming & Personalization
- Integrated MotionScheme and refactored dynamic color handling
- Migrated theme engine further toward MaterialKolor dynamic schemes
- Improved system bar appearance handling based on player background style (#513 #550)
- Added Quick Picks display mode settings with new UI integration
- Rearranged Quick Picks preferences for better discoverability
- Added cover image picker support for local playlists
- Introduced new update banner and permission header in Settings
- Refactored Settings UI with new
SettingsSectionLabelandSettingsFlatItemcomponents - Improved preference dialogs with pending value handling and enhanced button behavior
- Refined preference layouts with rounded corners and updated structure
- Added new contributors section in About screen
- Added animated New Release screen with improved error handling
- Enhanced AOD player layout structure and modularized controls
- Added adaptive icon metadata and shortcut metadata support for Android 13+
- Added new Crimson Neon and AmourLuxe themes
- Improved icon selection UI with preview cards, animations, and selection indicators
- Added adaptive icon improvements and monochrome icon support for Android 13+
📚 Library, Search & Statistics
- Added backup and restore dialog with category-based selection support
- Added backup categories for library, account, and settings
- Added playlist song sorting preferences with persistent storage support (#581)
- Added listening statistics queries grouped by hour and weekday
- Introduced
ListeningBySlotandListeningSummarydata models - Improved statistics aggregation and combination logic in
StatsViewModel - Enhanced online search with indexed results, all-mode filters, and improved loading behavior
- Added detailed media metrics and diagnostics in media info screen
- Improved local folder exclusion flow using SAF instead of manual paths
- Added conditional share FAB visibility in Year in Music screen
🌐 Connectivity & Network
- Added DNS-over-HTTPS support and proxy connection testing (#492)
- Improved network banner behavior to avoid unnecessary no-internet warnings
- Added better playback login/session handling with configurable cookie clearing behavior
🛠 Developer & Debugging Tools
- Added real-time Logcat viewer with filtering support
- Added Extended FAB for easier log sharing in DebugActivity
- Added GitHub workflow to notify issue authors about new commits
- Improved issue extraction logic for workflow automation
🐛 Bug Fixes
🎧 Playback & Streaming
- Fixed crashes when downloading very large playlists
- Fixed queue selection state inconsistencies after item removal
- Fixed race conditions in
onGetSonglambdas causing random crashes - Temporarily disabled crossfade preferences regardless of audio offload state
- Fixed malformed thumbnail resizing and artist artwork quality issues (#562)
- Fixed notification artwork resolution quality
- Fixed player-related screen overlap and background rendering issues
🎨 UI & Layout
- Fixed scrolling issues across multiple menu screens (#581)
- Fixed incorrect pluralization in statistics highlights
- Fixed icon animation generic typing and import ordering
- Fixed image loading logic simplification regressions in icon list items
- Fixed null safety issues in Search Summary navigation handling
- Fixed launcher background rendering for Android 16 adaptive icons
- Fixed incorrect metadata spelling and copyright formatting
- Improved thumbnail normalization and URL consistency across YouTube integrations
⚙️ System & Build
- Updated AGP to v9.2.1
- Updated Media3 to v1.10.1
- Updated Ktor to v3.5.0
- Updated Compose and Material 3 dependencies
- Added ProGuard compatibility rule for
ClassFileWriter - Improved build suffix generation for dev builds
- Improved Gradle source set handling for generated app icons
- Fixed metadata parsing issues in app icon sync workflow
⚡ Performance Improvements
- Optimized player color extraction and vividness adjustment (#546)
- Improved queue persistence and restoration performance
- Reduced unnecessary grouping overhead in library song sorting (#545)
- Improved thumbnail rendering and URL normalization performance
- Simplified regex and image resizing logic for YouTube utilities
- Optimized song wrapping using
rememberfor reduced recompositions (#574) - Improved queue persistence reliability during playback state changes
- Enhanced dynamic artwork rendering and extraction efficiency
🛠 Technical Refactors
🧠 Core & Playback
- Refactored notification handling and removed deprecated playback notification logic
- Simplified track selector implementation to prevent crashes (#521)
- Improved cache handling with
setCacheKeyIfRemoteintegration (#552) - Refactored queue and player persistence logic into
MusicService - Streamlined playback auth/session management APIs
- Simplified recognition job handling with cancellation support
🎨 UI & Compose
- Removed unused scroll behaviors across settings screens
- Modularized AOD player slider and controls into dedicated composables
- Refactored dialog implementations to use adaptive layouts and
BoxWithConstraints - Updated StarDialog to use
ModalBottomSheet - Simplified settings screen structure and interaction flow
- Cleaned up unused imports, hints, and legacy code paths
📦 Project & Infrastructure
- Refined issue templates and visual evidence submission flow
- Simplified GitHub workflow triggers and automation handling
- Updated Android source sets and generated asset handling
- Improved app icon sync tooling with metadata and WebP support
- Removed deprecated Lyrics V1 preparation code
- Removed app icon changer experiment from main branch
- Cleaned up unused activity aliases and intent filters
🌍 Translations & Community
-
Updated translations through Weblate:
- French
- Indonesian
- Vietnamese
- Spanish
- Italian
- Russian
- Portuguese (Brazil)
- Hindi
- Ukrainian
- Turkish
- German
- Arabic
- Arabic (Egyptian)
- Chinese (Simplified)
- Sanskrit
-
Added new contributors and community improvements
-
Updated documentation and metadata
-
General cleanup, patches, and internal maintenance updates
🛠 Other Changes
- fix(deps): update agp to v9.2.0 by @renovate[bot] in #487
- feat(queue): Add 'Remove from queue' action and undo functionality by @sang765 in #488
- feat(internet): Add DNS over HTTPS support and proxy connection testing by @sang765 in #492
- fix(deps): update ktor monorepo to v3.4.3 by @renovate[bot] in #491
- fix(deps): update dependency com.squareup.okhttp3:okhttp-dnsoverhttps to v5 by @renovate[bot] in #493
- fix(deps): update dependency androidx.navigation:navigation-compose to v2.9.8 by @renovate[bot] in #495
- fix(deps): update dependency androidx.compose.material3:material3 to v1.5.0-alpha18 by @renovate[bot] in #494
- fix(deps): update compose to v1.12.0-alpha01 by @renovate[bot] in #496
- chore(deps): update dependency com.google.devtools.ksp to v2.3.7 by @renovate[bot] in #497
- fix(Queue): exit selection "toolbar" mode when no items are selected by @sang765 in #500
- chore(deps): update kotlin monorepo to v2.3.21 by @renovate[bot] in #501
- feat(playback): add SafeTrackSelector and improve preference components by @sang765 in #502
- feat(Lyric): Enhance Paxsenix integration with new providers and API stats by @sang765 in #516
- chore(deps): update gradle to v9.5.0 by @renovate[bot] in #528
- remove lyricsV1, make LyricsV2...
13.2.0
Changelog v13.2.0
✨ New Features
ArchiveTune Now Supports Local Music Playback!
🎧 Player & Audio Engine
- Added audio route recovery to restore playback after device changes (#443)
- Implemented playback history tracking system with caching and URL registration
- Added PlaybackStreamRecoveryTracker for retry handling and stream failure recovery
- Improved foreground service management with enhanced notification handling
- Added multi-URL fallback and retry logic for more reliable playback
- Implemented voice query support for both offline and online search
- Added queue auto-expansion when infinite queue is disabled
- Added loading indicator for queue initialization
🎵 Library, Playlists & Sync
- Introduced multi-song like with sync support (#430)
- Added remote sync for library & playlist actions
- Improved playlist removal consistency with remote-first handling
- Added playlist suggestion system with query builder customization
- Enhanced search capabilities with result count queries and pagination (#453)
- Integrated YouTube online search into media session (#456)
📝 Lyrics & Media
- Added lyrics sync offset adjustment with UI controls and dialog
- Improved lyrics sharing system with adaptive layout support
- Enhanced thumbnail handling with structured data model
📁 Local Media Support
- Introduced local file playback support
- Added Local Songs screen with search, sorting, and improved UI
- Implemented local scan configuration (duration + folder filters)
- Redesigned scan workflow UI with better state handling
⚙️ System & Platform
- Added default music player support (#457)
- Enabled Canvas API authentication
- Added TV variant support (#423)
- Added low-end device mode to disable animations
- Improved YouTube login cookie handling
🎨 UI & UX
- Added segmented preference component
- Improved FAB behavior with label support
- Enhanced history screen with search and state handling
- Added custom swipe background colors for song items
- Improved Library Mix layout & controls
- Accessibility improvements in About screen
🐛 Bug Fixes
🎧 Playback & Streaming
- Fixed automix preview issues for YouTube queues (#432)
- Fixed crossfade + offload conflicts (#431)
- Improved stream expiration handling and fallback logic (#433)
- Fixed silent audio issue on Qualcomm devices
- Improved cached playback error handling
- Fixed player restart when reaching ended state
📚 Library & Data
- Fixed playlist sync inconsistencies
- Improved song like transaction handling
- Fixed playlist removal edge cases
- Fixed search and coroutine-related crashes
🎨 UI & Layout
- Fixed blur rendering (now real bitmap blur)
- Fixed layout inconsistencies (fillMaxSize vs matchParentSize)
- Fixed thumbnail cropping issues
- Fixed multiple typos and UI spacing issues
🔧 Misc
- Fixed dependency issues and updates
- Fixed various regressions and minor crashes
⚡ Performance Improvements
- Reduced main thread workload in playback service
- Improved stream resolution and caching efficiency
- Optimized search pagination and result handling
- Enhanced UI rendering and blur performance
- Improved database queries and event handling
🛠 Technical Refactors
🧠 Core & Playback
- Refactored stream client architecture with request profiles
- Unified retry logic for playback authentication
- Improved MusicService structure and error handling
- Simplified tracking URL registration system
📦 Data & Database
- Improved DAO queries and return types
- Added event tracking enhancements
- Refactored local media scanning logic
🎨 UI & Components
- Migrated more components to Material 3 Expressive APIs
- Simplified Library & Playlist UI structure
- Improved Lyrics UI rendering and layout system
- Refactored Preference components with Material shapes
🧹 Codebase Cleanup
- Removed legacy APIs and unused logic
- Simplified sorting, layouts, and state handling
- Improved overall consistency and maintainability
📚 Documentation
- Updated README and app metadata
- Added local playback support documentation
- Improved privacy notice and links
- Updated store listings and translations
🏗 Build / CI
- Upgraded compileSdk & targetSdk to 37
- Refactored Gradle configuration and plugin setup
- Added Sonatype snapshots repository
- Improved CI workflows and artifact handling
🔄 Other Changes
- Dependency upgrades (Compose, AGP, libraries, actions)
- Multiple reverts for stability and experimental rollback
- Translation updates (FR, ES, VI, UK, IT, etc.)
- Internal cleanup, styling tweaks, and minor improvements
- Version bump to v13.2.0
🔄 Other Changes II
- fix(deps): update dependency com.mikepenz:multiplatform-markdown-renderer-m3 to v0.40.2 by @renovate[bot] in #441
- Update agp to v9.1.1 by @renovate[bot] in #463
- Update dependency com.google.guava:guava to v33.6.0-jre by @renovate[bot] in #465
- Update dependency com.valentinilk.shimmer:compose-shimmer to v1.4.0 by @renovate[bot] in #466
- Update actions/cache action to v5 by @renovate[bot] in #468
- Update actions/checkout action to v6 by @renovate[bot] in #469
- Update dependency androidx.annotation:annotation to v1.10.0 by @renovate[bot] in #464
- chore(deps): update actions/download-artifact action to v8 by @renovate[bot] in #470
- chore(deps): update actions/setup-python action to v6 by @renovate[bot] in #471
- fix(deps): update dependency com.github.kyant0:m3color to v2026 by @renovate[bot] in #472
- Update dependency org.jsoup:jsoup to v1.22.2 by @renovate[bot] in #482
- fix(deps): update dependency sh.calvin.reorderable:reorderable to v3.1.0 by @renovate[bot] in #483
📝 Notes
- Major focus on local media support, playback stability, and sync systems
- Several experimental features were refined or reverted for stability
13.1.0
Changelog v13.1.0
✨ New Features
Player & Audio Engine
- Introduced V7 player styles with enhanced layout and modular backdrop system
- Added toggle-based playback controls for improved interaction state handling
- Implemented modules effect and improved blur/artwork scaling in V7 backdrop
- Added Bluetooth auto-start playback and audio device callback handling
- Enabled audio capture support via
ALLOW_CAPTURE_BY_ALLconfiguration (#396) - Improved playback error handling with refined request identity and messaging
- Added playback resumption system with persisted queue restoration (#390)
- Implemented login context recovery and authentication-aware playback handling (#418)
User Interface & Theming
- Full migration to Material 3 Expressive components across all UI
- Redesigned buttons, list items, and player layout system-wide
- Introduced Floating Navigation Toolbar (responsive + slim mode)
- Added Floating Action Button (FAB) for playlist creation in Library
- Added blur density sliders and enhanced preference components
- Improved MiniPlayer layout, controls, and artwork rendering
- Added network status banner across app shell
- Introduced player design style preference customization
Library, Playlists & Content
- Added playlist search and sorting in Add-to-Playlist dialog
- Improved playlist selection logic and duplicate handling
- Added playlist play button for online playlists (#398)
- Implemented YouTube automix preview support (#398)
- Enhanced album page continuation and parsing robustness
- Added MediaItem enhancements (playable flag + notification artwork resizing #416)
Lyrics & Localization
- Expanded romanization support (Chinese, Hindi, and more languages)
- Improved lyrics search UI and dialog experience
- Enhanced multi-language romanization preferences
Networking & Streaming
- Improved stream URL resolution and throttling handling
- Added bot detection recovery (visitor data handling)
- Enhanced DownloadManager concurrency and request throttling
- Added auth-scoped caching and playback authentication state system
🐛 Bug Fixes
Player & Playback
- Fixed playback resumption logic edge cases (#410)
- Resolved crossfade overlap and ducking recovery issues
- Fixed artwork rendering, blur inconsistencies, and layout misalignment
- Corrected playback auth state normalization and login handling (#418)
User Interface
- Fixed Floating Navigation Toolbar constraint and color issues
- Resolved bottom navigation offset overflow
- Fixed layout issues caused by unsafe
Infinityconstraints - Improved ToggleButton sizing and UI consistency
- Fixed animation imports and spacing inconsistencies in Player
Library & Data
- Fixed playlist continuation and empty response handling
- Resolved account/profile loading state inconsistencies
- Fixed search bar padding and UI alignment issues
System & Services
- Fixed Updater version ordering assumption
- Ensured proper queue persistence on task removal
- Fixed Bluetooth auto-start threading issue
- Improved WebSocket heartbeat handling (#401)
Dependencies
- Updated Compose, Media3, Ktor, WorkManager, Material3, and Gradle versions
⚡ Performance Improvements
- Optimized screen rendering and overall UI performance
- Improved playlist selection and dialog performance
- Enhanced URL caching with authentication fingerprint validation
- Reduced redundant logic in queue, artwork, and playback handling
🛠 Technical Refactors
Architecture & Core
- Refactored playback authentication system with StateFlow integration
- Modularized YouTube, InnerTube, and player utilities
- Streamlined visitor data and token handling
- Improved DownloadUtil and MusicService caching strategies
UI & Components
- Simplified Floating Navigation Toolbar architecture
- Removed legacy and unused UI components (MiniPlayer container, dialogs)
- Standardized PreferenceEntry usage across settings
- Cleaned up Player, Lyrics, and Library UI structure
Codebase Cleanup
- Removed redundant logic, unused variables, and legacy flows
- Improved readability, maintainability, and consistency across modules
Other Changes
- Multiple dependency and Gradle upgrades
- Internal code structure improvements and cleanups
- Minor UI styling adjustments (#387)
- Reverts and experimental feature rollbacks for stability
- Metadata, README, and community updates (Telegram badge)
- Version bump to v13.1.0
Other Changes II
- chore(deps): update gradle to v9.4.1 by @renovate[bot] in #389
- chore(deps): update gradle/actions action to v6 by @renovate[bot] in #395
- fix(deps): update compose to v1.10.6 by @renovate[bot] in #402
- fix(deps): update dependency androidx.work:work-runtime-ktx to v2.11.2 by @renovate[bot] in #403
- fix(deps): update media3 to v1.10.0 by @renovate[bot] in #412
- fix(deps): update ktor monorepo to v3.4.2 by @renovate[bot] in #415
- fix infinite queue by @Windowstechtips in #426
- some shiz by @Windowstechtips in #427
- chore(deps): update androidgradleplugin to v9.1.0 by @renovate[bot] in #428
Notes
- Includes multiple issue-related fixes and enhancements: #386, #390, #396, #398, #401, #410, #416, #418
- Some experimental toolbar and layout changes were reverted for stability
Full Changelog: v13.0.0...v13.1.0
13.0.0
Changelog
🚀 Highlights
This release focuses on major UI upgrades, playback improvements, lyrics enhancements, and the introduction of new core systems like Music Together and Music Recognition. Stability, performance, and internal architecture have also been significantly refined.
✨ Features
🎧 Player & Playback
-
Introduced V5 and V6 player styles, with improved layouts and interaction design
-
Added permanent shuffle mode and enhanced repeat/shuffle controls
-
New gesture controls:
- Double-tap to skip
- Vertical drag to seek
-
Added streams options and improved codec visibility
-
Enhanced seekbar behavior and playback interaction handling
-
Added keyboard controls and landscape lock support
-
Improved automix system with smarter filtering and recommendations
-
Added pause on device mute and Bluetooth auto-play
🎨 UI / UX
- Major redesign of Settings, Experimental Settings, and overall UI consistency
- Added Floating Navigation Toolbar with improved interaction and animations
- Improved menus with card-based and sectioned layouts
- Added search inside Settings
- Separated Mood & Genres into dedicated screens
- Improved carousel components and layout responsiveness
🎤 Lyrics System (Major Upgrade)
-
Completely enhanced TTML parsing and timing accuracy
-
Improved karaoke-style rendering and word sync
-
Filters out invalid/empty lyrics before UI rendering
-
Added:
- RTL support
- System/custom font options
- Lyrics preloading
- Better provider handling
-
Improved lyrics UI styling with unified glass design
📊 Year in Music
-
Fully redesigned Year in Music experience
-
Added:
- Story-style pager
- Top albums view
- Year selector
- Share-safe rendering system
🤝 Music Together (New)
- Real-time shared listening sessions
- Online session support with remote server
- Guest roles with permission control
- WebSocket-based synchronization
- Improved error handling and connection fallback logic
🎵 Music Recognition (New)
- Built-in music recognition feature
- Enhanced result display with metadata and responsive layout
🖼️ Canvas System
- Introduced ArchiveTune Canvas system
- Improved artwork handling, caching, and fallback logic
- Better thumbnail matching and reliability
💾 Backup & Data
- More reliable backup & restore system with detailed progress
- Expanded file type support for imports
- Improved database transaction safety
🌐 Localization
-
Added Italian and Turkish
-
Expanded support for:
- Japanese, Korean, Vietnamese, and more
-
General translation improvements across the app
🛠️ Fixes
- Fixed YouTube sync toggle reliability and state handling
- Resolved multiple playback edge cases (queue restore, crossfade timing, metadata updates)
- Fixed lyrics sync issues, including TTML timing inconsistencies
- Addressed UI bugs (layout overlap, padding, navigation alignment)
- Improved playlist handling, including concurrency and edge cases
- Fixed network, login, and token-related issues
- Improved Music Together stability and error reporting
- Numerous dependency updates and compatibility fixes
⚡ Performance
- Cached stream URLs to reduce load time
- Optimized DataStore operations and queue persistence
- Improved coroutine usage in playback and UI layers
- Reduced unnecessary recompositions and UI rebuilds
🔧 Refactors
- Large-scale cleanup of player, lyrics, and networking layers
- Simplified YouTube parsing and stream handling logic
- Modularized gesture handling and UI components
- Improved state management across services and ViewModels
- Reworked crossfade and audio pipeline internals
📚 Documentation
- Updated README with clearer feature descriptions
- Added CONTRIBUTING guide
- Improved project documentation and links
🏗️ Build & CI
- Improved GitHub Actions workflows for builds and testing
- Added universal APK reproducibility checks
- Migrated and cleaned up Gradle configuration
- Updated major dependencies and tooling versions
🧾 Notes
- Some experimental or redundant features were removed or reworked
- Internal systems (e.g., streaming clients, token handling) have been heavily upgraded for long-term stability
Other Changes II
- fix(deps): update dependency androidx.datastore:datastore-preferences to v1.2.0 by @renovate[bot] in #213
- fix(deps): update compose to v1.10.1 by @renovate[bot] in #212
- fix(deps): update lifecycle to v2.10.0 by @renovate[bot] in #214
- fix(deps): update room to v2.8.4 by @renovate[bot] in #215
- chore(deps): update dependency com.google.devtools.ksp to v2.3.4 by @renovate[bot] in #216
- chore(deps): update gradle to v9.3.0 by @renovate[bot] in #217
- fix(deps): update dependency androidx.activity:activity-compose to v1.12.2 by @renovate[bot] in #220
- chore(deps): update kotlin to v2.3.0 by @renovate[bot] in #219
- fix(deps): update dependency androidx.work:work-runtime-ktx to v2.11.0 by @renovate[bot] in #222
- fix(deps): update dependency androidx.navigation:navigation-compose to v2.9.6 by @renovate[bot] in #221
- fix(deps): update dependency org.jsoup:jsoup to v1.22.1 by @renovate[bot] in #224
- fix(deps): update dependency org.apache.commons:commons-lang3 to v3.20.0 by @renovate[bot] in #223
- chore(deps): update github artifact actions (major) by @renovate[bot] in #233
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in #232
- fix(deps): update media3 to v1.9.0 by @renovate[bot] in #229
- chore(deps): update gradle/actions action to v5 by @renovate[bot] in #235
- fix(deps): update dependency org.mozilla:rhino to v1.9.0 by @renovate[bot] in #234
- chore(deps): update mikepenz/release-changelog-builder-action action to v6 by @renovate[bot] in #236
- fix(deps): update ktor monorepo to v3.4.0 by @renovate[bot] in #228
- fix(deps): update dependency org.jsoup:jsoup to v1.22.1 by @renovate[bot] in #226
- fix(deps): update media3 to v1.9.1 by @renovate[bot] in #247
- Language PR: Vietnamese + Update dynamic theme logic by @sang765 in #251
- chore(deps): update dependency com.google.devtools.ksp to v2.3.5 by @renovate[bot] in #252
- fix(deps): update dependency androidx.work:work-runtime-ktx to v2.11.1 by @renovate[bot] in #253
- fix(deps): update dependency androidx.navigation:navigation-compose to v2.9.7 by @renovate[bot] in #254
- fix(deps): update compose to v1.10.2 by @renovate[bot] in #255
- chore(deps): update gradle to v9.3.1 by @renovate[bot] in #259
- (feat): Add option to crop YouTube thumbnail to 1:1 by @sang765 in #262
- fix(deps): update dependency androidx.activity:activity-compose to v1.12.3 by @renovate[bot] in #261
- (feat): Support Github markdown and HTML tag in update description by @sang765 in #264
- fix(deps): update dependency com.mikepenz:multiplatform-markdown-renderer-m3 to v0.39.1 by @renovate[bot] in #265
- fix(Items.kt): Square thumbnail by @sang765 in #271
- fix(deps): update dependency com.mikepenz:multiplatform-markdown-renderer-m3 to v0.39.2 by @renovate[bot] in #277
- translate: Add missing strings for Japanese, Korean and Vietnamese by @sang765 in #278
- fix: square thumbnail not turn back after off by @sang765 in #279
- fix(deps): update media3 to v1.9.2 by @renovate[bot] in #287
- chore(deps): update dependency go to 1.25 by @renovate[bot] in #288
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in #289
- chore(deps): update actions/setup-go action to v6 by @renovate[bot] in #290
- chore(deps): update stefanzweifel/git-auto-commit-action action to v7 by @renovate[bot] in #291
- fix(deps): update hilt to v2.59.1 by @renovate[bot] in #285
- Fix: square thumbnail in arist by @sang765 in #294
- chore(deps): update dependency go to 1.26 by @renovate[bot] in https://github.com/...