vc=21: seamless background-audio handoff on 🎧 + HOME
vc=20 fixed channel videos but left two player rough edges that Cobb called out on the phone: * Tapping 🎧 (background audio) restarted the stream from the beginning instead of picking up where the foreground player was. * Pressing HOME on the player auto-entered Picture-in-Picture; what Cobb wants is seamless background audio. Both paths now share one handoff: capture exoPlayer.currentPosition, stop the activity player, start PlaybackService with EXTRA_POSITION_MS, and seekTo(position) on setMediaItem. Verified on emulator: 🎧 tap from ~34s in-track resumes service at position=34821ms. HOME-on-player triggers the same path via StrawActivity.onUserLeaveHint → PlayerLeaveHandler.handler (a tiny registry the active PlayerScreen registers in a DisposableEffect; cleared on dispose so the hook is a no-op anywhere else in the app). The previous DisposableEffect that called setAutoEnterEnabled(true) is gone; manual PiP via the ⊟ overlay button stays — that one is still useful and user-triggered. Also fixes a latent IllegalStateException that the new HOME path exposed: PlaybackService and PlayerScreen both built MediaSession with the default empty ID, which the system rejects when both live in the same process. Service now sets .setId("straw-bg") so the two sessions can coexist during the brief activity-vs-service overlap during handoff. Smoke (emulator 1440x3040): * Subscriptions feed renders (vc=20 fix carries over). * 🎧 from ~34s in NCS / Different Heaven → service playing position=34821ms, no session-ID crash. * HOME from PlayerScreen → focus moves to NexusLauncher, PlaybackService running with isForeground=true, pictureInPictureParams=null on the activity (no PiP).
This commit is contained in:
parent
709af57f42
commit
599d299b2a
5 changed files with 70 additions and 24 deletions
|
|
@ -16,6 +16,14 @@ const val NEWPIPE_APPLICATION_ID_NEW = "net.newpipe.app"
|
|||
|
||||
// Sulkta fork — Straw
|
||||
//
|
||||
// vc=21 / 0.1.0-AG — player hand-off polish:
|
||||
// * 🎧 background-audio button now captures the current position and
|
||||
// resumes the foreground service from there instead of restarting.
|
||||
// * HOME / recents button while on the player now hands off seamlessly
|
||||
// to background audio (same position-preserving path) instead of
|
||||
// auto-entering Picture-in-Picture. Manual PiP via the ⊟ overlay
|
||||
// button is unchanged.
|
||||
//
|
||||
// vc=20 / 0.1.0-AF — channel-videos fix on top of the rust pipeline
|
||||
// cutover. vc=19 returned empty subscription feeds because
|
||||
// strawcore-core's channel_info wasn't doing the second browse for the
|
||||
|
|
@ -24,6 +32,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 = 20
|
||||
const val STRAW_VERSION_NAME = "0.1.0-AF"
|
||||
const val STRAW_VERSION_CODE = 21
|
||||
const val STRAW_VERSION_NAME = "0.1.0-AG"
|
||||
const val STRAW_APPLICATION_ID = "com.sulkta.straw"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue