diff --git a/README.md b/README.md index d78e467c..3a0f8700 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,6 @@ graph LR android --> api android --> common android --> core - android --> coroutine-utils android --> database android --> metadata-extractor android --> model diff --git a/android/build.gradle.kts b/android/build.gradle.kts index f4946359..4ea92182 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -73,7 +73,6 @@ dependencies { implementation(projects.api) implementation(projects.common) implementation(projects.core) - implementation(projects.coroutineUtils) implementation(projects.database) implementation(projects.metadataExtractor) implementation(projects.model) diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/DataStoreModule.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/DataStoreModule.kt index 36fd81f9..0278500e 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/DataStoreModule.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/DataStoreModule.kt @@ -16,7 +16,7 @@ import com.deliveryhero.whetstone.app.ApplicationScope import com.squareup.anvil.annotations.ContributesTo import dagger.Module import dagger.Provides -import dev.msfjarvis.claw.util.coroutines.DispatcherProvider +import dev.msfjarvis.claw.core.coroutines.DispatcherProvider import javax.inject.Singleton import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.SupervisorJob diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/annotations.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/annotations.kt deleted file mode 100644 index 7bb55a19..00000000 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/annotations.kt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright © 2022 Harsh Shandilya. - * Use of this source code is governed by an MIT-style - * license that can be found in the LICENSE file or at - * https://opensource.org/licenses/MIT. - */ -package dev.msfjarvis.claw.android.injection - -import javax.inject.Qualifier - -@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class DatabaseDispatcher - -@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class MainDispatcher - -@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class IODispatcher diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/paging/LobstersPagingSource.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/paging/LobstersPagingSource.kt index 0a7fa21f..82b5c260 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/paging/LobstersPagingSource.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/paging/LobstersPagingSource.kt @@ -1,5 +1,5 @@ /* - * Copyright © 2021-2022 Harsh Shandilya. + * Copyright © 2021-2023 Harsh Shandilya. * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE file or at * https://opensource.org/licenses/MIT. @@ -13,7 +13,7 @@ import com.slack.eithernet.ApiResult.Success import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject -import dev.msfjarvis.claw.android.injection.IODispatcher +import dev.msfjarvis.claw.core.injection.IODispatcher import dev.msfjarvis.claw.model.LobstersPost import java.io.IOException import kotlinx.coroutines.CoroutineDispatcher diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/CSRFRepository.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/CSRFRepository.kt index 147bc11a..571b750a 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/CSRFRepository.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/CSRFRepository.kt @@ -6,8 +6,8 @@ */ package dev.msfjarvis.claw.android.viewmodel -import dev.msfjarvis.claw.android.injection.IODispatcher import dev.msfjarvis.claw.api.injection.BaseUrl +import dev.msfjarvis.claw.core.injection.IODispatcher import javax.inject.Inject import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.withContext diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/ClawViewModel.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/ClawViewModel.kt index 788d7a69..07a90386 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/ClawViewModel.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/ClawViewModel.kt @@ -13,11 +13,11 @@ import androidx.paging.PagingConfig import com.deliveryhero.whetstone.viewmodel.ContributesViewModel import com.slack.eithernet.ApiResult.Failure import com.slack.eithernet.ApiResult.Success -import dev.msfjarvis.claw.android.injection.IODispatcher import dev.msfjarvis.claw.android.paging.LobstersPagingSource import dev.msfjarvis.claw.android.paging.LobstersPagingSource.Companion.PAGE_SIZE import dev.msfjarvis.claw.android.paging.LobstersPagingSource.Companion.STARTING_PAGE_INDEX import dev.msfjarvis.claw.api.LobstersApi +import dev.msfjarvis.claw.core.injection.IODispatcher import dev.msfjarvis.claw.database.local.SavedPost import dev.msfjarvis.claw.model.Comment import java.io.IOException diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/CommentsRepository.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/CommentsRepository.kt index 4c58aed7..3dae088e 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/CommentsRepository.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/CommentsRepository.kt @@ -6,7 +6,7 @@ */ package dev.msfjarvis.claw.android.viewmodel -import dev.msfjarvis.claw.android.injection.DatabaseDispatcher +import dev.msfjarvis.claw.core.injection.DatabaseDispatcher import dev.msfjarvis.claw.database.LobstersDatabase import dev.msfjarvis.claw.database.local.PostComments import dev.msfjarvis.claw.model.Comment diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/DataTransferRepository.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/DataTransferRepository.kt index a76ea933..b6a40b77 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/DataTransferRepository.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/DataTransferRepository.kt @@ -6,8 +6,8 @@ */ package dev.msfjarvis.claw.android.viewmodel -import dev.msfjarvis.claw.android.injection.DatabaseDispatcher -import dev.msfjarvis.claw.android.injection.IODispatcher +import dev.msfjarvis.claw.core.injection.DatabaseDispatcher +import dev.msfjarvis.claw.core.injection.IODispatcher import dev.msfjarvis.claw.database.LobstersDatabase import dev.msfjarvis.claw.database.SavedPostSerializer import dev.msfjarvis.claw.database.local.SavedPost diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/SavedPostsRepository.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/SavedPostsRepository.kt index f69e80a7..eb26934d 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/SavedPostsRepository.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/viewmodel/SavedPostsRepository.kt @@ -8,7 +8,7 @@ package dev.msfjarvis.claw.android.viewmodel import app.cash.sqldelight.coroutines.asFlow import app.cash.sqldelight.coroutines.mapToList -import dev.msfjarvis.claw.android.injection.DatabaseDispatcher +import dev.msfjarvis.claw.core.injection.DatabaseDispatcher import dev.msfjarvis.claw.database.LobstersDatabase import dev.msfjarvis.claw.database.local.SavedPost import io.github.aakira.napier.Napier diff --git a/core/build.gradle.kts b/core/build.gradle.kts index ec31f428..6a3f9e08 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -16,12 +16,13 @@ android { namespace = "dev.msfjarvis.claw.core" } anvil { generateDaggerFactories.set(true) } dependencies { + api(libs.javax.inject) + api(libs.kotlinx.coroutines.core) api(libs.kotlinx.serialization.json) api(libs.okhttp.loggingInterceptor) implementation(platform(libs.okhttp.bom)) implementation(libs.dagger) - implementation(libs.javax.inject) implementation(libs.napier) implementation(libs.okhttp.core) implementation(libs.retrofit.kotlinxSerializationConverter) diff --git a/coroutine-utils/src/main/kotlin/dev/msfjarvis/claw/util/coroutines/DispatcherProvider.kt b/core/src/main/kotlin/dev/msfjarvis/claw/core/coroutines/DispatcherProvider.kt similarity index 96% rename from coroutine-utils/src/main/kotlin/dev/msfjarvis/claw/util/coroutines/DispatcherProvider.kt rename to core/src/main/kotlin/dev/msfjarvis/claw/core/coroutines/DispatcherProvider.kt index f5440533..adeb2c5a 100644 --- a/coroutine-utils/src/main/kotlin/dev/msfjarvis/claw/util/coroutines/DispatcherProvider.kt +++ b/core/src/main/kotlin/dev/msfjarvis/claw/core/coroutines/DispatcherProvider.kt @@ -6,7 +6,7 @@ */ @file:Suppress("InjectDispatcher") // False-positive -package dev.msfjarvis.claw.util.coroutines +package dev.msfjarvis.claw.core.coroutines import javax.inject.Inject import kotlinx.coroutines.CoroutineDispatcher diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/CoroutineDispatcherModule.kt b/core/src/main/kotlin/dev/msfjarvis/claw/core/injection/CoroutineDispatcherModule.kt similarity index 58% rename from android/src/main/kotlin/dev/msfjarvis/claw/android/injection/CoroutineDispatcherModule.kt rename to core/src/main/kotlin/dev/msfjarvis/claw/core/injection/CoroutineDispatcherModule.kt index 2bd3ae25..2c87c2b5 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/CoroutineDispatcherModule.kt +++ b/core/src/main/kotlin/dev/msfjarvis/claw/core/injection/CoroutineDispatcherModule.kt @@ -1,20 +1,29 @@ /* - * Copyright © 2022 Harsh Shandilya. + * Copyright © 2022-2023 Harsh Shandilya. * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE file or at * https://opensource.org/licenses/MIT. */ -package dev.msfjarvis.claw.android.injection +package dev.msfjarvis.claw.core.injection import com.deliveryhero.whetstone.app.ApplicationScope import com.squareup.anvil.annotations.ContributesTo import dagger.Binds import dagger.Module import dagger.Provides -import dev.msfjarvis.claw.util.coroutines.DefaultDispatcherProvider -import dev.msfjarvis.claw.util.coroutines.DispatcherProvider +import dev.msfjarvis.claw.core.coroutines.DefaultDispatcherProvider +import dev.msfjarvis.claw.core.coroutines.DispatcherProvider +import javax.inject.Qualifier import kotlinx.coroutines.CoroutineDispatcher +@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class DatabaseDispatcher + +@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class MainDispatcher + +@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class IODispatcher + +@Qualifier @Retention(AnnotationRetention.RUNTIME) annotation class DefaultDispatcher + @Module @ContributesTo(ApplicationScope::class) interface CoroutineDispatcherModule { @@ -36,5 +45,10 @@ interface CoroutineDispatcherModule { fun provideMainDispatcher(dispatcherProvider: DispatcherProvider): CoroutineDispatcher { return dispatcherProvider.main() } + + @[Provides DefaultDispatcher] + fun provideDefaultDispatcher(dispatcherProvider: DispatcherProvider): CoroutineDispatcher { + return dispatcherProvider.default() + } } } diff --git a/coroutine-utils/build.gradle.kts b/coroutine-utils/build.gradle.kts deleted file mode 100644 index 5cbd5df9..00000000 --- a/coroutine-utils/build.gradle.kts +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright © 2022-2023 Harsh Shandilya. - * Use of this source code is governed by an MIT-style - * license that can be found in the LICENSE file or at - * https://opensource.org/licenses/MIT. - */ -plugins { id("dev.msfjarvis.claw.kotlin-jvm") } - -dependencies { - api(libs.javax.inject) - api(libs.kotlinx.coroutines.core) -} diff --git a/coroutine-utils/lint-baseline.xml b/coroutine-utils/lint-baseline.xml deleted file mode 100644 index 2366cf98..00000000 --- a/coroutine-utils/lint-baseline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/settings.gradle.kts b/settings.gradle.kts index 43378b54..60273285 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -149,7 +149,6 @@ include( "benchmark", "common", "core", - "coroutine-utils", "database", "metadata-extractor", "model",