From 5fdea5ace2cae878712a131d2e5f2511b64ec3e3 Mon Sep 17 00:00:00 2001 From: lihenggui Date: Mon, 14 Oct 2024 14:53:19 -0700 Subject: [PATCH] Move settings module to use koin --- .../feature/settings/SettingsDialog.kt | 3 ++- .../feature/settings/SettingsViewModel.kt | 2 +- .../feature/settings/di/SettingModule.kt | 27 +++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/di/SettingModule.kt diff --git a/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt b/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt index e4eea7f99..9238a5b41 100644 --- a/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt +++ b/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt @@ -82,11 +82,12 @@ import nowinandroid.feature.settings.generated.resources.feature_settings_theme import nowinandroid.feature.settings.generated.resources.feature_settings_title import org.jetbrains.compose.resources.stringResource import org.jetbrains.compose.ui.tooling.preview.Preview +import org.koin.compose.viewmodel.koinViewModel @Composable fun SettingsDialog( onDismiss: () -> Unit, - viewModel: SettingsViewModel, + viewModel: SettingsViewModel = koinViewModel(), ) { val settingsUiState by viewModel.settingsUiState.collectAsStateWithLifecycle() SettingsDialog( diff --git a/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModel.kt b/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModel.kt index fc172233a..ad3005504 100644 --- a/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModel.kt +++ b/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModel.kt @@ -30,7 +30,7 @@ import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import kotlin.time.Duration.Companion.seconds -class SettingsViewModel constructor( +class SettingsViewModel( private val userDataRepository: UserDataRepository, ) : ViewModel() { val settingsUiState: StateFlow = diff --git a/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/di/SettingModule.kt b/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/di/SettingModule.kt new file mode 100644 index 000000000..f047a65fd --- /dev/null +++ b/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/di/SettingModule.kt @@ -0,0 +1,27 @@ +/* + * 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.feature.settings.di + +import com.google.samples.apps.nowinandroid.feature.settings.SettingsViewModel +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module + +val settingModule = module { + viewModel { + SettingsViewModel(get()) + } +}