diff --git a/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt b/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt index dace5d60..c7b12bfc 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt @@ -150,7 +150,6 @@ class MainActivity : AppCompatActivity() { } } viewModel.appStart() - val requestedDestination = this.intent?.let(::extractDestination) setContent { val appPreferences by userPreferencesDataStore.data.collectAsState(null) appPreferences?.let { appPreferences -> @@ -257,6 +256,10 @@ class MainActivity : AppCompatActivity() { } if (showContent) { + val requestedDestination = + remember(intent) { + intent?.let(::extractDestination) + } ApplicationContent( user = current.user, server = current.server, @@ -344,6 +347,7 @@ class MainActivity : AppCompatActivity() { override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) Timber.v("onNewIntent") + setIntent(intent) extractDestination(intent)?.let { navigationManager.replace(it) } diff --git a/app/src/main/java/com/github/damontecres/wholphin/services/NavigationManager.kt b/app/src/main/java/com/github/damontecres/wholphin/services/NavigationManager.kt index 63a85cef..a1754298 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/services/NavigationManager.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/services/NavigationManager.kt @@ -75,7 +75,11 @@ class NavigationManager while (backStack.size > 1) { backStack.removeLastOrNull() } - backStack[0] = destination + if (backStack.isEmpty()) { + backStack.add(0, destination) + } else { + backStack[0] = destination + } log() }