diff --git a/app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt b/app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt index 520c5fd17..9f6465c67 100644 --- a/app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt +++ b/app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt @@ -41,6 +41,7 @@ import tachiyomi.presentation.core.components.TwoPanelBox import tachiyomi.presentation.core.components.material.Scaffold import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.i18n.stringResource +import tachiyomi.presentation.core.screens.LoadingScreen import java.time.LocalDate import java.time.YearMonth @@ -63,6 +64,7 @@ fun UpcomingScreenContent( val headerIndexes = if (state.isShowingUpdatingMangas) state.updatingHeaderIndexes else state.headerIndexes val items = if (state.isShowingUpdatingMangas) state.updatingItems else state.items val events = if (state.isShowingUpdatingMangas) state.updatingEvents else state.events + val isLoading = if (state.isShowingUpdatingMangas) state.isLoadingUpdating else state.isLoadingUpcoming // KMK <-- val onClickDay: (LocalDate, Int) -> Unit = { date, offset -> @@ -85,6 +87,12 @@ fun UpcomingScreenContent( }, modifier = modifier, ) { paddingValues -> + // KMK --> + if (isLoading) { + LoadingScreen(modifier = Modifier.padding(paddingValues)) + return@Scaffold + } + // KMK <-- if (isTabletUi()) { UpcomingScreenLargeImpl( listState = listState, diff --git a/app/src/main/java/mihon/feature/upcoming/UpcomingScreenModel.kt b/app/src/main/java/mihon/feature/upcoming/UpcomingScreenModel.kt index e143e3f83..f7a53b0cc 100644 --- a/app/src/main/java/mihon/feature/upcoming/UpcomingScreenModel.kt +++ b/app/src/main/java/mihon/feature/upcoming/UpcomingScreenModel.kt @@ -36,6 +36,9 @@ class UpcomingScreenModel( mutableState.update { state -> val upcomingItems = it.toUpcomingUIModels() state.copy( + // KMK --> + isLoadingUpcoming = false, + // KMK <-- items = upcomingItems, events = upcomingItems.toEvents(), headerIndexes = upcomingItems.getHeaderIndexes(), @@ -48,6 +51,7 @@ class UpcomingScreenModel( mutableState.update { state -> val updatingItems = getUpcomingManga.updatingMangas().toUpcomingUIModels() state.copy( + isLoadingUpdating = false, updatingItems = updatingItems, updatingEvents = updatingItems.toEvents(), updatingHeaderIndexes = updatingItems.getHeaderIndexes(), @@ -123,10 +127,12 @@ class UpcomingScreenModel( val events: ImmutableMap = persistentMapOf(), val headerIndexes: ImmutableMap = persistentMapOf(), // KMK --> + val isLoadingUpcoming: Boolean = true, val isShowingUpdatingMangas: Boolean = false, val updatingItems: ImmutableList = persistentListOf(), val updatingEvents: ImmutableMap = persistentMapOf(), val updatingHeaderIndexes: ImmutableMap = persistentMapOf(), + val isLoadingUpdating: Boolean = true, // KMK <-- ) }