From 9779074997f21b751c9b1793b33dee385251111f Mon Sep 17 00:00:00 2001 From: Don Turner Date: Fri, 3 May 2024 15:49:11 +0100 Subject: [PATCH] Remove Interests2PaneViewModel as it was overkill for holding a single string value Change-Id: I4767578028b55c2bc7b1763bdeef87345b9fbf06 --- .../interests2pane/Interests2PaneViewModel.kt | 35 ------------------- .../InterestsListDetailScreen.kt | 14 ++++---- 2 files changed, 6 insertions(+), 43 deletions(-) delete mode 100644 app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt deleted file mode 100644 index d618c2d47..000000000 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2024 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.samples.apps.nowinandroid.ui.interests2pane - -import androidx.lifecycle.SavedStateHandle -import androidx.lifecycle.ViewModel -import com.google.samples.apps.nowinandroid.feature.interests.navigation.TOPIC_ID_ARG -import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.StateFlow -import javax.inject.Inject - -@HiltViewModel -class Interests2PaneViewModel @Inject constructor( - private val savedStateHandle: SavedStateHandle, -) : ViewModel() { - val selectedTopicId: StateFlow = savedStateHandle.getStateFlow(TOPIC_ID_ARG, null) - - fun onTopicClick(topicId: String?) { - savedStateHandle[TOPIC_ID_ARG] = topicId - } -} diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt index 397c947ef..0b6eb653e 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt @@ -26,8 +26,9 @@ import androidx.compose.material3.adaptive.navigation.rememberListDetailPaneScaf import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue -import androidx.hilt.navigation.compose.hiltViewModel -import androidx.lifecycle.compose.collectAsStateWithLifecycle +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable @@ -39,7 +40,6 @@ import com.google.samples.apps.nowinandroid.feature.topic.navigation.navigateToT import com.google.samples.apps.nowinandroid.feature.topic.navigation.topicScreen import kotlinx.serialization.Serializable - @Serializable object TopicPlaceholderDestination @Serializable object DetailPaneNavHostDestination @@ -50,13 +50,11 @@ fun NavGraphBuilder.interestsListDetailScreen() { } @Composable -internal fun InterestsListDetailScreen( - viewModel: Interests2PaneViewModel = hiltViewModel(), -) { - val selectedTopicId by viewModel.selectedTopicId.collectAsStateWithLifecycle() +internal fun InterestsListDetailScreen() { + var selectedTopicId : String? by rememberSaveable { mutableStateOf(null) } InterestsListDetailScreen( selectedTopicId = selectedTopicId, - onTopicClick = viewModel::onTopicClick, + onTopicClick = { topicId -> selectedTopicId = topicId }, ) }