From a78df6f10a020c8e7be530a4777844a6dfcd0b3c Mon Sep 17 00:00:00 2001 From: arpitdhoundiyal Date: Mon, 2 Mar 2026 16:06:06 +0530 Subject: [PATCH] Fix ViewModel not clearing on NavigationState pop (nav3) --- .../apps/nowinandroid/core/navigation/NavigationState.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/navigation/src/main/kotlin/com/google/samples/apps/nowinandroid/core/navigation/NavigationState.kt b/core/navigation/src/main/kotlin/com/google/samples/apps/nowinandroid/core/navigation/NavigationState.kt index 864fec794..e10d4d70e 100644 --- a/core/navigation/src/main/kotlin/com/google/samples/apps/nowinandroid/core/navigation/NavigationState.kt +++ b/core/navigation/src/main/kotlin/com/google/samples/apps/nowinandroid/core/navigation/NavigationState.kt @@ -16,6 +16,7 @@ package com.google.samples.apps.nowinandroid.core.navigation +import android.util.Log import androidx.annotation.VisibleForTesting import androidx.compose.runtime.Composable import androidx.compose.runtime.derivedStateOf @@ -84,11 +85,16 @@ class NavigationState( fun NavigationState.toEntries( entryProvider: (NavKey) -> NavEntry, ): SnapshotStateList> { + Log.d("NAV_CHECK", "TopStack: $topLevelStack") val decoratedEntries = subStacks.mapValues { (_, stack) -> + val decorators = listOf( rememberSaveableStateHolderNavEntryDecorator(), - rememberViewModelStoreNavEntryDecorator(), + rememberViewModelStoreNavEntryDecorator( + removeViewModelStoreOnPop = { true } + ), ) + rememberDecoratedNavEntries( backStack = stack, entryDecorators = decorators, @@ -100,3 +106,4 @@ fun NavigationState.toEntries( .flatMap { decoratedEntries[it] ?: emptyList() } .toMutableStateList() } +