Merge Wholphin v1.1.0 while preserving Wolfskin features #27

Merged
justinzeus merged 72 commits from fm/wolfskin-upstream-1-1-0 into main 2026-11-05 01:49:35 +01:00
2 changed files with 44 additions and 0 deletions
Showing only changes of commit 06c1d622bb - Show all commits

View file

@ -717,6 +717,7 @@ class PlaybackViewModel
api.videosApi.getVideoStreamUrl(
itemId = itemId,
mediaSourceId = source.id,
liveStreamId = source.liveStreamId,
static = true,
tag = source.eTag,
playSessionId = response.playSessionId,

View file

@ -292,6 +292,49 @@ class PlaybackViewModelTests {
return viewModel
}
@Test
fun `Direct play includes the opened live stream ID`() =
runTest(testDispatcher) {
setupPreferences { cinemaMode = false }
val liveStreamId = "opened-live-stream"
val liveSource = mediaSource.copy(liveStreamId = liveStreamId)
coEvery { mockUserLibraryApi.getItem(movie.id) } returns successResponse(movie)
coEvery { mockMediaInfoApi.getPostedPlaybackInfo(any(), any()) } returns
successResponse(
PlaybackInfoResponse(
mediaSources = listOf(liveSource),
playSessionId = playSessionId,
),
)
every {
mockVideosApi.getVideoStreamUrl(
itemId = movie.id,
mediaSourceId = liveSource.id,
liveStreamId = liveSource.liveStreamId,
static = true,
tag = liveSource.eTag,
playSessionId = playSessionId,
)
} returns videoStreamUrl
createViewModel(Destination.Playback(movie.id, 0L))
val mediaItem = slot<MediaItem>()
verify(exactly = 1) { mockPlayer.setMediaItem(capture(mediaItem), any<Long>()) }
val playbackUri = mediaItem.captured.localConfiguration?.uri
Assert.assertEquals(videoStreamUrl, playbackUri.toString())
verify(exactly = 1) {
mockVideosApi.getVideoStreamUrl(
itemId = movie.id,
mediaSourceId = liveSource.id,
liveStreamId = liveStreamId,
static = true,
tag = liveSource.eTag,
playSessionId = playSessionId,
)
}
}
@Test
fun `Play intro first`() =
runTest(testDispatcher) {