Fix TV episode playback navigation

This commit is contained in:
2026-03-25 20:19:04 +01:00
parent 262d2624ea
commit 6e49b1f9b7

View File

@@ -39,6 +39,8 @@ import hu.bbara.purefin.common.ui.components.MediaHero
import hu.bbara.purefin.common.ui.components.MediaPlaybackSettings import hu.bbara.purefin.common.ui.components.MediaPlaybackSettings
import hu.bbara.purefin.common.ui.components.MediaResumeButton import hu.bbara.purefin.common.ui.components.MediaResumeButton
import hu.bbara.purefin.core.data.navigation.EpisodeDto import hu.bbara.purefin.core.data.navigation.EpisodeDto
import hu.bbara.purefin.core.data.navigation.LocalNavigationManager
import hu.bbara.purefin.core.data.navigation.Route
import hu.bbara.purefin.core.model.Episode import hu.bbara.purefin.core.model.Episode
import hu.bbara.purefin.feature.shared.content.episode.EpisodeScreenViewModel import hu.bbara.purefin.feature.shared.content.episode.EpisodeScreenViewModel
@@ -48,6 +50,8 @@ fun EpisodeScreen(
viewModel: EpisodeScreenViewModel = hiltViewModel(), viewModel: EpisodeScreenViewModel = hiltViewModel(),
modifier: Modifier = Modifier modifier: Modifier = Modifier
) { ) {
val navigationManager = LocalNavigationManager.current
LaunchedEffect(episode) { LaunchedEffect(episode) {
viewModel.selectEpisode( viewModel.selectEpisode(
seriesId = episode.seriesId, seriesId = episode.seriesId,
@@ -57,16 +61,23 @@ fun EpisodeScreen(
} }
val episode = viewModel.episode.collectAsState() val episode = viewModel.episode.collectAsState()
val selectedEpisode = episode.value
if (episode.value == null) { if (selectedEpisode == null) {
PurefinWaitingScreen() PurefinWaitingScreen()
return return
} }
EpisodeScreenInternal( EpisodeScreenInternal(
episode = episode.value!!, episode = selectedEpisode,
onBack = viewModel::onBack, onBack = viewModel::onBack,
onPlay = viewModel::onPlay, onPlay = remember(selectedEpisode.id, navigationManager) {
{
navigationManager.navigate(
Route.PlayerRoute(mediaId = selectedEpisode.id.toString())
)
}
},
modifier = modifier modifier = modifier
) )
} }