diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/episode/EpisodeScreenContentTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/episode/EpisodeScreenContentTest.kt index 47ec4fc3..e187f0c3 100644 --- a/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/episode/EpisodeScreenContentTest.kt +++ b/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/episode/EpisodeScreenContentTest.kt @@ -31,7 +31,7 @@ class EpisodeScreenContentTest { fun episodeScreenContent_showsSeriesContext_andFocusesPlayButton() { composeRule.setContent { AppTheme { - EpisodeScreenContent( + TvEpisodeScreenContent( episode = sampleEpisode(progress = 63.0), seriesTitle = "Severance", onPlay = {} @@ -55,7 +55,7 @@ class EpisodeScreenContentTest { fun episodeScreenContent_hidesSeriesShortcut_whenShortcutUiIsUnavailable() { composeRule.setContent { AppTheme { - EpisodeScreenContent( + TvEpisodeScreenContent( episode = sampleEpisode(progress = null), seriesTitle = "Severance", onPlay = {} @@ -77,7 +77,7 @@ class EpisodeScreenContentTest { composeRule.setContent { AppTheme { - EpisodeScreenContent( + TvEpisodeScreenContent( episode = sampleEpisode(progress = 63.0), seriesTitle = "Severance", onPlay = { playCount++ } diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/movie/MovieScreenContentTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/movie/MovieScreenContentTest.kt index 41edc6f2..518872f6 100644 --- a/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/movie/MovieScreenContentTest.kt +++ b/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/movie/MovieScreenContentTest.kt @@ -31,7 +31,7 @@ class MovieScreenContentTest { fun movieScreenContent_focusesPlayButton() { composeRule.setContent { AppTheme { - MovieScreenContent( + TvMovieScreenContent( movie = sampleMovie(progress = 42.0), onPlay = {} ) @@ -54,7 +54,7 @@ class MovieScreenContentTest { composeRule.setContent { AppTheme { - MovieScreenContent( + TvMovieScreenContent( movie = sampleMovie(progress = 42.0), onPlay = { playCount++ } ) diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/series/SeriesScreenContentTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/series/SeriesScreenContentTest.kt index 6a0e82b2..d5f1ab21 100644 --- a/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/series/SeriesScreenContentTest.kt +++ b/app-tv/src/androidTest/java/hu/bbara/purefin/app/content/series/SeriesScreenContentTest.kt @@ -31,7 +31,7 @@ class SeriesScreenContentTest { fun seriesScreenContent_focusesPrimaryAction_whenNextUpExists() { composeRule.setContent { AppTheme { - SeriesScreenContent( + TvSeriesScreenContent( series = sampleSeriesWithEpisodes(), onPlayEpisode = {} ) @@ -54,7 +54,7 @@ class SeriesScreenContentTest { fun seriesScreenContent_focusesFirstSeason_whenNoPlayableEpisodeExists() { composeRule.setContent { AppTheme { - SeriesScreenContent( + TvSeriesScreenContent( series = sampleSeriesWithoutEpisodes(), onPlayEpisode = {} ) @@ -76,7 +76,7 @@ class SeriesScreenContentTest { composeRule.setContent { AppTheme { - SeriesScreenContent( + TvSeriesScreenContent( series = sampleSeriesWithEpisodes(), onPlayEpisode = { playCount++ } ) diff --git a/app-tv/src/main/java/hu/bbara/purefin/app/content/episode/EpisodeComponents.kt b/app-tv/src/main/java/hu/bbara/purefin/app/content/episode/TvEpisodeComponents.kt similarity index 99% rename from app-tv/src/main/java/hu/bbara/purefin/app/content/episode/EpisodeComponents.kt rename to app-tv/src/main/java/hu/bbara/purefin/app/content/episode/TvEpisodeComponents.kt index d7f4e0c2..320ceaee 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/app/content/episode/EpisodeComponents.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/app/content/episode/TvEpisodeComponents.kt @@ -28,7 +28,7 @@ internal const val EpisodePlayButtonTag = "episode-play-button" @OptIn(ExperimentalLayoutApi::class) @Composable -internal fun EpisodeHeroSection( +internal fun TvEpisodeHeroSection( episode: Episode, seriesTitle: String?, onPlay: () -> Unit, 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/TvEpisodeScreen.kt similarity index 97% rename from app-tv/src/main/java/hu/bbara/purefin/app/content/episode/EpisodeScreen.kt rename to app-tv/src/main/java/hu/bbara/purefin/app/content/episode/TvEpisodeScreen.kt index 53b87d97..72219b98 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/TvEpisodeScreen.kt @@ -20,15 +20,15 @@ import hu.bbara.purefin.common.ui.components.MediaDetailPlaybackSection import hu.bbara.purefin.common.ui.components.MediaDetailSectionTitle import hu.bbara.purefin.common.ui.components.TvMediaDetailBodyBox import hu.bbara.purefin.common.ui.components.TvMediaDetailScaffold -import hu.bbara.purefin.core.data.navigation.LocalNavigationManager -import hu.bbara.purefin.core.data.navigation.Route import hu.bbara.purefin.common.ui.components.tvMediaDetailBackgroundImageUrl 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 @Composable -fun EpisodeScreen( +fun TvEpisodeScreen( episode: EpisodeDto, viewModel: EpisodeScreenViewModel = hiltViewModel(), modifier: Modifier = Modifier @@ -52,7 +52,7 @@ fun EpisodeScreen( return } - EpisodeScreenContent( + TvEpisodeScreenContent( episode = selectedEpisode, seriesTitle = seriesTitle.value, onPlay = remember(selectedEpisode.id, navigationManager) { @@ -67,7 +67,7 @@ fun EpisodeScreen( } @Composable -internal fun EpisodeScreenContent( +internal fun TvEpisodeScreenContent( episode: Episode, seriesTitle: String?, onPlay: () -> Unit, @@ -89,7 +89,7 @@ internal fun EpisodeScreenContent( backgroundImageUrl = tvMediaDetailBackgroundImageUrl(episode.imageUrlPrefix), modifier = it ) { - EpisodeHeroSection( + TvEpisodeHeroSection( episode = episode, seriesTitle = seriesTitle, onPlay = onPlay, diff --git a/app-tv/src/main/java/hu/bbara/purefin/app/content/movie/MovieComponents.kt b/app-tv/src/main/java/hu/bbara/purefin/app/content/movie/TvMovieComponents.kt similarity index 98% rename from app-tv/src/main/java/hu/bbara/purefin/app/content/movie/MovieComponents.kt rename to app-tv/src/main/java/hu/bbara/purefin/app/content/movie/TvMovieComponents.kt index f3be526d..7a1866d0 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/app/content/movie/MovieComponents.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/app/content/movie/TvMovieComponents.kt @@ -28,7 +28,7 @@ internal const val MoviePlayButtonTag = "movie-play-button" @OptIn(ExperimentalLayoutApi::class) @Composable -internal fun MovieHeroSection( +internal fun TvMovieHeroSection( movie: Movie, onPlay: () -> Unit, playFocusRequester: FocusRequester, diff --git a/app-tv/src/main/java/hu/bbara/purefin/app/content/movie/MovieScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/app/content/movie/TvMovieScreen.kt similarity index 96% rename from app-tv/src/main/java/hu/bbara/purefin/app/content/movie/MovieScreen.kt rename to app-tv/src/main/java/hu/bbara/purefin/app/content/movie/TvMovieScreen.kt index 7fb95737..b1cb8dcb 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/app/content/movie/MovieScreen.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/app/content/movie/TvMovieScreen.kt @@ -26,7 +26,7 @@ import hu.bbara.purefin.core.model.Movie import hu.bbara.purefin.feature.shared.content.movie.MovieScreenViewModel @Composable -fun MovieScreen( +fun TvMovieScreen( movie: MovieDto, viewModel: MovieScreenViewModel = hiltViewModel(), modifier: Modifier = Modifier ) { LaunchedEffect(movie.id) { @@ -36,7 +36,7 @@ fun MovieScreen( val movieItem = viewModel.movie.collectAsState() if (movieItem.value != null) { - MovieScreenContent( + TvMovieScreenContent( movie = movieItem.value!!, onPlay = viewModel::onPlay, modifier = modifier @@ -47,7 +47,7 @@ fun MovieScreen( } @Composable -internal fun MovieScreenContent( +internal fun TvMovieScreenContent( movie: Movie, onPlay: () -> Unit, modifier: Modifier = Modifier, @@ -68,7 +68,7 @@ internal fun MovieScreenContent( backgroundImageUrl = tvMediaDetailBackgroundImageUrl(movie.imageUrlPrefix), modifier = it ) { - MovieHeroSection( + TvMovieHeroSection( movie = movie, onPlay = onPlay, playFocusRequester = playFocusRequester, diff --git a/app-tv/src/main/java/hu/bbara/purefin/app/content/series/SeriesComponents.kt b/app-tv/src/main/java/hu/bbara/purefin/app/content/series/TvSeriesComponents.kt similarity index 97% rename from app-tv/src/main/java/hu/bbara/purefin/app/content/series/SeriesComponents.kt rename to app-tv/src/main/java/hu/bbara/purefin/app/content/series/TvSeriesComponents.kt index cbf4ae4a..fbabc819 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/app/content/series/SeriesComponents.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/app/content/series/TvSeriesComponents.kt @@ -72,7 +72,7 @@ internal const val SeriesFirstSeasonTabTag = "series-first-season-tab" @OptIn(ExperimentalLayoutApi::class) @Composable -internal fun SeriesMetaChips(series: Series) { +internal fun TvSeriesMetaChips(series: Series) { val scheme = MaterialTheme.colorScheme FlowRow( horizontalArrangement = Arrangement.spacedBy(8.dp), @@ -84,7 +84,7 @@ internal fun SeriesMetaChips(series: Series) { } @Composable -internal fun SeasonTabs( +internal fun TvSeasonTabs( seasons: List, selectedSeason: Season?, modifier: Modifier = Modifier, @@ -99,7 +99,7 @@ internal fun SeasonTabs( horizontalArrangement = Arrangement.spacedBy(20.dp) ) { seasons.forEachIndexed { index, season -> - SeasonTab( + TvSeasonTab( name = season.name, isSelected = season == selectedSeason, onSelect = { onSelect(season) }, @@ -124,7 +124,7 @@ internal fun SeasonTabs( } @Composable -private fun SeasonTab( +private fun TvSeasonTab( name: String, isSelected: Boolean, onSelect: () -> Unit, @@ -160,7 +160,7 @@ private fun SeasonTab( } @Composable -internal fun EpisodeCarousel(episodes: List, modifier: Modifier = Modifier) { +internal fun TvEpisodeCarousel(episodes: List, modifier: Modifier = Modifier) { val listState = rememberLazyListState() LaunchedEffect(episodes) { @@ -178,13 +178,13 @@ internal fun EpisodeCarousel(episodes: List, modifier: Modifier = Modif horizontalArrangement = Arrangement.spacedBy(16.dp) ) { items(episodes) { episode -> - EpisodeCard(episode = episode) + TvEpisodeCard(episode = episode) } } } @Composable -internal fun SeriesHeroSection( +internal fun TvSeriesHeroSection( series: Series, nextUpEpisode: Episode?, onPlayEpisode: (Episode) -> Unit, @@ -210,7 +210,7 @@ internal fun SeriesHeroSection( overflow = TextOverflow.Ellipsis ) Spacer(modifier = Modifier.height(18.dp)) - SeriesMetaChips(series = series) + TvSeriesMetaChips(series = series) Spacer(modifier = Modifier.height(24.dp)) if (nextUpEpisode != null) { Text( @@ -262,7 +262,7 @@ internal fun SeriesHeroSection( } @Composable -private fun EpisodeCard( +private fun TvEpisodeCard( viewModel: SeriesViewModel = hiltViewModel(), episode: Episode ) { diff --git a/app-tv/src/main/java/hu/bbara/purefin/app/content/series/SeriesScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/app/content/series/TvSeriesScreen.kt similarity index 96% rename from app-tv/src/main/java/hu/bbara/purefin/app/content/series/SeriesScreen.kt rename to app-tv/src/main/java/hu/bbara/purefin/app/content/series/TvSeriesScreen.kt index 6d4f99ec..fe20990e 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/app/content/series/SeriesScreen.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/app/content/series/TvSeriesScreen.kt @@ -29,7 +29,7 @@ import hu.bbara.purefin.feature.shared.content.series.SeriesViewModel import org.jellyfin.sdk.model.UUID @Composable -fun SeriesScreen( +fun TvSeriesScreen( series: SeriesDto, modifier: Modifier = Modifier, viewModel: SeriesViewModel = hiltViewModel() @@ -42,7 +42,7 @@ fun SeriesScreen( val seriesData = series.value if (seriesData != null && seriesData.seasons.isNotEmpty()) { - SeriesScreenContent( + TvSeriesScreenContent( series = seriesData, onPlayEpisode = viewModel::onPlayEpisode, modifier = modifier @@ -53,7 +53,7 @@ fun SeriesScreen( } @Composable -internal fun SeriesScreenContent( +internal fun TvSeriesScreenContent( series: Series, onPlayEpisode: (UUID) -> Unit, modifier: Modifier = Modifier, @@ -81,7 +81,7 @@ internal fun SeriesScreenContent( backgroundImageUrl = tvMediaDetailBackgroundImageUrl(series.imageUrlPrefix), modifier = it ) { - SeriesHeroSection( + TvSeriesHeroSection( series = series, nextUpEpisode = nextUpEpisode, onPlayEpisode = { onPlayEpisode(it.id) }, @@ -103,7 +103,7 @@ internal fun SeriesScreenContent( } } item { - SeasonTabs( + TvSeasonTabs( seasons = series.seasons, selectedSeason = selectedSeason, firstItemFocusRequester = firstContentFocusRequester, @@ -114,7 +114,7 @@ internal fun SeriesScreenContent( } item { Spacer(modifier = Modifier.height(20.dp)) - EpisodeCarousel( + TvEpisodeCarousel( episodes = selectedSeason.episodes, modifier = it ) diff --git a/app-tv/src/main/java/hu/bbara/purefin/tv/navigation/TvRouteEntryBuilder.kt b/app-tv/src/main/java/hu/bbara/purefin/tv/navigation/TvRouteEntryBuilder.kt index 33963b39..9be2c040 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/tv/navigation/TvRouteEntryBuilder.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/tv/navigation/TvRouteEntryBuilder.kt @@ -1,9 +1,9 @@ package hu.bbara.purefin.tv.navigation import androidx.navigation3.runtime.EntryProviderScope -import hu.bbara.purefin.app.content.episode.EpisodeScreen -import hu.bbara.purefin.app.content.movie.MovieScreen -import hu.bbara.purefin.app.content.series.SeriesScreen +import hu.bbara.purefin.app.content.episode.TvEpisodeScreen +import hu.bbara.purefin.app.content.movie.TvMovieScreen +import hu.bbara.purefin.app.content.series.TvSeriesScreen import hu.bbara.purefin.core.data.navigation.LocalNavigationManager import hu.bbara.purefin.core.data.navigation.Route import hu.bbara.purefin.login.ui.LoginScreen @@ -25,19 +25,19 @@ fun EntryProviderScope.tvLoginSection() { fun EntryProviderScope.tvMovieSection() { entry { route -> - MovieScreen(movie = route.item) + TvMovieScreen(movie = route.item) } } fun EntryProviderScope.tvSeriesSection() { entry { route -> - SeriesScreen(series = route.item) + TvSeriesScreen(series = route.item) } } fun EntryProviderScope.tvEpisodeSection() { entry { route -> - EpisodeScreen(episode = route.item) + TvEpisodeScreen(episode = route.item) } }