mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-05-17 15:32:01 +00:00
ref: homescreen now treats collections as a valid content
This commit is contained in:
parent
b3a1589296
commit
c477e7e217
2 changed files with 19 additions and 3 deletions
|
|
@ -404,6 +404,11 @@ fun HomeScreen(
|
||||||
val enabledHomeItems = remember(homeSettingsUiState.items) {
|
val enabledHomeItems = remember(homeSettingsUiState.items) {
|
||||||
homeSettingsUiState.items.filter { it.enabled }
|
homeSettingsUiState.items.filter { it.enabled }
|
||||||
}
|
}
|
||||||
|
val hasRenderableCollectionRows = remember(enabledHomeItems, collectionsMap) {
|
||||||
|
enabledHomeItems.any { item ->
|
||||||
|
item.isCollection && collectionsMap[item.key] != null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BoxWithConstraints(modifier = modifier.fillMaxSize()) {
|
BoxWithConstraints(modifier = modifier.fillMaxSize()) {
|
||||||
val homeSectionPadding = homeSectionHorizontalPaddingForWidth(maxWidth.value)
|
val homeSectionPadding = homeSectionHorizontalPaddingForWidth(maxWidth.value)
|
||||||
|
|
@ -466,7 +471,7 @@ fun HomeScreen(
|
||||||
}
|
}
|
||||||
|
|
||||||
when {
|
when {
|
||||||
addonsUiState.addons.none { it.manifest != null } -> {
|
addonsUiState.addons.none { it.manifest != null } && !hasRenderableCollectionRows -> {
|
||||||
if (continueWatchingPreferences.isVisible && continueWatchingItems.isNotEmpty()) {
|
if (continueWatchingPreferences.isVisible && continueWatchingItems.isNotEmpty()) {
|
||||||
item {
|
item {
|
||||||
HomeContinueWatchingSection(
|
HomeContinueWatchingSection(
|
||||||
|
|
@ -491,7 +496,7 @@ fun HomeScreen(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
homeUiState.isLoading && homeUiState.sections.isEmpty() -> {
|
homeUiState.isLoading && homeUiState.sections.isEmpty() && !hasRenderableCollectionRows -> {
|
||||||
if (continueWatchingPreferences.isVisible && continueWatchingItems.isNotEmpty()) {
|
if (continueWatchingPreferences.isVisible && continueWatchingItems.isNotEmpty()) {
|
||||||
item {
|
item {
|
||||||
HomeContinueWatchingSection(
|
HomeContinueWatchingSection(
|
||||||
|
|
@ -513,7 +518,8 @@ fun HomeScreen(
|
||||||
}
|
}
|
||||||
|
|
||||||
homeUiState.sections.isEmpty() && homeUiState.heroItems.isEmpty() &&
|
homeUiState.sections.isEmpty() && homeUiState.heroItems.isEmpty() &&
|
||||||
(!continueWatchingPreferences.isVisible || continueWatchingItems.isEmpty()) -> {
|
(!continueWatchingPreferences.isVisible || continueWatchingItems.isEmpty()) &&
|
||||||
|
!hasRenderableCollectionRows -> {
|
||||||
item {
|
item {
|
||||||
if (networkStatusUiState.isOfflineLike) {
|
if (networkStatusUiState.isOfflineLike) {
|
||||||
NuvioNetworkOfflineCard(
|
NuvioNetworkOfflineCard(
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ import com.nuvio.app.features.details.MetaScreenSettingsRepository
|
||||||
import com.nuvio.app.features.details.MetaScreenSettingsUiState
|
import com.nuvio.app.features.details.MetaScreenSettingsUiState
|
||||||
import com.nuvio.app.core.ui.PosterCardStyleRepository
|
import com.nuvio.app.core.ui.PosterCardStyleRepository
|
||||||
import com.nuvio.app.core.ui.PosterCardStyleUiState
|
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.HomeCatalogSettingsItem
|
||||||
import com.nuvio.app.features.home.HomeCatalogSettingsRepository
|
import com.nuvio.app.features.home.HomeCatalogSettingsRepository
|
||||||
import com.nuvio.app.features.mdblist.MdbListSettings
|
import com.nuvio.app.features.mdblist.MdbListSettings
|
||||||
|
|
@ -160,6 +161,7 @@ fun SettingsScreen(
|
||||||
HomeCatalogSettingsRepository.snapshot()
|
HomeCatalogSettingsRepository.snapshot()
|
||||||
HomeCatalogSettingsRepository.uiState
|
HomeCatalogSettingsRepository.uiState
|
||||||
}.collectAsStateWithLifecycle()
|
}.collectAsStateWithLifecycle()
|
||||||
|
val collections by CollectionRepository.collections.collectAsStateWithLifecycle()
|
||||||
val metaScreenSettingsUiState by remember {
|
val metaScreenSettingsUiState by remember {
|
||||||
MetaScreenSettingsRepository.ensureLoaded()
|
MetaScreenSettingsRepository.ensureLoaded()
|
||||||
MetaScreenSettingsRepository.uiState
|
MetaScreenSettingsRepository.uiState
|
||||||
|
|
@ -182,6 +184,14 @@ fun SettingsScreen(
|
||||||
HomeCatalogSettingsRepository.syncCatalogs(addonsUiState.addons)
|
HomeCatalogSettingsRepository.syncCatalogs(addonsUiState.addons)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LaunchedEffect(Unit) {
|
||||||
|
CollectionRepository.initialize()
|
||||||
|
}
|
||||||
|
|
||||||
|
LaunchedEffect(collections) {
|
||||||
|
HomeCatalogSettingsRepository.syncCollections(collections)
|
||||||
|
}
|
||||||
|
|
||||||
var currentPage by rememberSaveable { mutableStateOf(SettingsPage.Root.name) }
|
var currentPage by rememberSaveable { mutableStateOf(SettingsPage.Root.name) }
|
||||||
val page = remember(currentPage) { SettingsPage.valueOf(currentPage) }
|
val page = remember(currentPage) { SettingsPage.valueOf(currentPage) }
|
||||||
val previousPage = page.previousPage()
|
val previousPage = page.previousPage()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue