diff --git a/app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt b/app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt index 64ef64360..32090f2fa 100644 --- a/app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt +++ b/app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt @@ -72,7 +72,6 @@ fun UpcomingScreenContent( setSelectedYearMonth = setSelectedYearMonth, onClickDay = { onClickDay(it, 0) }, onClickUpcoming = onClickUpcoming, - mangaCountMap = state.mangaCountMap, ) } else { UpcomingScreenSmallImpl( @@ -84,7 +83,6 @@ fun UpcomingScreenContent( setSelectedYearMonth = setSelectedYearMonth, onClickDay = { onClickDay(it, 1) }, onClickUpcoming = onClickUpcoming, - mangaCountMap = state.mangaCountMap, ) } } @@ -146,7 +144,6 @@ private fun UpcomingScreenSmallImpl( setSelectedYearMonth: (YearMonth) -> Unit, onClickDay: (LocalDate) -> Unit, onClickUpcoming: (manga: Manga) -> Unit, - mangaCountMap: ImmutableMap, ) { FastScrollLazyColumn( contentPadding = paddingValues, @@ -178,7 +175,8 @@ private fun UpcomingScreenSmallImpl( ) } is UpcomingUIModel.Header -> { - val mangaCount = mangaCountMap[item.date] ?: 0 + val mangaCount = items.filterIsInstance() + .count { it.manga.expectedNextUpdate?.toLocalDate() == item.date } DateHeading( date = item.date, @@ -200,7 +198,6 @@ private fun UpcomingScreenLargeImpl( setSelectedYearMonth: (YearMonth) -> Unit, onClickDay: (LocalDate) -> Unit, onClickUpcoming: (manga: Manga) -> Unit, - mangaCountMap: ImmutableMap, ) { TwoPanelBox( modifier = Modifier.padding(paddingValues), @@ -232,7 +229,8 @@ private fun UpcomingScreenLargeImpl( ) } is UpcomingUIModel.Header -> { - val mangaCount = mangaCountMap[item.date] ?: 0 + val mangaCount = items.filterIsInstance() + .count { it.manga.expectedNextUpdate?.toLocalDate() == item.date } DateHeading( date = item.date, diff --git a/app/src/main/java/mihon/feature/upcoming/UpcomingScreenModel.kt b/app/src/main/java/mihon/feature/upcoming/UpcomingScreenModel.kt index 0992448a0..b404a7f96 100644 --- a/app/src/main/java/mihon/feature/upcoming/UpcomingScreenModel.kt +++ b/app/src/main/java/mihon/feature/upcoming/UpcomingScreenModel.kt @@ -28,17 +28,13 @@ class UpcomingScreenModel( init { screenModelScope.launch { - getUpcomingManga.subscribe().collectLatest { mangaList -> + getUpcomingManga.subscribe().collectLatest { mutableState.update { state -> - val upcomingItems = mangaList.toUpcomingUIModels() - val mangaCountMap = mangaList.groupBy { it.expectedNextUpdate?.toLocalDate() ?: LocalDate.MAX } - .mapValues { it.value.size } - .toImmutableMap() + val upcomingItems = it.toUpcomingUIModels() state.copy( items = upcomingItems, - events = mangaList.toEvents(), + events = it.toEvents(), headerIndexes = upcomingItems.getHeaderIndexes(), - mangaCountMap = mangaCountMap ) } } @@ -87,6 +83,5 @@ class UpcomingScreenModel( val items: ImmutableList = persistentListOf(), val events: ImmutableMap = persistentMapOf(), val headerIndexes: ImmutableMap = persistentMapOf(), - val mangaCountMap: ImmutableMap = persistentMapOf(), ) }