MangaScreen: Fix close in action mode exists from screen (#10160)

* MangaScreen: Fix close in action mode exists from screen

* L

(cherry picked from commit 300660492271752a3f75da4f158bd9b8e049a45b)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
This commit is contained in:
AntsyLich 2023-11-22 09:08:41 +06:00 committed by Jobobby04
parent 59c5484a15
commit 0851ee98bd
2 changed files with 18 additions and 15 deletions

View File

@ -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 -->

View File

@ -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()) {