fix: 将 MainActivity 首启标记消费移到 SideEffect
This commit is contained in:
@@ -20,6 +20,7 @@ import androidx.compose.animation.scaleOut
|
|||||||
import androidx.compose.animation.togetherWith
|
import androidx.compose.animation.togetherWith
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.SideEffect
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
@@ -193,16 +194,18 @@ open class MainActivity : BaseComposeActivity(), VariableDialog.Callback {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val startRoutes = remember {
|
val startRoutes = remember {
|
||||||
val routes = resolveInitialStartRoutes(
|
resolveInitialStartRoutes(
|
||||||
resolved = MainNavigator.resolveStartRoute(intent),
|
resolved = MainNavigator.resolveStartRoute(intent),
|
||||||
defaultToRead = OtherConfig.defaultToRead,
|
defaultToRead = OtherConfig.defaultToRead,
|
||||||
isFreshCreate = shouldApplyDefaultToRead,
|
isFreshCreate = shouldApplyDefaultToRead,
|
||||||
)
|
).toTypedArray()
|
||||||
shouldApplyDefaultToRead = false
|
|
||||||
routes.toTypedArray()
|
|
||||||
}
|
}
|
||||||
val backStack = rememberNavBackStack(*startRoutes)
|
val backStack = rememberNavBackStack(*startRoutes)
|
||||||
|
|
||||||
|
SideEffect {
|
||||||
|
shouldApplyDefaultToRead = false
|
||||||
|
}
|
||||||
|
|
||||||
LaunchedEffect(backStack) {
|
LaunchedEffect(backStack) {
|
||||||
routeEvents.collect { route ->
|
routeEvents.collect { route ->
|
||||||
MainNavigator.navigateToRoute(backStack, route)
|
MainNavigator.navigateToRoute(backStack, route)
|
||||||
|
|||||||
Reference in New Issue
Block a user