diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt index 8a4ac7279..fcb308ffc 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt @@ -17,7 +17,10 @@ import androidx.appcompat.app.AppCompatDelegate import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material.MaterialTheme import androidx.compose.material.Surface +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.core.os.LocaleListCompat @@ -61,6 +64,9 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + val uri = intent?.data?.toString() + val startingPage = uriToRoute(uri) + LocalPreferences.migrateSingleUserPrefs() val language = LocalPreferences.getPreferredLanguage() if (language.isNotBlank()) { @@ -83,6 +89,17 @@ class MainActivity : AppCompatActivity() { 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() @@ -95,15 +112,6 @@ class MainActivity : AppCompatActivity() { connectivityManager.requestNetwork(networkRequest, networkCallback) 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)