vc=23: minibar + MediaController unification + Downloads UI + green theme
Real MediaController/MediaSessionService unification: a single ExoPlayer owned by PlaybackService, every UI surface is a MediaController client. Playback never restarts on screen transitions. Drops the per-screen ExoPlayer instances; drops the EXTRA_URL Intent-based handoff from vc=21. Minibar overlay: persistent strip pinned to the bottom of every non-Player screen whenever something is loaded. Tap to expand to fullscreen, x to stop and clear, play/pause toggles. Drag-down on the fullscreen player or the down-chevron overlay button minimizes into the minibar. Single source of truth for what is playing is NowPlaying — a process-wide StateFlow refreshed by whichever surface calls setPlayingFrom. Custom MediaSource.Factory in the service routes DASH/HLS/progressive by MIME, and merges video+audio progressives via a side-channel EXTRA_AUDIO_URL bundle on the MediaItem. SponsorBlock skip loop is now activity-scoped, hoisted out of PlayerScreen, so segments are skipped in minibar mode too. Downloads tab wired into the drawer. Reads DownloadManager every second, shows status + progress, tap to open, x to remove. Theme: forest-green primary palette replaces the M3 default lavender / NewPipe red. Modern, clean, distinct.
This commit is contained in:
parent
e7d45aa6b4
commit
1be4c4265f
12 changed files with 1067 additions and 494 deletions
|
|
@ -16,6 +16,20 @@ const val NEWPIPE_APPLICATION_ID_NEW = "net.newpipe.app"
|
|||
|
||||
// Sulkta fork — Straw
|
||||
//
|
||||
// vc=23 / 0.1.0-AI — minibar + downloads UI + green theme:
|
||||
// * MediaController/MediaSessionService unification — single ExoPlayer
|
||||
// owned by PlaybackService, every UI surface is a controller client.
|
||||
// Inline player on VideoDetail, fullscreen Player, and the new
|
||||
// minibar overlay all drive the same underlying player; nothing
|
||||
// restarts on screen transitions.
|
||||
// * Persistent minibar overlay at the bottom of every non-Player
|
||||
// screen whenever something is loaded. Tap → expand to fullscreen.
|
||||
// Drag-down on fullscreen → minimize to minibar. ⌄ overlay button
|
||||
// also minimizes. × on the minibar stops + clears.
|
||||
// * Downloads page wired into the drawer.
|
||||
// * Theme: forest-green primary palette in place of M3 default
|
||||
// lavender / NewPipe red — modern, clean, distinct.
|
||||
//
|
||||
// vc=22 / 0.1.0-AH — V-2 player polish + local playlists:
|
||||
// * Inline → fullscreen now hands off seek position. Tap Play (or the
|
||||
// ⛶ pill on the inline player) while the inline is mid-track and
|
||||
|
|
@ -41,6 +55,6 @@ const val NEWPIPE_APPLICATION_ID_NEW = "net.newpipe.app"
|
|||
// vc=19 / 0.1.0-AE — rust pipeline cutover. Extraction via
|
||||
// strawcore-core (Sulkta-Coop/strawcore) via the UniFFI wrapper; no
|
||||
// NewPipeExtractor in the runtime path.
|
||||
const val STRAW_VERSION_CODE = 22
|
||||
const val STRAW_VERSION_NAME = "0.1.0-AH"
|
||||
const val STRAW_VERSION_CODE = 23
|
||||
const val STRAW_VERSION_NAME = "0.1.0-AI"
|
||||
const val STRAW_APPLICATION_ID = "com.sulkta.straw"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue