diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt index eb7fa58e..2687027b 100644 --- a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt +++ b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt @@ -22,7 +22,7 @@ import hu.bbara.purefin.model.Movie import hu.bbara.purefin.ui.model.EpisodeUiModel import hu.bbara.purefin.ui.model.MediaUiModel import hu.bbara.purefin.ui.model.MovieUiModel -import hu.bbara.purefin.feature.browse.home.LibraryItem +import hu.bbara.purefin.ui.model.LibraryUiModel import hu.bbara.purefin.ui.screen.home.TvHomeScreen import hu.bbara.purefin.ui.theme.AppTheme import org.junit.Assert.assertEquals @@ -385,9 +385,9 @@ class TvHomeContentTest { ) } - private fun sampleLibraries(): List { + private fun sampleLibraries(): List { return listOf( - LibraryItem( + LibraryUiModel( id = sampleLibraryId(), name = "Movies", type = LibraryKind.MOVIES, diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreenTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreenTest.kt index d232df20..659a7164 100644 --- a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreenTest.kt +++ b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreenTest.kt @@ -5,7 +5,7 @@ import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performClick import hu.bbara.purefin.model.LibraryKind -import hu.bbara.purefin.feature.browse.home.LibraryItem +import hu.bbara.purefin.ui.model.LibraryUiModel import hu.bbara.purefin.ui.theme.AppTheme import org.junit.Assert.assertEquals import org.junit.Rule @@ -20,14 +20,14 @@ class TvLibrariesOverviewScreenTest { @Test fun tvLibrariesOverviewScreen_opensSelectedLibrary() { val libraries = listOf( - LibraryItem( + LibraryUiModel( id = UUID.fromString("11111111-1111-1111-1111-111111111111"), name = "Movies", type = LibraryKind.MOVIES, posterUrl = "", isEmpty = false ), - LibraryItem( + LibraryUiModel( id = UUID.fromString("22222222-2222-2222-2222-222222222222"), name = "Shows", type = LibraryKind.SERIES, @@ -35,7 +35,7 @@ class TvLibrariesOverviewScreenTest { isEmpty = false ) ) - var openedLibrary: LibraryItem? = null + var openedLibrary: LibraryUiModel? = null composeRule.setContent { AppTheme { diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/TvHomeScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/TvHomeScreen.kt index 37cf1d01..9bf97868 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/TvHomeScreen.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/TvHomeScreen.kt @@ -13,14 +13,14 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import hu.bbara.purefin.ui.model.MediaUiModel import hu.bbara.purefin.ui.model.MovieUiModel -import hu.bbara.purefin.feature.browse.home.LibraryItem +import hu.bbara.purefin.ui.model.LibraryUiModel import hu.bbara.purefin.ui.screen.home.components.TvFocusedItemHero import hu.bbara.purefin.ui.screen.home.components.TvHomeContent import java.util.UUID @Composable fun TvHomeScreen( - libraries: List, + libraries: List, libraryContent: Map>, continueWatching: List, nextUp: List, diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContent.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContent.kt index da75f5c9..e988946d 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContent.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContent.kt @@ -24,7 +24,7 @@ import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.testTag import androidx.compose.ui.unit.dp import hu.bbara.purefin.ui.model.MediaUiModel -import hu.bbara.purefin.feature.browse.home.LibraryItem +import hu.bbara.purefin.ui.model.LibraryUiModel import java.util.UUID internal const val TvHomeInitialFocusTag = "tv-home-initial-focus-item" @@ -32,7 +32,7 @@ internal const val TvHomeContentViewportTag = "tv-home-content-viewport" @Composable fun TvHomeContent( - libraries: List, + libraries: List, libraryContent: Map>, continueWatching: List, nextUp: List, diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreen.kt index a81f464b..9777ec00 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreen.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreen.kt @@ -43,7 +43,7 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import hu.bbara.purefin.ui.common.image.PurefinAsyncImage -import hu.bbara.purefin.feature.browse.home.LibraryItem +import hu.bbara.purefin.ui.model.LibraryUiModel import hu.bbara.purefin.model.LibraryKind internal const val TvLibrariesOverviewItemTagPrefix = "tv-libraries-overview-item-" @@ -52,8 +52,8 @@ private val TvLibrariesOverviewCardShape = RoundedCornerShape(18.dp) @Composable fun TvLibrariesOverviewScreen( - libraries: List, - onLibrarySelected: (LibraryItem) -> Unit, + libraries: List, + onLibrarySelected: (LibraryUiModel) -> Unit, modifier: Modifier = Modifier ) { val scheme = MaterialTheme.colorScheme @@ -117,7 +117,7 @@ fun TvLibrariesOverviewScreen( @Composable private fun TvLibraryOverviewCard( - item: LibraryItem, + item: LibraryUiModel, onClick: () -> Unit, modifier: Modifier = Modifier ) { diff --git a/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt b/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt index ef8665a0..92af8d06 100644 --- a/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt +++ b/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt @@ -5,7 +5,7 @@ import hu.bbara.purefin.model.LibraryKind import hu.bbara.purefin.model.MediaKind import hu.bbara.purefin.model.Movie import hu.bbara.purefin.feature.browse.home.ContinueWatchingItem -import hu.bbara.purefin.feature.browse.home.LibraryItem +import hu.bbara.purefin.ui.model.LibraryUiModel import hu.bbara.purefin.feature.browse.home.NextUpItem import hu.bbara.purefin.feature.browse.home.PosterItem import org.junit.Assert.assertEquals @@ -104,8 +104,8 @@ class TvHomeHeroStateTest { assertEquals(continueWatching, registry.firstAvailableItem) } - private fun sampleLibrary(id: UUID, isEmpty: Boolean = false): LibraryItem { - return LibraryItem( + private fun sampleLibrary(id: UUID, isEmpty: Boolean = false): LibraryUiModel { + return LibraryUiModel( id = id, name = "Movies", type = LibraryKind.MOVIES, diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/HomeScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/HomeScreen.kt index 0ec2f6e0..bec34f20 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/HomeScreen.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/HomeScreen.kt @@ -12,7 +12,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import hu.bbara.purefin.feature.browse.home.LibraryItem +import hu.bbara.purefin.ui.model.LibraryUiModel import hu.bbara.purefin.ui.model.MediaUiModel import hu.bbara.purefin.ui.screen.AppBottomBar import hu.bbara.purefin.ui.screen.home.components.HomeContent @@ -23,7 +23,7 @@ import java.util.UUID @OptIn(ExperimentalMaterial3Api::class) @Composable fun HomeScreen( - libraries: List, + libraries: List, libraryContent: Map>, suggestions: List, continueWatching: List, @@ -31,7 +31,7 @@ fun HomeScreen( isRefreshing: Boolean, onRefresh: () -> Unit, onMediaSelected: (MediaUiModel) -> Unit, - onLibrarySelected: (LibraryItem) -> Unit, + onLibrarySelected: (LibraryUiModel) -> Unit, onProfileClick: () -> Unit, onSettingsClick: () -> Unit, onLogoutClick: () -> Unit, diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/HomeContent.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/HomeContent.kt index df1d2a3f..b127ab01 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/HomeContent.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/HomeContent.kt @@ -22,7 +22,7 @@ import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import hu.bbara.purefin.ui.model.MediaUiModel -import hu.bbara.purefin.feature.browse.home.LibraryItem +import hu.bbara.purefin.ui.model.LibraryUiModel import hu.bbara.purefin.ui.screen.home.components.continuewatching.ContinueWatchingSection import hu.bbara.purefin.ui.screen.home.components.featured.SuggestionsSection import hu.bbara.purefin.ui.screen.home.components.library.LibraryPosterSection @@ -32,7 +32,7 @@ import java.util.UUID @OptIn(ExperimentalMaterial3Api::class) @Composable fun HomeContent( - libraries: List, + libraries: List, libraryContent: Map>, suggestions: List, continueWatching: List, @@ -40,7 +40,7 @@ fun HomeContent( isRefreshing: Boolean, onRefresh: () -> Unit, onMediaSelected: (MediaUiModel) -> Unit, - onLibrarySelected: (LibraryItem) -> Unit, + onLibrarySelected: (LibraryUiModel) -> Unit, onBrowseLibrariesClick: () -> Unit, modifier: Modifier = Modifier ) { diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/LibraryPosterSection.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/LibraryPosterSection.kt index ccc2afd8..60339c20 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/LibraryPosterSection.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/LibraryPosterSection.kt @@ -12,14 +12,14 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import hu.bbara.purefin.ui.model.MediaUiModel -import hu.bbara.purefin.feature.browse.home.LibraryItem +import hu.bbara.purefin.ui.model.LibraryUiModel import hu.bbara.purefin.ui.common.header.SectionHeader @Composable fun LibraryPosterSection( - library: LibraryItem, + library: LibraryUiModel, items: List, - onLibrarySelected: (LibraryItem) -> Unit, + onLibrarySelected: (LibraryUiModel) -> Unit, onMediaSelected: (MediaUiModel) -> Unit, modifier: Modifier = Modifier, ) { diff --git a/core/src/main/java/hu/bbara/purefin/feature/browse/home/AppViewModel.kt b/core/src/main/java/hu/bbara/purefin/feature/browse/home/AppViewModel.kt index f3114760..e22684d5 100644 --- a/core/src/main/java/hu/bbara/purefin/feature/browse/home/AppViewModel.kt +++ b/core/src/main/java/hu/bbara/purefin/feature/browse/home/AppViewModel.kt @@ -16,6 +16,7 @@ import hu.bbara.purefin.navigation.NavigationManager import hu.bbara.purefin.navigation.Route import hu.bbara.purefin.navigation.SeriesDto import hu.bbara.purefin.ui.model.EpisodeUiModel +import hu.bbara.purefin.ui.model.LibraryUiModel import hu.bbara.purefin.ui.model.MediaUiModel import hu.bbara.purefin.ui.model.MovieUiModel import hu.bbara.purefin.ui.model.SeriesUiModel @@ -51,12 +52,12 @@ class AppViewModel @Inject constructor( val libraries = homeRepository.libraries.map { libraries -> libraries.map { - LibraryItem( + LibraryUiModel( id = it.id, name = it.name, type = it.type, posterUrl = it.posterUrl, - isEmpty = when(it.type) { + isEmpty = when (it.type) { LibraryKind.MOVIES -> mediaCatalogReader.movies.value.isEmpty() LibraryKind.SERIES -> mediaCatalogReader.series.value.isEmpty() } diff --git a/core/src/main/java/hu/bbara/purefin/feature/browse/home/HomeModels.kt b/core/src/main/java/hu/bbara/purefin/feature/browse/home/HomeModels.kt index 1ab2dd5e..be14cdc0 100644 --- a/core/src/main/java/hu/bbara/purefin/feature/browse/home/HomeModels.kt +++ b/core/src/main/java/hu/bbara/purefin/feature/browse/home/HomeModels.kt @@ -3,7 +3,6 @@ package hu.bbara.purefin.feature.browse.home import hu.bbara.purefin.image.ArtworkKind import hu.bbara.purefin.image.ImageUrlBuilder import hu.bbara.purefin.model.Episode -import hu.bbara.purefin.model.LibraryKind import hu.bbara.purefin.model.MediaKind import hu.bbara.purefin.model.Movie import hu.bbara.purefin.model.Series @@ -35,14 +34,6 @@ data class NextUpItem( get() = episode.synopsis } -data class LibraryItem( - val id: UUID, - val name: String, - val type: LibraryKind, - val posterUrl: String, - val isEmpty: Boolean -) - data class PosterItem( override val type: MediaKind, val movie: Movie? = null, diff --git a/core/src/main/java/hu/bbara/purefin/ui/model/LibraryUiModel.kt b/core/src/main/java/hu/bbara/purefin/ui/model/LibraryUiModel.kt new file mode 100644 index 00000000..18b1ba7e --- /dev/null +++ b/core/src/main/java/hu/bbara/purefin/ui/model/LibraryUiModel.kt @@ -0,0 +1,12 @@ +package hu.bbara.purefin.ui.model + +import hu.bbara.purefin.model.LibraryKind +import java.util.UUID + +data class LibraryUiModel( + val id: UUID, + val name: String, + val type: LibraryKind, + val posterUrl: String, + val isEmpty: Boolean +) \ No newline at end of file