Skip to content

Alpha 0.2 TEST

Pre-release
Pre-release

Choose a tag to compare

@shubh72010 shubh72010 released this 19 Jun 16:54

New Feature: Lyric Cover Art Style

  • PreferenceKeys.kt — Added LYRIC to ModularCoverArtStyle enum
  • CoverArtComponent.kt — New LyricVariant composable: parses TTML/LRC/plain lyrics, tracks currentPosition at frame rate via withFrameNanos, shows current line with AnimatedContent (vertical slide + fade), shows next line faded below, falls back to "♪" when no synced lyrics available. Concise parseLyricsWithTimings() helper handles all three formats.
  • AppearanceSettings.kt — Added "Lyric" option to Cover Art Style dropdown
  • Also fixed the lyric animation — AnimatedContent with vertical slide transition so it actually moves between lines

New Feature: Slider Styles in Modular Player

  • PlayerComponentRegistry.kt — Added LocalSliderStyle CompositionLocal
  • PlayerGridEngine.kt — Reads SliderStyleKey preference, provides via LocalSliderStyle
  • SeekBarComponent.kt — Replaced plain Material3 Slider with StyledPlaybackSlider (respects Standard/Wavy/Thick/Circular/Simple)
  • Cleaned up unused state tracking (LaunchedEffect/mutableFloatStateOf for slider position)

New Feature: Canvas Artwork Component

  • CanvasArtworkComponent.kt (new file) — Modular player component that fetches and plays Apple Music-style animated artwork via fetchCanvasArtworkForPlayback/CanvasArtworkPlayer
  • ComponentInitializer.kt — Registered registerCanvasArtworkComponent()
  • CanvasArtworkComponent.kt — Gated behind ArchiveTuneCanvasKey preference (default off)

New Feature: Player Menu Access

  • ModularPlayer.kt — Added onMenuClick callback parameter
  • Player.kt — Wired the callback to open PlayerMenu bottom sheet in modular mode

Preference Wiring (Original Player → Modular)

  • PlayerComponentRegistry.kt — Added LocalPlayerButtonStyle and LocalThumbnailCornerRadius CompositionLocals
  • PlayerGridEngine.kt — Reads PlayerButtonsStyleKey and ThumbnailCornerRadiusKey, provides them
  • CoverArtComponent.kt — Reads HidePlayerThumbnailKey, CropThumbnailToSquareKey, uses LocalThumbnailCornerRadius for all three variants; Normal variant applies .aspectRatio(1f) when crop enabled
  • PlaybackControlsComponent.kt — PlayPause/Next/Previous use secondary/secondaryContainer colors when button style is SECONDARY
  • SecondaryControlsComponent.kt — All 8 buttons (Shuffle, Repeat, Like, Queue, Lyrics, Share, SleepTimer, MoreMenu) respect SECONDARY style
  • CanvasArtworkComponent.kt — Registration checks ArchiveTuneCanvasKey

Modular Player Refinements

  • ModularPlayer.kt — Reads ModularButtonShapeKey preference, removed unused Switch import and editingShowTimeOnSeekBar state (moved to standalone preference)
  • PlayerGridEngine.kt — Added LocalPlayerButtonStyle and LocalThumbnailCornerRadius to CompositionLocalProvider
  • TitleArtistComponent.kt — Added basicMarquee() to title/artist text so long text scrolls
  • VolumeComponent.kt — Fixed volume slider state sync with LaunchedEffect (wasn't reflecting external volume changes)
  • PlayerSettings.kt — Removed redundant modular layout editor entry (was duplicated)
  • strings.xml — Added style_card and modular_cover_art_style string resources

Queue Sheet Fix

  • Player.kt — Queue button in modular mode now properly opens the Queue sheet with dismiss tracking (modularQueueVisible state)
  • Queue.kt — Added onDismiss callback parameter, wired to BottomSheet.onDismiss

Files touched: 19
Lines changed: +3,171 / -134
Commits: 2 (ed45efa, 56599d1)