diff --git a/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt index bcc533df3..64e2fdd15 100644 --- a/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt +++ b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt @@ -103,6 +103,7 @@ import nowinandroid.feature.search.generated.resources.feature_search_updates import org.jetbrains.compose.resources.stringResource import org.jetbrains.compose.ui.tooling.preview.Preview import org.jetbrains.compose.ui.tooling.preview.PreviewParameter +import org.koin.compose.viewmodel.koinViewModel import nowinandroid.core.ui.generated.resources.Res as uiR import nowinandroid.feature.search.generated.resources.Res as searchR @@ -112,7 +113,7 @@ internal fun SearchRoute( onInterestsClick: () -> Unit, onTopicClick: (String) -> Unit, modifier: Modifier = Modifier, - searchViewModel: SearchViewModel, + searchViewModel: SearchViewModel = koinViewModel(), ) { val recentSearchQueriesUiState by searchViewModel.recentSearchQueriesUiState.collectAsStateWithLifecycle() val searchResultUiState by searchViewModel.searchResultUiState.collectAsStateWithLifecycle() @@ -256,7 +257,7 @@ fun EmptySearchResultBody( fontWeight = FontWeight.Bold, ), ) { - append(stringResource(id = searchR.string.feature_search_interests)) + append(stringResource(resource = searchR.string.feature_search_interests)) } } diff --git a/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchViewModel.kt b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchViewModel.kt index 5afe79684..59afb6dfa 100644 --- a/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchViewModel.kt +++ b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchViewModel.kt @@ -37,10 +37,9 @@ import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch -import me.tatarka.inject.annotations.Inject @OptIn(ExperimentalCoroutinesApi::class) -class SearchViewModel @Inject constructor( +class SearchViewModel( getSearchContentsUseCase: GetSearchContentsUseCase, recentSearchQueriesUseCase: GetRecentSearchQueriesUseCase, private val searchContentsRepository: SearchContentsRepository, diff --git a/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/di/SearchModule.kt b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/di/SearchModule.kt new file mode 100644 index 000000000..062d6b9ac --- /dev/null +++ b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/di/SearchModule.kt @@ -0,0 +1,35 @@ +/* + * 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.search.di + +import com.google.samples.apps.nowinandroid.feature.search.SearchViewModel +import org.koin.core.module.dsl.viewModel +import org.koin.dsl.module + +val searchModule = module { + viewModel { + SearchViewModel( + get(), + get(), + get(), + get(), + get(), + get(), + get(), + ) + } +} diff --git a/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/navigation/SearchNavigation.kt b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/navigation/SearchNavigation.kt index fa6e2bcb8..81f3576b4 100644 --- a/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/navigation/SearchNavigation.kt +++ b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/navigation/SearchNavigation.kt @@ -20,6 +20,7 @@ import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.NavOptions import androidx.navigation.compose.composable +import com.google.samples.apps.nowinandroid.feature.search.SearchRoute const val SEARCH_ROUTE = "search_route" @@ -33,10 +34,10 @@ fun NavGraphBuilder.searchScreen( // TODO: Handle back stack for each top-level destination. At the moment each top-level // destination may have own search screen's back stack. composable(route = SEARCH_ROUTE) { -// SearchRoute( -// onBackClick = onBackClick, -// onInterestsClick = onInterestsClick, -// onTopicClick = onTopicClick, -// ) + SearchRoute( + onBackClick = onBackClick, + onInterestsClick = onInterestsClick, + onTopicClick = onTopicClick, + ) } }