Reverts the startup redirection because navController might not be ready in the onCreate

This commit is contained in:
Vitor Pamplona
2023-07-25 08:31:50 -04:00
parent 08a2a2b428
commit cfeaccb26e
@@ -17,7 +17,10 @@ import androidx.appcompat.app.AppCompatDelegate
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.MaterialTheme import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface import androidx.compose.material.Surface
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.core.os.LocaleListCompat import androidx.core.os.LocaleListCompat
@@ -61,6 +64,9 @@ class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
val uri = intent?.data?.toString()
val startingPage = uriToRoute(uri)
LocalPreferences.migrateSingleUserPrefs() LocalPreferences.migrateSingleUserPrefs()
val language = LocalPreferences.getPreferredLanguage() val language = LocalPreferences.getPreferredLanguage()
if (language.isNotBlank()) { if (language.isNotBlank()) {
@@ -83,6 +89,17 @@ class MainActivity : AppCompatActivity() {
AccountScreen(accountStateViewModel, themeViewModel, navController) AccountScreen(accountStateViewModel, themeViewModel, navController)
} }
} }
var actionableNextPage by remember { mutableStateOf(startingPage) }
actionableNextPage?.let {
LaunchedEffect(it) {
navController.navigate(it) {
popUpTo(Route.Home.route)
launchSingleTop = true
}
}
actionableNextPage = null
}
} }
val networkRequest = NetworkRequest.Builder() val networkRequest = NetworkRequest.Builder()
@@ -95,15 +112,6 @@ class MainActivity : AppCompatActivity() {
connectivityManager.requestNetwork(networkRequest, networkCallback) connectivityManager.requestNetwork(networkRequest, networkCallback)
Client.lenient = true Client.lenient = true
val uri = intent?.data?.toString()
val startingPage = uriToRoute(uri)
if (startingPage != null) {
navController.navigate(startingPage) {
popUpTo(Route.Home.route)
launchSingleTop = true
}
}
} }
@OptIn(DelicateCoroutinesApi::class) @OptIn(DelicateCoroutinesApi::class)