Selaa lähdekoodia

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

* MangaScreen: Fix close in action mode exists from screen

* L
AntsyLich 1 vuosi sitten
vanhempi
commit
3006604922

+ 12 - 14
app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt

@@ -266,13 +266,12 @@ private fun MangaScreenSmallImpl(
 ) {
     val chapterListState = rememberLazyListState()
 
-    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,
+        )
     }
 
     val internalOnBackPressed = {
@@ -520,13 +519,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,
+        )
     }
 
     val insetPadding = WindowInsets.systemBars.only(WindowInsetsSides.Horizontal).asPaddingValues()

+ 5 - 0
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
@@ -1052,6 +1053,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()) {