diff --git a/app/app/src/main/kotlin/com/hedvig/android/app/ui/HedvigAppState.kt b/app/app/src/main/kotlin/com/hedvig/android/app/ui/HedvigAppState.kt index 4be511fee9..843328d3c8 100644 --- a/app/app/src/main/kotlin/com/hedvig/android/app/ui/HedvigAppState.kt +++ b/app/app/src/main/kotlin/com/hedvig/android/app/ui/HedvigAppState.kt @@ -34,6 +34,7 @@ import com.hedvig.android.feature.insurances.navigation.insurancesCrossSellBotto import com.hedvig.android.feature.login.navigation.LoginDestination import com.hedvig.android.feature.payments.navigation.PaymentsDestination import com.hedvig.android.feature.profile.navigation.ProfileDestination +import com.hedvig.android.feature.profile.navigation.destinationToExcludeFromSavingState import com.hedvig.android.feature.profile.navigation.profileBottomNavPermittedDestinations import com.hedvig.android.feature.travelcertificate.navigation.travelCertificateCrossSellBottomSheetPermittingDestinations import com.hedvig.android.featureflags.FeatureManager @@ -196,6 +197,7 @@ internal class HedvigAppState( */ fun navigateToLoggedIn() { navController.navigate(RootGraph) { + restoreState = true typedPopUpTo { inclusive = true } @@ -203,16 +205,20 @@ internal class HedvigAppState( } fun navigateToLoggedOut() { + + val isLoggingOutFromProfile = navController.currentDestination + ?.typedHasRoute(destinationToExcludeFromSavingState) ?: false + for (entry in TopLevelGraph.entries) { navController.typedClearBackStack(entry.destination) } navController.navigate(LoginDestination) { typedPopUpTo { inclusive = true + saveState = !isLoggingOutFromProfile } } } - val darkTheme: Boolean @Composable get() { diff --git a/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/navigation/ProfileDestinations.kt b/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/navigation/ProfileDestinations.kt index f52864bac1..f80825f104 100644 --- a/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/navigation/ProfileDestinations.kt +++ b/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/navigation/ProfileDestinations.kt @@ -43,3 +43,9 @@ internal sealed interface SettingsDestinations { val profileBottomNavPermittedDestinations: List> = listOf( ProfileDestinations.Eurobonus::class, ) + +/* +* Not saving navigation state when explicitly logging out from Profile +*/ +val destinationToExcludeFromSavingState: KClass = ProfileDestination.Profile::class +