The inline player's auto-resolve→play LaunchedEffect read the shared activity-scoped VideoDetailViewModel's `resolved` stream without checking it belonged to the newly-opened video. Right after a swap (e.g. pick another video from the browse screen while one sits in the minibar), the VM still holds the previous video's resolved URLs for one composition frame until vm.load() nulls them — so setPlayingFrom fired with streamUrl=NEW but resolved=OLD: NowPlaying.claim won under the new url (title/details/minibar flipped to NEW) while the controller kept streaming OLD, and the correct re-fire with NEW's resolved was then swallowed by the 'already playing this url' short-circuit. Restore the loadedUrl fence (the same guard VideoDetailBody and every ViewModel already use) that the vc=75 expandable-player rearchitect dropped when the inline resolve→play wiring moved out of VideoDetailScreen. |
||
|---|---|---|
| .. | ||
| src/main | ||
| build.gradle.kts | ||
| proguard-rules.pro | ||