Просмотр исходного кода

fix: 将 MainActivity 首启标记消费移到 SideEffect

fansan 4 месяцев назад
Родитель
Сommit
584891a84e
1 измененных файлов с 7 добавлено и 4 удалено
  1. 7 4
      app/src/main/java/io/legado/app/ui/main/MainActivity.kt

+ 7 - 4
app/src/main/java/io/legado/app/ui/main/MainActivity.kt

@@ -20,6 +20,7 @@ import androidx.compose.animation.scaleOut
 import androidx.compose.animation.togetherWith
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.SideEffect
 import androidx.compose.runtime.remember
 import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
 import androidx.lifecycle.lifecycleScope
@@ -193,16 +194,18 @@ open class MainActivity : BaseComposeActivity(), VariableDialog.Callback {
         }
 
         val startRoutes = remember {
-            val routes = resolveInitialStartRoutes(
+            resolveInitialStartRoutes(
                 resolved = MainNavigator.resolveStartRoute(intent),
                 defaultToRead = OtherConfig.defaultToRead,
                 isFreshCreate = shouldApplyDefaultToRead,
-            )
-            shouldApplyDefaultToRead = false
-            routes.toTypedArray()
+            ).toTypedArray()
         }
         val backStack = rememberNavBackStack(*startRoutes)
 
+        SideEffect {
+            shouldApplyDefaultToRead = false
+        }
+
         LaunchedEffect(backStack) {
             routeEvents.collect { route ->
                 MainNavigator.navigateToRoute(backStack, route)