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 864fec7940..c3326569e2 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 @@ -85,10 +85,14 @@ fun NavigationState.toEntries( entryProvider: (NavKey) -> NavEntry, ): SnapshotStateList> { val decoratedEntries = subStacks.mapValues { (_, stack) -> + val decorators = listOf( rememberSaveableStateHolderNavEntryDecorator(), - rememberViewModelStoreNavEntryDecorator(), + rememberViewModelStoreNavEntryDecorator( + removeViewModelStoreOnPop = { true } + ), ) + rememberDecoratedNavEntries( backStack = stack, entryDecorators = decorators, @@ -100,3 +104,4 @@ fun NavigationState.toEntries( .flatMap { decoratedEntries[it] ?: emptyList() } .toMutableStateList() } + diff --git a/feature/topic/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/impl/TopicViewModel.kt b/feature/topic/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/impl/TopicViewModel.kt index f604eb65b5..a5202a9332 100644 --- a/feature/topic/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/impl/TopicViewModel.kt +++ b/feature/topic/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/impl/TopicViewModel.kt @@ -16,6 +16,7 @@ package com.google.samples.apps.nowinandroid.feature.topic.impl +import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.samples.apps.nowinandroid.core.common.result.Result @@ -46,6 +47,7 @@ class TopicViewModel @AssistedInject constructor( userNewsResourceRepository: UserNewsResourceRepository, @Assisted val topicId: String, ) : ViewModel() { + val topicUiState: StateFlow = topicUiState( topicId = topicId, userDataRepository = userDataRepository, @@ -71,6 +73,7 @@ class TopicViewModel @AssistedInject constructor( fun followTopicToggle(followed: Boolean) { viewModelScope.launch { userDataRepository.setTopicIdFollowed(topicId, followed) + } } @@ -86,6 +89,7 @@ class TopicViewModel @AssistedInject constructor( } } + @AssistedFactory interface Factory { fun create( diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fbe070c1a8..e8786d8b1b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,8 +2,8 @@ accompanist = "0.37.0" androidDesugarJdkLibs = "2.1.4" # AGP and tools should be updated together -androidGradlePlugin = "9.0.0" -androidTools = "32.0.0" +androidGradlePlugin = "9.0.1" +androidTools = "32.0.1" androidxActivity = "1.9.3" androidxAppCompat = "1.7.0" androidxBrowser = "1.8.0"