Revert "Move to ScreenModel"

This reverts commit b61a6adeb76cd49805f6fa9d731b55e7643204b6.
This commit is contained in:
AntsyLich 2024-10-12 08:05:58 +06:00
parent b61a6adeb7
commit 6e5d498ea5
No known key found for this signature in database
2 changed files with 7 additions and 14 deletions

View File

@ -72,7 +72,6 @@ fun UpcomingScreenContent(
setSelectedYearMonth = setSelectedYearMonth, setSelectedYearMonth = setSelectedYearMonth,
onClickDay = { onClickDay(it, 0) }, onClickDay = { onClickDay(it, 0) },
onClickUpcoming = onClickUpcoming, onClickUpcoming = onClickUpcoming,
mangaCountMap = state.mangaCountMap,
) )
} else { } else {
UpcomingScreenSmallImpl( UpcomingScreenSmallImpl(
@ -84,7 +83,6 @@ fun UpcomingScreenContent(
setSelectedYearMonth = setSelectedYearMonth, setSelectedYearMonth = setSelectedYearMonth,
onClickDay = { onClickDay(it, 1) }, onClickDay = { onClickDay(it, 1) },
onClickUpcoming = onClickUpcoming, onClickUpcoming = onClickUpcoming,
mangaCountMap = state.mangaCountMap,
) )
} }
} }
@ -146,7 +144,6 @@ private fun UpcomingScreenSmallImpl(
setSelectedYearMonth: (YearMonth) -> Unit, setSelectedYearMonth: (YearMonth) -> Unit,
onClickDay: (LocalDate) -> Unit, onClickDay: (LocalDate) -> Unit,
onClickUpcoming: (manga: Manga) -> Unit, onClickUpcoming: (manga: Manga) -> Unit,
mangaCountMap: ImmutableMap<LocalDate, Int>,
) { ) {
FastScrollLazyColumn( FastScrollLazyColumn(
contentPadding = paddingValues, contentPadding = paddingValues,
@ -178,7 +175,8 @@ private fun UpcomingScreenSmallImpl(
) )
} }
is UpcomingUIModel.Header -> { is UpcomingUIModel.Header -> {
val mangaCount = mangaCountMap[item.date] ?: 0 val mangaCount = items.filterIsInstance<UpcomingUIModel.Item>()
.count { it.manga.expectedNextUpdate?.toLocalDate() == item.date }
DateHeading( DateHeading(
date = item.date, date = item.date,
@ -200,7 +198,6 @@ private fun UpcomingScreenLargeImpl(
setSelectedYearMonth: (YearMonth) -> Unit, setSelectedYearMonth: (YearMonth) -> Unit,
onClickDay: (LocalDate) -> Unit, onClickDay: (LocalDate) -> Unit,
onClickUpcoming: (manga: Manga) -> Unit, onClickUpcoming: (manga: Manga) -> Unit,
mangaCountMap: ImmutableMap<LocalDate, Int>,
) { ) {
TwoPanelBox( TwoPanelBox(
modifier = Modifier.padding(paddingValues), modifier = Modifier.padding(paddingValues),
@ -232,7 +229,8 @@ private fun UpcomingScreenLargeImpl(
) )
} }
is UpcomingUIModel.Header -> { is UpcomingUIModel.Header -> {
val mangaCount = mangaCountMap[item.date] ?: 0 val mangaCount = items.filterIsInstance<UpcomingUIModel.Item>()
.count { it.manga.expectedNextUpdate?.toLocalDate() == item.date }
DateHeading( DateHeading(
date = item.date, date = item.date,

View File

@ -28,17 +28,13 @@ class UpcomingScreenModel(
init { init {
screenModelScope.launch { screenModelScope.launch {
getUpcomingManga.subscribe().collectLatest { mangaList -> getUpcomingManga.subscribe().collectLatest {
mutableState.update { state -> mutableState.update { state ->
val upcomingItems = mangaList.toUpcomingUIModels() val upcomingItems = it.toUpcomingUIModels()
val mangaCountMap = mangaList.groupBy { it.expectedNextUpdate?.toLocalDate() ?: LocalDate.MAX }
.mapValues { it.value.size }
.toImmutableMap()
state.copy( state.copy(
items = upcomingItems, items = upcomingItems,
events = mangaList.toEvents(), events = it.toEvents(),
headerIndexes = upcomingItems.getHeaderIndexes(), headerIndexes = upcomingItems.getHeaderIndexes(),
mangaCountMap = mangaCountMap
) )
} }
} }
@ -87,6 +83,5 @@ class UpcomingScreenModel(
val items: ImmutableList<UpcomingUIModel> = persistentListOf(), val items: ImmutableList<UpcomingUIModel> = persistentListOf(),
val events: ImmutableMap<LocalDate, Int> = persistentMapOf(), val events: ImmutableMap<LocalDate, Int> = persistentMapOf(),
val headerIndexes: ImmutableMap<LocalDate, Int> = persistentMapOf(), val headerIndexes: ImmutableMap<LocalDate, Int> = persistentMapOf(),
val mangaCountMap: ImmutableMap<LocalDate, Int> = persistentMapOf(),
) )
} }