Releases: shubh72010/Greeny-Goblins
Releases · shubh72010/Greeny-Goblins
Release list
Stable Release 1
(First stable release of JusPlayer, based on v13.7.0 of ArchiveTune)
Changes from upstream
- Rebranded to JusPlayer
- New logo
- Updated all links, team credits
- Removed Telegram & donate links
- Removed news button
- Fixed release signing config
message from Folius: It's basic with no new features right now, cause we again started from scratch, new features will come soon, you can also join the Discord server to suggest a feature :)
Alpha 0.3A TEST
Better Autoplay (WIP)
Alpha 0.2 TEST
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)
Alpha 0.1 TEST
Rename app to JusPlayer + modular player grid UI with inline editing - Renamed app from ArchiveTune to JusPlayer across all resource files - Built modular 4:9 grid player with absolute positioning (no row-skipping) - Added inline editing: long-press enters edit mode, grid stays same size - Added all component types (cover, title/artist, playback controls, seek bar, time display, secondary controls, volume slider) - Added drag-and-drop rearrangement with strict collision detection - Added resize with W/H pickers and double-tap width cycling - Added text size slider (0.5x-2x) and play button size slider (0.5x-2x) - Added show/hide time on seek bar toggle - Wired all stub buttons: queue (expands sheet), lyrics, share (YT URL), sleep timer (clear/show dialog) - Added style presets (classic, compact, minimal) with persistence - Added swipe-down protection via BottomSheetState.isLocked - Added composition-local PlayerActions for component-to-parent callbacks