diff --git a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt index a0d556948..cdbd01869 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt @@ -330,18 +330,17 @@ private fun MangaScreenSmallImpl( ) { val chapterListState = rememberLazyListState() - val chapters = remember(state) { state.processedChapters } - val listItem = remember(state) { state.chapterListItems } + val (chapters, listItem, isAnySelected) = remember(state) { + Triple( + first = state.processedChapters, + second = state.chapterListItems, + third = state.isAnySelected, + ) + } // SY --> val metadataDescription = metadataDescription(state.source) // SY <-- - val isAnySelected by remember { - derivedStateOf { - chapters.fastAny { it.selected } - } - } - val internalOnBackPressed = { if (isAnySelected) { onAllChapterSelected(false) @@ -660,13 +659,12 @@ fun MangaScreenLargeImpl( val layoutDirection = LocalLayoutDirection.current val density = LocalDensity.current - val chapters = remember(state) { state.processedChapters } - val listItem = remember(state) { state.chapterListItems } - - val isAnySelected by remember { - derivedStateOf { - chapters.fastAny { it.selected } - } + val (chapters, listItem, isAnySelected) = remember(state) { + Triple( + first = state.processedChapters, + second = state.chapterListItems, + third = state.isAnySelected, + ) } // SY --> diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index a10bc09e4..76b8e000d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -6,6 +6,7 @@ import androidx.compose.material3.SnackbarResult import androidx.compose.runtime.Immutable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf +import androidx.compose.ui.util.fastAny import cafe.adriel.voyager.core.model.StateScreenModel import cafe.adriel.voyager.core.model.screenModelScope import eu.kanade.core.preference.asState @@ -1611,6 +1612,10 @@ class MangaScreenModel( chapters.applyFilters(manga).toList() } + val isAnySelected by lazy { + chapters.fastAny { it.selected } + } + val chapterListItems by lazy { processedChapters.insertSeparators { before, after -> val (lowerChapter, higherChapter) = if (manga.sortDescending()) {