diff --git a/core/domain/build.gradle.kts b/core/domain/build.gradle.kts index 191877459..db86380d1 100644 --- a/core/domain/build.gradle.kts +++ b/core/domain/build.gradle.kts @@ -14,7 +14,8 @@ * limitations under the License. */ plugins { - alias(libs.plugins.nowinandroid.android.library) + alias(libs.plugins.nowinandroid.kmp.library) + alias(libs.plugins.nowinandroid.kotlin.inject) alias(libs.plugins.nowinandroid.android.library.jacoco) id("com.google.devtools.ksp") } @@ -23,11 +24,14 @@ android { namespace = "com.google.samples.apps.nowinandroid.core.domain" } -dependencies { - api(projects.core.data) - api(projects.core.model) - - implementation(libs.javax.inject) - - testImplementation(projects.core.testing) -} \ No newline at end of file +kotlin { + sourceSets { + commonMain.dependencies { + api(projects.core.data) + api(projects.core.model) + } + commonTest.dependencies { + implementation(projects.core.testing) + } + } +} diff --git a/core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCase.kt b/core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCase.kt similarity index 96% rename from core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCase.kt rename to core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCase.kt index 0167a3192..37200d204 100644 --- a/core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCase.kt +++ b/core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCase.kt @@ -23,12 +23,11 @@ import com.google.samples.apps.nowinandroid.core.domain.TopicSortField.NONE import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine -import javax.inject.Inject /** * A use case which obtains a list of topics with their followed state. */ -class GetFollowableTopicsUseCase @Inject constructor( +class GetFollowableTopicsUseCase( private val topicsRepository: TopicsRepository, private val userDataRepository: UserDataRepository, ) { diff --git a/core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCase.kt b/core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCase.kt similarity index 92% rename from core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCase.kt rename to core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCase.kt index 51f87d6fd..892bf6737 100644 --- a/core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCase.kt +++ b/core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetRecentSearchQueriesUseCase.kt @@ -19,12 +19,13 @@ package com.google.samples.apps.nowinandroid.core.domain import com.google.samples.apps.nowinandroid.core.data.model.RecentSearchQuery import com.google.samples.apps.nowinandroid.core.data.repository.RecentSearchRepository import kotlinx.coroutines.flow.Flow -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject /** * A use case which returns the recent search queries. */ -class GetRecentSearchQueriesUseCase @Inject constructor( +@Inject +class GetRecentSearchQueriesUseCase( private val recentSearchRepository: RecentSearchRepository, ) { operator fun invoke(limit: Int = 10): Flow> = diff --git a/core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsCountUseCase.kt b/core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsCountUseCase.kt similarity index 92% rename from core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsCountUseCase.kt rename to core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsCountUseCase.kt index 3e3e1952e..b8c2fbf3d 100644 --- a/core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsCountUseCase.kt +++ b/core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsCountUseCase.kt @@ -18,12 +18,13 @@ package com.google.samples.apps.nowinandroid.core.domain import com.google.samples.apps.nowinandroid.core.data.repository.SearchContentsRepository import kotlinx.coroutines.flow.Flow -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject /** * A use case which returns total count of *Fts tables */ -class GetSearchContentsCountUseCase @Inject constructor( +@Inject +class GetSearchContentsCountUseCase( private val searchContentsRepository: SearchContentsRepository, ) { operator fun invoke(): Flow = diff --git a/core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsUseCase.kt b/core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsUseCase.kt similarity index 96% rename from core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsUseCase.kt rename to core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsUseCase.kt index d1065e87c..a06984f61 100644 --- a/core/domain/src/main/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsUseCase.kt +++ b/core/domain/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetSearchContentsUseCase.kt @@ -25,12 +25,13 @@ import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource import com.google.samples.apps.nowinandroid.core.model.data.UserSearchResult import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine -import javax.inject.Inject +import me.tatarka.inject.annotations.Inject /** * A use case which returns the searched contents matched with the search query. */ -class GetSearchContentsUseCase @Inject constructor( +@Inject +class GetSearchContentsUseCase( private val searchContentsRepository: SearchContentsRepository, private val userDataRepository: UserDataRepository, ) { diff --git a/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCaseTest.kt b/core/domain/src/commonTest/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCaseTest.kt similarity index 94% rename from core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCaseTest.kt rename to core/domain/src/commonTest/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCaseTest.kt index 42a31f858..51aab0edc 100644 --- a/core/domain/src/test/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCaseTest.kt +++ b/core/domain/src/commonTest/kotlin/com/google/samples/apps/nowinandroid/core/domain/GetFollowableTopicsUseCaseTest.kt @@ -21,18 +21,13 @@ import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic import com.google.samples.apps.nowinandroid.core.model.data.Topic import com.google.samples.apps.nowinandroid.core.testing.repository.TestTopicsRepository import com.google.samples.apps.nowinandroid.core.testing.repository.TestUserDataRepository -import com.google.samples.apps.nowinandroid.core.testing.util.MainDispatcherRule import kotlinx.coroutines.flow.first import kotlinx.coroutines.test.runTest -import org.junit.Rule -import org.junit.Test +import kotlin.test.Test import kotlin.test.assertEquals class GetFollowableTopicsUseCaseTest { - @get:Rule - val mainDispatcherRule = MainDispatcherRule() - private val topicsRepository = TestTopicsRepository() private val userDataRepository = TestUserDataRepository() diff --git a/core/domain/src/main/AndroidManifest.xml b/core/domain/src/main/AndroidManifest.xml deleted file mode 100644 index 51d0cfc2e..000000000 --- a/core/domain/src/main/AndroidManifest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - \ No newline at end of file