From d73641a7e1e1b4bffaa046a03aed2cf270ebcb83 Mon Sep 17 00:00:00 2001 From: lihenggui Date: Mon, 21 Oct 2024 10:59:45 -0700 Subject: [PATCH] Declare viewmodel module in the common app module --- .../apps/nowinandroid/MainScreenViewModel.kt | 2 -- .../samples/apps/nowinandroid/di/AppModule.kt | 13 +++++++++++-- .../ui/interests2pane/Interests2PaneViewModel.kt | 2 -- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/MainScreenViewModel.kt b/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/MainScreenViewModel.kt index 5d21e5ede..ef5e40e49 100644 --- a/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/MainScreenViewModel.kt +++ b/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/MainScreenViewModel.kt @@ -26,9 +26,7 @@ import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn -import org.koin.android.annotation.KoinViewModel -@KoinViewModel class MainScreenViewModel( userDataRepository: UserDataRepository, ) : ViewModel() { diff --git a/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/di/AppModule.kt b/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/di/AppModule.kt index d551fd5b3..469e2c376 100644 --- a/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/di/AppModule.kt +++ b/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/di/AppModule.kt @@ -16,6 +16,7 @@ package com.google.samples.apps.nowinandroid.di +import com.google.samples.apps.nowinandroid.MainScreenViewModel import com.google.samples.apps.nowinandroid.core.analytics.di.AnalyticsModule import com.google.samples.apps.nowinandroid.core.data.di.dataModule import com.google.samples.apps.nowinandroid.core.database.di.databaseModule @@ -28,8 +29,10 @@ import com.google.samples.apps.nowinandroid.feature.interests.di.interestModule import com.google.samples.apps.nowinandroid.feature.search.di.searchModule import com.google.samples.apps.nowinandroid.feature.settings.di.settingsModule import com.google.samples.apps.nowinandroid.feature.topic.di.topicModule +import com.google.samples.apps.nowinandroid.ui.interests2pane.Interests2PaneViewModel import org.koin.core.annotation.ComponentScan import org.koin.core.annotation.Module +import org.koin.core.module.dsl.viewModelOf import org.koin.dsl.module import org.koin.ksp.generated.module @@ -37,7 +40,12 @@ import org.koin.ksp.generated.module @ComponentScan class AppModule -val featureModules = module { +internal val appViewModelModule = module { + viewModelOf(::MainScreenViewModel) + viewModelOf(::Interests2PaneViewModel) +} + +internal val featureModules = module { includes( forYouModule, interestModule, @@ -48,7 +56,7 @@ val featureModules = module { ) } -val appModules = module { +internal val appModules = module { includes( *commonModule().toTypedArray(), AnalyticsModule().module, @@ -58,5 +66,6 @@ val appModules = module { *networkModule().toTypedArray(), ) includes(featureModules) + includes(appViewModelModule) includes(AppModule().module) } diff --git a/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt b/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt index 69916a113..17f938be7 100644 --- a/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt +++ b/app/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt @@ -21,11 +21,9 @@ import androidx.lifecycle.ViewModel import androidx.navigation.toRoute import com.google.samples.apps.nowinandroid.feature.interests.navigation.InterestsRoute import kotlinx.coroutines.flow.StateFlow -import org.koin.android.annotation.KoinViewModel const val TOPIC_ID_KEY = "selectedTopicId" -@KoinViewModel class Interests2PaneViewModel( private val savedStateHandle: SavedStateHandle, ) : ViewModel() {