diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/home/HomeScreen.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/home/HomeScreen.kt index e549850b..0b1fe5b5 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/home/HomeScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/home/HomeScreen.kt @@ -404,6 +404,11 @@ fun HomeScreen( val enabledHomeItems = remember(homeSettingsUiState.items) { homeSettingsUiState.items.filter { it.enabled } } + val hasRenderableCollectionRows = remember(enabledHomeItems, collectionsMap) { + enabledHomeItems.any { item -> + item.isCollection && collectionsMap[item.key] != null + } + } BoxWithConstraints(modifier = modifier.fillMaxSize()) { val homeSectionPadding = homeSectionHorizontalPaddingForWidth(maxWidth.value) @@ -466,7 +471,7 @@ fun HomeScreen( } when { - addonsUiState.addons.none { it.manifest != null } -> { + addonsUiState.addons.none { it.manifest != null } && !hasRenderableCollectionRows -> { if (continueWatchingPreferences.isVisible && continueWatchingItems.isNotEmpty()) { item { HomeContinueWatchingSection( @@ -491,7 +496,7 @@ fun HomeScreen( } } - homeUiState.isLoading && homeUiState.sections.isEmpty() -> { + homeUiState.isLoading && homeUiState.sections.isEmpty() && !hasRenderableCollectionRows -> { if (continueWatchingPreferences.isVisible && continueWatchingItems.isNotEmpty()) { item { HomeContinueWatchingSection( @@ -513,7 +518,8 @@ fun HomeScreen( } homeUiState.sections.isEmpty() && homeUiState.heroItems.isEmpty() && - (!continueWatchingPreferences.isVisible || continueWatchingItems.isEmpty()) -> { + (!continueWatchingPreferences.isVisible || continueWatchingItems.isEmpty()) && + !hasRenderableCollectionRows -> { item { if (networkStatusUiState.isOfflineLike) { NuvioNetworkOfflineCard( diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SettingsScreen.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SettingsScreen.kt index 45a52feb..3cb0a92a 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SettingsScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SettingsScreen.kt @@ -58,6 +58,7 @@ import com.nuvio.app.features.details.MetaScreenSettingsRepository import com.nuvio.app.features.details.MetaScreenSettingsUiState import com.nuvio.app.core.ui.PosterCardStyleRepository import com.nuvio.app.core.ui.PosterCardStyleUiState +import com.nuvio.app.features.collection.CollectionRepository import com.nuvio.app.features.home.HomeCatalogSettingsItem import com.nuvio.app.features.home.HomeCatalogSettingsRepository import com.nuvio.app.features.mdblist.MdbListSettings @@ -160,6 +161,7 @@ fun SettingsScreen( HomeCatalogSettingsRepository.snapshot() HomeCatalogSettingsRepository.uiState }.collectAsStateWithLifecycle() + val collections by CollectionRepository.collections.collectAsStateWithLifecycle() val metaScreenSettingsUiState by remember { MetaScreenSettingsRepository.ensureLoaded() MetaScreenSettingsRepository.uiState @@ -182,6 +184,14 @@ fun SettingsScreen( HomeCatalogSettingsRepository.syncCatalogs(addonsUiState.addons) } + LaunchedEffect(Unit) { + CollectionRepository.initialize() + } + + LaunchedEffect(collections) { + HomeCatalogSettingsRepository.syncCollections(collections) + } + var currentPage by rememberSaveable { mutableStateOf(SettingsPage.Root.name) } val page = remember(currentPage) { SettingsPage.valueOf(currentPage) } val previousPage = page.previousPage()