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:
parent
59c5484a15
commit
0851ee98bd
@ -330,18 +330,17 @@ private fun MangaScreenSmallImpl(
|
|||||||
) {
|
) {
|
||||||
val chapterListState = rememberLazyListState()
|
val chapterListState = rememberLazyListState()
|
||||||
|
|
||||||
val chapters = remember(state) { state.processedChapters }
|
val (chapters, listItem, isAnySelected) = remember(state) {
|
||||||
val listItem = remember(state) { state.chapterListItems }
|
Triple(
|
||||||
|
first = state.processedChapters,
|
||||||
|
second = state.chapterListItems,
|
||||||
|
third = state.isAnySelected,
|
||||||
|
)
|
||||||
|
}
|
||||||
// SY -->
|
// SY -->
|
||||||
val metadataDescription = metadataDescription(state.source)
|
val metadataDescription = metadataDescription(state.source)
|
||||||
// SY <--
|
// SY <--
|
||||||
|
|
||||||
val isAnySelected by remember {
|
|
||||||
derivedStateOf {
|
|
||||||
chapters.fastAny { it.selected }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val internalOnBackPressed = {
|
val internalOnBackPressed = {
|
||||||
if (isAnySelected) {
|
if (isAnySelected) {
|
||||||
onAllChapterSelected(false)
|
onAllChapterSelected(false)
|
||||||
@ -660,13 +659,12 @@ fun MangaScreenLargeImpl(
|
|||||||
val layoutDirection = LocalLayoutDirection.current
|
val layoutDirection = LocalLayoutDirection.current
|
||||||
val density = LocalDensity.current
|
val density = LocalDensity.current
|
||||||
|
|
||||||
val chapters = remember(state) { state.processedChapters }
|
val (chapters, listItem, isAnySelected) = remember(state) {
|
||||||
val listItem = remember(state) { state.chapterListItems }
|
Triple(
|
||||||
|
first = state.processedChapters,
|
||||||
val isAnySelected by remember {
|
second = state.chapterListItems,
|
||||||
derivedStateOf {
|
third = state.isAnySelected,
|
||||||
chapters.fastAny { it.selected }
|
)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
|
@ -6,6 +6,7 @@ import androidx.compose.material3.SnackbarResult
|
|||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
|
import androidx.compose.ui.util.fastAny
|
||||||
import cafe.adriel.voyager.core.model.StateScreenModel
|
import cafe.adriel.voyager.core.model.StateScreenModel
|
||||||
import cafe.adriel.voyager.core.model.screenModelScope
|
import cafe.adriel.voyager.core.model.screenModelScope
|
||||||
import eu.kanade.core.preference.asState
|
import eu.kanade.core.preference.asState
|
||||||
@ -1611,6 +1612,10 @@ class MangaScreenModel(
|
|||||||
chapters.applyFilters(manga).toList()
|
chapters.applyFilters(manga).toList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val isAnySelected by lazy {
|
||||||
|
chapters.fastAny { it.selected }
|
||||||
|
}
|
||||||
|
|
||||||
val chapterListItems by lazy {
|
val chapterListItems by lazy {
|
||||||
processedChapters.insertSeparators { before, after ->
|
processedChapters.insertSeparators { before, after ->
|
||||||
val (lowerChapter, higherChapter) = if (manga.sortDescending()) {
|
val (lowerChapter, higherChapter) = if (manga.sortDescending()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user