From 6e49b1f9b78eceb3ecf607fd230fb5a487d4ddb2 Mon Sep 17 00:00:00 2001 From: Barnabas Balogh Date: Wed, 25 Mar 2026 20:19:04 +0100 Subject: [PATCH] Fix TV episode playback navigation --- .../app/content/episode/EpisodeScreen.kt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app-tv/src/main/java/hu/bbara/purefin/app/content/episode/EpisodeScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/app/content/episode/EpisodeScreen.kt index d47689b..74e2cd6 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/app/content/episode/EpisodeScreen.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/app/content/episode/EpisodeScreen.kt @@ -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.MediaResumeButton 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.feature.shared.content.episode.EpisodeScreenViewModel @@ -48,6 +50,8 @@ fun EpisodeScreen( viewModel: EpisodeScreenViewModel = hiltViewModel(), modifier: Modifier = Modifier ) { + val navigationManager = LocalNavigationManager.current + LaunchedEffect(episode) { viewModel.selectEpisode( seriesId = episode.seriesId, @@ -57,16 +61,23 @@ fun EpisodeScreen( } val episode = viewModel.episode.collectAsState() + val selectedEpisode = episode.value - if (episode.value == null) { + if (selectedEpisode == null) { PurefinWaitingScreen() return } EpisodeScreenInternal( - episode = episode.value!!, + episode = selectedEpisode, onBack = viewModel::onBack, - onPlay = viewModel::onPlay, + onPlay = remember(selectedEpisode.id, navigationManager) { + { + navigationManager.navigate( + Route.PlayerRoute(mediaId = selectedEpisode.id.toString()) + ) + } + }, modifier = modifier ) }