diff --git a/app-tv/src/main/java/hu/bbara/purefin/tv/home/TvAppScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/tv/TvAppScreen.kt similarity index 98% rename from app-tv/src/main/java/hu/bbara/purefin/tv/home/TvAppScreen.kt rename to app-tv/src/main/java/hu/bbara/purefin/tv/TvAppScreen.kt index 78605998..eb22e365 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/tv/home/TvAppScreen.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/tv/TvAppScreen.kt @@ -1,4 +1,4 @@ -package hu.bbara.purefin.tv.home +package hu.bbara.purefin.tv import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding @@ -22,7 +22,7 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.LifecycleResumeEffect import hu.bbara.purefin.feature.shared.home.AppViewModel import hu.bbara.purefin.feature.shared.library.LibraryViewModel -import hu.bbara.purefin.tv.home.ui.TvHomeScreen +import hu.bbara.purefin.tv.home.TvHomeScreen import hu.bbara.purefin.tv.home.ui.TvHomeTabDestination import hu.bbara.purefin.tv.home.ui.TvHomeTabItem import hu.bbara.purefin.tv.home.ui.TvHomeTopBar diff --git a/app-tv/src/main/java/hu/bbara/purefin/tv/home/TvHomeScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/tv/home/TvHomeScreen.kt new file mode 100644 index 00000000..59195aad --- /dev/null +++ b/app-tv/src/main/java/hu/bbara/purefin/tv/home/TvHomeScreen.kt @@ -0,0 +1,35 @@ +package hu.bbara.purefin.tv.home + +import android.annotation.SuppressLint +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import hu.bbara.purefin.feature.shared.home.ContinueWatchingItem +import hu.bbara.purefin.feature.shared.home.LibraryItem +import hu.bbara.purefin.feature.shared.home.NextUpItem +import hu.bbara.purefin.feature.shared.home.PosterItem +import hu.bbara.purefin.tv.home.ui.TvHomeContent +import org.jellyfin.sdk.model.UUID + +@SuppressLint("RememberInComposition") +@Composable +fun TvHomeScreen( + libraries: List, + libraryContent: Map>, + continueWatching: List, + nextUp: List, + onMovieSelected: (UUID) -> Unit, + onSeriesSelected: (UUID) -> Unit, + onEpisodeSelected: (UUID, UUID, UUID) -> Unit, + modifier: Modifier = Modifier +) { + TvHomeContent( + libraries = libraries, + libraryContent = libraryContent, + continueWatching = continueWatching, + nextUp = nextUp, + onMovieSelected = onMovieSelected, + onSeriesSelected = onSeriesSelected, + onEpisodeSelected = onEpisodeSelected, + modifier = modifier + ) +} diff --git a/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeContent.kt similarity index 94% rename from app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeScreen.kt rename to app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeContent.kt index 33993579..dbe63e52 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeScreen.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeContent.kt @@ -1,6 +1,5 @@ package hu.bbara.purefin.tv.home.ui -import android.annotation.SuppressLint import androidx.compose.foundation.background import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize @@ -23,9 +22,8 @@ import hu.bbara.purefin.feature.shared.home.NextUpItem import hu.bbara.purefin.feature.shared.home.PosterItem import org.jellyfin.sdk.model.UUID -@SuppressLint("RememberInComposition") @Composable -fun TvHomeScreen( +fun TvHomeContent( libraries: List, libraryContent: Map>, continueWatching: List, @@ -44,7 +42,6 @@ fun TvHomeScreen( libraryContent.keys.associateWith { FocusRequester() } } - LazyColumn( modifier = modifier .fillMaxSize() @@ -59,7 +56,7 @@ fun TvHomeScreen( onMovieSelected = onMovieSelected, onEpisodeSelected = onEpisodeSelected, modifier = Modifier.focusRequester(continueWatchingRef) - .focusProperties{ + .focusProperties { down = nextUpRef } ) @@ -72,7 +69,7 @@ fun TvHomeScreen( items = nextUp, onEpisodeSelected = onEpisodeSelected, modifier = Modifier.focusRequester(nextUpRef) - .focusProperties{ + .focusProperties { up = continueWatchingRef libraryRefs.values.firstOrNull()?.let { down = it } } @@ -96,10 +93,11 @@ fun TvHomeScreen( modifier = if (ref != null) Modifier.focusRequester(ref) else Modifier .focusProperties { up = nextUpRef - libraryRefs.values.dropWhile { it != ref }.drop(1).firstOrNull()?.let { down = it } + libraryRefs.values.dropWhile { it != ref }.drop(1).firstOrNull() + ?.let { down = it } } ) Spacer(modifier = Modifier.height(8.dp)) } } -} +} \ No newline at end of file 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 15e5d7ee..33963b39 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 @@ -7,7 +7,7 @@ import hu.bbara.purefin.app.content.series.SeriesScreen import hu.bbara.purefin.core.data.navigation.LocalNavigationManager import hu.bbara.purefin.core.data.navigation.Route import hu.bbara.purefin.login.ui.LoginScreen -import hu.bbara.purefin.tv.home.TvAppScreen +import hu.bbara.purefin.tv.TvAppScreen import hu.bbara.purefin.tv.library.ui.TvLibraryScreen import hu.bbara.purefin.tv.player.TvPlayerScreen