Skip to content

Releases: shubh72010/Greeny-Goblins

Stable Release 1

Choose a tag to compare

@shubh72010 shubh72010 released this 15 Jul 06:13

(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

Alpha 0.3A TEST Pre-release
Pre-release

Choose a tag to compare

@shubh72010 shubh72010 released this 07 Jul 15:29

Better Autoplay (WIP)

Alpha 0.2 TEST

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)

Alpha 0.1 TEST

Alpha 0.1 TEST Pre-release
Pre-release

Choose a tag to compare

@shubh72010 shubh72010 released this 18 Jun 12:47
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