Skip to content

v1.1.0-Beta

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Sep 20:47
· 1 commit to main since this release

Changelog

Features

  • feat(spotify): paginate LikedSongs ViewModel via likedSongsPage β€” by @MuwMx
  • feat(ui): add horizontal mini-player dismiss gesture with slider haptics β€” by @MuwMx
  • feat(ui): exact 1:1 port of PixelPlayer mini-player horizontal dismiss gesture β€” by @MuwMx
  • feat(haptics): introduce YumaHaptics single source of truth and provider β€” by @MuwMx
  • feat(ui): add queue header automix button, haptics and dedicated queue action menu β€” by @MuwMx
  • feat(ui): add consistent haptics to FullPlayer and Lyrics collapse/menu buttons β€” by @MuwMx
  • feat(playback): play instant algorithmic radio (automix) on search song click β€” by @MuwMx
  • feat(spotify): add persistent profile cache, Stale-While-Revalidate and direct recentlyPlayed endpoint β€” by @MuwMx
  • feat(ui): implement YdsInsets with insets consumption, layout phase modifiers, and landscape cutouts β€” by @MuwMx
  • feat(ui): tune player background blur to reveal soft artwork silhouette β€” by @MuwMx
  • feat(lyrics): toggle for lyrics player controls panel β€” by @MuwMx
  • feat(lyrics): implement position freezing during manual scrolling β€” by @MuwMx
  • feat(spotify): adapt quick grid cells to YDS 2.1 dynamic palette β€” by @MuwMx
  • feat(spotify): add background like sync with Spotify library β€” by @MuwMx
  • feat(spotify): guard like sync with user preference toggle in account settings β€” by @MuwMx
  • feat(player): mode-dependent overflow label close β€” by @MuwMx

Fixes

  • fix(player): restore startRadioSeamlessly for radio to fix freeze (revert PlayerMenu) β€” by @MuwMx
  • fix(radio): restore NextPage endpoint and MediaMetadata isMusicVideo from ArchiveTune β€” by @MuwMx
  • fix(about): improve avatar quality from 128 to 512 to fix pixelation β€” by @MuwMx
  • fix(about): remove software bitmap and fixed size to fix avatar aliasing β€” by @MuwMx
  • fix(about): handle hardware bitmap getPixels crash β€” by @MuwMx
  • fix(about): split hardware render and 32x32 software palette extraction to fix aliasing β€” by @MuwMx
  • fix(fgs): guard MediaNotificationManager startForeground on Android 16 (ForegroundServiceStartNotAllowedException) β€” by @MuwMx
  • fix: FGS IllegalStateException guard + TogetherOnlineHost safe unwrap (approveParticipant) β€” by @MuwMx
  • fix: data saver toggle + queue V2 count/ListQueue + crossfade 10s guard β€” by @MuwMx
  • fix(flac): smart cache key effectiveSource + volatile StateFlow + dynamic Qbdlx pool (no restart) β€” by @MuwMx
  • fix(settings): add missing refreshDiscordNow import in DiscordSettings β€” by @MuwMx
  • fix(spotify): add tokenMutex on refreshAccessToken body + likedSongsPage pagination β€” by @MuwMx
  • fix(spotify): make Liked queue static full cache, hasNextPage false β€” by @MuwMx
  • fix(ui): force dark buttons in queue/lyrics cards via darkColorScheme β€” by @MuwMx
  • fix(ui): queue/lyrics dark content via LocalContentColor β€” by @MuwMx
  • fix(ui): wrap yumaGlassCard inside dark provider β€” by @MuwMx
  • fix(ui): 3dots sheets always dark theme β€” by @MuwMx
  • fix(ui): replace GoogleSans hardcodes with LocalArchiveTuneFontFamily β€” by @MuwMx
  • fix(ui): fix dismiss gesture cancel, float precision, teleport glitch and add continuous drag haptics β€” by @MuwMx
  • fix(ui): refine mini-player dismiss haptics with M3 frequent ticks and delayed snap-reset β€” by @MuwMx
  • fix(ui): remove dead bottom padding when miniplayer dismissed and remove collapse haptics β€” by @MuwMx
  • fix(ui): resolve gesture conflicts, touch swallowing and unclickable controls across sheets β€” by @MuwMx
  • fix(spotify): restore GraphQL recent items parsing with playlists, full album artists, and fix SWR UI flashing β€” by @MuwMx
  • fix(ui): fix status bar insets in FullPlayer, floating bar immersive padding, and clean YdsInsets modifiers β€” by @MuwMx
  • fix(library): force album list items to single segment position β€” by @MuwMx
  • fix(queue): balance theme provider braces around LazyColumn β€” by @MuwMx
  • fix(spotify): eliminate sync duplicates, double calls and optimize batch operations β€” by @MuwMx
  • fix(player): isolate sheet background to matchParentSize, restore instant queue animation and fade β€” by @MuwMx
  • fix(spotify): persist track matches on play and enable fallback search for like sync β€” by @MuwMx
  • fix(sync): clean mutual exclusive routing between Spotify and YouTube like sync β€” by @MuwMx
  • fix(ui): preserve full 544px thumbnail resolution for grids while keeping lightweight 200px for lists β€” by @MuwMx
  • fix(queue): provider-inside-snapshotFlow restores first frame β€” by @MuwMx
  • fix(sheets): unify normal top with immersive background β€” by @MuwMx
  • fix(headers): keep lyrics queue close always visible β€” by @MuwMx
  • fix(home): mount mood panel only with chips β€” by @MuwMx
  • fix(ui): gate MarqueeText on local isVisible parameter β€” by @MuwMx
  • fix(player): pin controls and title to always-white β€” by @MuwMx

Performance

  • perf(ui): optimize isMiniPlayerVisible selector in MainActivity and clean queue close haptic β€” by @MuwMx
  • perf(queue): eliminate per-item DataStore flow subscriptions and Subcomposition in thumbnails β€” by @MuwMx
  • perf(queue): hoist itemWidthPx to screen level and optimize Coil thumbnail decode size β€” by @MuwMx
  • perf(player-bg): careful single-pass background β€” by @MuwMx
  • perf(seekbar): draw-phase progress via graphicsLayer β€” by @MuwMx
  • perf(player-bg): unify player background to single blur source and shared gradient β€” by @MuwMx
  • perf(home-bg): central visibility gate pauses animated styles β€” by @MuwMx
  • perf(home-bg): propagate isVisible gate to all animated effects β€” by @MuwMx
  • perf(lyrics-queue): suspend hidden loops via snapshotFlow β€” by @MuwMx

Refactors

  • refactor(playback): clean up formatting in MusicService β€” by @MuwMx
  • refactor(playback): extract MusicService integrations to extension β€” by @MuwMx
  • refactor(playback): extract MusicService playback to extension β€” by @MuwMx
  • refactor(playback): extract MusicService audio to extension β€” by @MuwMx
  • refactor(playback): extract MusicService crossfade to extension β€” by @MuwMx
  • refactor(playback): extract MusicService together to extension β€” by @MuwMx
  • refactor(spotify): make LikedQueue stub-only with external total/hasMore β€” by @MuwMx
  • refactor(haptics): remove FLAG_IGNORE_GLOBAL_SETTING and fix incorrect LongPress usages β€” by @MuwMx
  • refactor(haptics): migrate all screens to LocalYumaHaptics and clean prop-drilling β€” by @MuwMx
  • refactor(cleanup): remove 15 dead legacy files (~4.5k LOC) β€” by @MuwMx
  • refactor(spotify): use typed __typename contract for recent section instead of string matching β€” by @MuwMx
  • refactor(flac): make Qobuz sole lossless provider and remove Arcod/dead token fields β€” by @MuwMx
  • refactor(library): update layout spacing and window insets for list containers β€” by @MuwMx
  • refactor(player): remove unnecessary keys from nested scroll connection remember blocks β€” by @MuwMx
  • refactor(ui): split monolithic Items.kt into focused SRP components β€” by @MuwMx
  • refactor(ui): migrate news screen and top action buttons to unified YDS β€” by @MuwMx

Documentation

  • docs(readme): update telegram community link to yumaplayer β€” by @MuwMx
  • docs(readme): remove arcod references from documentation β€” by @MuwMx
  • docs(yuma_rules): add separator to development guidelines β€” by @MuwMx
  • docs(rules): remove trailing whitespace and empty lines from YUMA_RULES.md β€” by @MuwMx
  • docs(spotify): document ADR-011 Spotify sync architecture and isolation β€” by @MuwMx
Other changes
  • chore(templates,docs): rename ArchiveTune to YumaPlayer in templates and privacy policy β€” by @MuwMx
  • refactor(ui,settings): simplify image processing and request logic in AboutScreen β€” by @MuwMx
  • refactor(queue,settings): remove unused queue header component β€” by @MuwMx
  • refactor(playback,network): implement metered connection check for flac streaming bypass β€” by @MuwMx
  • feat(settings,spotify): add debug sp_dc input field to login sheet β€” by @MuwMx
  • refactor(ui,player,home): optimize flow operators and remove unused quick picks header β€” by @MuwMx
  • feat(player,haptics): implement custom continuous vibration feedback for dismiss gesture β€” by @MuwMx
  • refactor(ui,haptics): replace native haptic feedback with custom yuma haptics implementation β€” by @MuwMx
  • fix(player,ui): add fraction threshold check to drag state and simplify lyrics layer rendering β€” by @MuwMx
  • refactor(player,ui): optimize overlay visibility state using derivedStateOf β€” by @MuwMx
  • chore(lossless): remove dead fallback LosslessTokens (experimental hardcode, now user input only) β€” by @MuwMx
  • feat(ui,library): add LibraryEmptyState component β€” by @MuwMx
  • style(library,component): update library filter chip dimensions and grid padding β€” by @MuwMx
  • refactor(ui,library): migrate LocalSongScanSheet to Surface components for consistent styling β€” by @MuwMx
  • refactor(ui,library): update local song screen hero icon layout and styling β€” by @MuwMx
  • feat(settings,spotify): expose manual sp_dc input field outside of debug builds β€” by @MuwMx
  • refactor(ui,lyrics): move lyrics parsing to produceState and background thread β€” by @MuwMx
  • refactor(ui,lyrics): consolidate lyrics parsing logic and handle empty states β€” by @MuwMx
  • refactor(lyrics,queue): simplify state initialization and optimize reorderable graphics layer β€” by @MuwMx
  • refactor(ui,lyrics): optimize romanization effect execution by preventing redundant re-parses β€” by @MuwMx
  • fix(ui,lyrics): reset frozen position when manual scrolling ends β€” by @MuwMx
  • fix(lyrics,ui): improve manual scrolling state logic and reset frozen position on seek β€” by @MuwMx
  • refactor(ui,lyrics): consolidate manual scrolling logic in LyricsEnhanced β€” by @MuwMx
  • SRP x4: black Spotify recents, stop-on-swipe toggle, sheet Back priority, sheet clipToBounds β€” by @MuwMx
  • feat(player,ui): handle back navigation based on overlay and lyrics visibility β€” by @MuwMx
  • refactor(mainactivity,playersheet): remove unused overlay state and improve back navigation logic β€” by @MuwMx
  • feat(player,queue): implement symmetric UDF for queue and two-container border clipping β€” by @MuwMx
  • feat(player,queue): add local BackHandler to QueueScreen β€” by @MuwMx
  • perf(player,queue): eliminate composition key reset and GPU throttling on queue gesture β€” by @MuwMx
  • perf(player,queue): align QueueScreen lifecycle and rendering 1-to-1 with LyricsColumn β€” by @MuwMx
  • refactor(sync,youtube): optimize song liking with deduplication and concurrent batching β€” by @MuwMx
  • style(syncutils): fix indentation for likeSongs function β€” by @MuwMx
  • refactor(player,ui): simplify PlayerSeekBar progress update logic β€” by @MuwMx
  • refactor(player,ui): optimize seekbar state management and reset logic β€” by @MuwMx
  • refactor(player,ui): swap blur and clear image painter logic and update blur request size β€” by @MuwMx
  • chore(bg): temporary pause verification logs β€” by @MuwMx
  • chore(home,effects): add debug logging for screen background state β€” by @MuwMx
  • chore(player): temporary sleep verification logs β€” by @MuwMx
  • chore(logs): remove temporary pause verification logs β€” by @MuwMx
  • refactor(player,ui): optimize background gradient color blending and structure β€” by @MuwMx
  • feat(build,ui): update foundation layout dependency and adjust player background visuals β€” by @MuwMx
  • refactor(player,viewmodel): improve cover image resolution and blank string handling β€” by @MuwMx
  • style(player): adjust background layer gradient intensity and transition points β€” by @MuwMx
  • chore(app,version): bump version to 1.1.0-Beta β€” by @MuwMx