diff --git a/android/src/main/java/com/tailscale/ipn/MainActivity.kt b/android/src/main/java/com/tailscale/ipn/MainActivity.kt index bea2925..7a68160 100644 --- a/android/src/main/java/com/tailscale/ipn/MainActivity.kt +++ b/android/src/main/java/com/tailscale/ipn/MainActivity.kt @@ -365,11 +365,23 @@ class MainActivity : ComponentActivity() { override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) if (intent.getBooleanExtra(START_AT_ROOT, false)) { - if (this::navController.isInitialized) { - navController.popBackStack(route = "main", inclusive = false) - } + if (this::navController.isInitialized) { + val previousEntry = navController.previousBackStackEntry + TSLog.d("MainActivity", "onNewIntent: previousBackStackEntry = $previousEntry") + + if (previousEntry != null) { + navController.popBackStack(route = "main", inclusive = false) + } else { + TSLog.e("MainActivity", "onNewIntent: No previous back stack entry, navigating directly to 'main'") + navController.navigate("main") { + popUpTo("main") { inclusive = true } + } + } + } } - } +} + + private fun login(urlString: String) { // Launch coroutine to listen for state changes. When the user completes login, relaunch