diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 8aefee51..8d27db96 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -13,6 +13,14 @@ plugins { id("dev.msfjarvis.claw.kotlin-kapt") id("dev.msfjarvis.claw.versioning-plugin") alias(libs.plugins.anvil) + alias(libs.plugins.whetstone) +} + +whetstone { + addOns { + compose.set(true) + workManager.set(true) + } } android { diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/CoroutineDispatcherModule.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/CoroutineDispatcherModule.kt index edb67cce..2bd3ae25 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/CoroutineDispatcherModule.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/CoroutineDispatcherModule.kt @@ -6,17 +6,17 @@ */ package dev.msfjarvis.claw.android.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.injection.scopes.AppScope import dev.msfjarvis.claw.util.coroutines.DefaultDispatcherProvider import dev.msfjarvis.claw.util.coroutines.DispatcherProvider import kotlinx.coroutines.CoroutineDispatcher @Module -@ContributesTo(AppScope::class) +@ContributesTo(ApplicationScope::class) interface CoroutineDispatcherModule { @Binds fun DefaultDispatcherProvider.bind(): DispatcherProvider diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/HTMLConverterModule.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/HTMLConverterModule.kt index d7cf9c82..23b7e84e 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/HTMLConverterModule.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/HTMLConverterModule.kt @@ -6,15 +6,15 @@ */ package dev.msfjarvis.claw.android.injection +import com.deliveryhero.whetstone.app.ApplicationScope import com.squareup.anvil.annotations.ContributesTo import dagger.Module import dagger.Provides import dev.msfjarvis.claw.common.comments.HTMLConverter -import dev.msfjarvis.claw.injection.scopes.AppScope import io.github.furstenheim.CopyDown @Module -@ContributesTo(AppScope::class) +@ContributesTo(ApplicationScope::class) object HTMLConverterModule { @Provides diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/MetadataExtractorModule.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/MetadataExtractorModule.kt index 7dc98c72..6cd01ae4 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/MetadataExtractorModule.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/injection/MetadataExtractorModule.kt @@ -7,14 +7,14 @@ package dev.msfjarvis.claw.android.injection import com.chimbori.crux.Crux +import com.deliveryhero.whetstone.app.ApplicationScope import com.squareup.anvil.annotations.ContributesTo import dagger.Module import dagger.Provides -import dev.msfjarvis.claw.injection.scopes.AppScope import okhttp3.OkHttpClient @Module -@ContributesTo(AppScope::class) +@ContributesTo(ApplicationScope::class) object MetadataExtractorModule { @Provides fun provideCrux( diff --git a/api/build.gradle.kts b/api/build.gradle.kts index ce9bd47f..be21f117 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -7,11 +7,15 @@ @file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage") plugins { - kotlin("jvm") - id("dev.msfjarvis.claw.kotlin-library") + kotlin("android") + id("dev.msfjarvis.claw.kotlin-common") + id("dev.msfjarvis.claw.android-library") alias(libs.plugins.anvil) + alias(libs.plugins.whetstone) } +android { namespace = "dev.msfjarvis.claw.api" } + anvil { generateDaggerFactories.set(true) } dependencies { diff --git a/api/src/main/kotlin/dev/msfjarvis/claw/api/injection/ApiModule.kt b/api/src/main/kotlin/dev/msfjarvis/claw/api/injection/ApiModule.kt index dd8aee7e..c513b953 100644 --- a/api/src/main/kotlin/dev/msfjarvis/claw/api/injection/ApiModule.kt +++ b/api/src/main/kotlin/dev/msfjarvis/claw/api/injection/ApiModule.kt @@ -6,20 +6,20 @@ */ package dev.msfjarvis.claw.api.injection +import com.deliveryhero.whetstone.app.ApplicationScope import com.slack.eithernet.ApiResultCallAdapterFactory import com.slack.eithernet.ApiResultConverterFactory import com.squareup.anvil.annotations.ContributesTo import dagger.Module import dagger.Provides import dev.msfjarvis.claw.api.LobstersApi -import dev.msfjarvis.claw.injection.scopes.AppScope import okhttp3.OkHttpClient import retrofit2.Converter import retrofit2.Retrofit import retrofit2.create @Module -@ContributesTo(AppScope::class) +@ContributesTo(ApplicationScope::class) object ApiModule { @Provides fun provideRetrofit( diff --git a/common/build.gradle.kts b/common/build.gradle.kts index cc480065..72d7e456 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -11,6 +11,7 @@ plugins { id("dev.msfjarvis.claw.kotlin-common") id("dev.msfjarvis.claw.android-library") alias(libs.plugins.anvil) + alias(libs.plugins.whetstone) } anvil { generateDaggerFactories.set(true) } diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 4375d818..20bbde44 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -11,6 +11,7 @@ plugins { id("dev.msfjarvis.claw.kotlin-common") id("dev.msfjarvis.claw.android-library") alias(libs.plugins.anvil) + alias(libs.plugins.whetstone) } anvil { generateDaggerFactories.set(true) } diff --git a/core/src/main/kotlin/dev/msfjarvis/claw/core/injection/OkHttpModule.kt b/core/src/main/kotlin/dev/msfjarvis/claw/core/injection/OkHttpModule.kt index 175fa7e1..4db6faa3 100644 --- a/core/src/main/kotlin/dev/msfjarvis/claw/core/injection/OkHttpModule.kt +++ b/core/src/main/kotlin/dev/msfjarvis/claw/core/injection/OkHttpModule.kt @@ -8,6 +8,7 @@ package dev.msfjarvis.claw.core.injection import android.content.Context import android.net.TrafficStats +import com.deliveryhero.whetstone.app.ApplicationScope import com.squareup.anvil.annotations.ContributesTo import dagger.Binds import dagger.Module @@ -16,7 +17,6 @@ import dagger.multibindings.IntoSet import dev.msfjarvis.claw.core.network.DelegatingSocketFactory import dev.msfjarvis.claw.core.network.NapierLogger import dev.msfjarvis.claw.core.network.UserAgentInterceptor -import dev.msfjarvis.claw.injection.scopes.AppScope import java.net.Socket import javax.net.SocketFactory import okhttp3.Cache @@ -25,7 +25,7 @@ import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor @Module -@ContributesTo(AppScope::class) +@ContributesTo(ApplicationScope::class) interface OkHttpModule { @Binds fun NapierLogger.bindLogger(): HttpLoggingInterceptor.Logger diff --git a/core/src/main/kotlin/dev/msfjarvis/claw/core/injection/RetrofitModule.kt b/core/src/main/kotlin/dev/msfjarvis/claw/core/injection/RetrofitModule.kt index b4f3b958..0ff65c93 100644 --- a/core/src/main/kotlin/dev/msfjarvis/claw/core/injection/RetrofitModule.kt +++ b/core/src/main/kotlin/dev/msfjarvis/claw/core/injection/RetrofitModule.kt @@ -6,19 +6,19 @@ */ package dev.msfjarvis.claw.core.injection +import com.deliveryhero.whetstone.app.ApplicationScope import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory import com.squareup.anvil.annotations.ContributesTo import dagger.Module import dagger.Provides import dagger.multibindings.IntoSet -import dev.msfjarvis.claw.injection.scopes.AppScope import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.json.Json import okhttp3.MediaType import retrofit2.Converter @Module -@ContributesTo(AppScope::class) +@ContributesTo(ApplicationScope::class) object RetrofitModule { @OptIn(ExperimentalSerializationApi::class) diff --git a/core/src/main/kotlin/dev/msfjarvis/claw/core/logging/NapierPlugin.kt b/core/src/main/kotlin/dev/msfjarvis/claw/core/logging/NapierPlugin.kt index 60f752ad..f67754bc 100644 --- a/core/src/main/kotlin/dev/msfjarvis/claw/core/logging/NapierPlugin.kt +++ b/core/src/main/kotlin/dev/msfjarvis/claw/core/logging/NapierPlugin.kt @@ -7,14 +7,14 @@ package dev.msfjarvis.claw.core.logging import android.app.Application +import com.deliveryhero.whetstone.app.ApplicationScope import com.squareup.anvil.annotations.ContributesMultibinding import dev.msfjarvis.claw.core.injection.AppPlugin -import dev.msfjarvis.claw.injection.scopes.AppScope import io.github.aakira.napier.DebugAntilog import io.github.aakira.napier.Napier import javax.inject.Inject -@ContributesMultibinding(AppScope::class) +@ContributesMultibinding(ApplicationScope::class) class NapierPlugin @Inject constructor() : AppPlugin { override fun apply(application: Application) { Napier.base(DebugAntilog()) diff --git a/database/build.gradle.kts b/database/build.gradle.kts index 48ed8947..7272e85b 100644 --- a/database/build.gradle.kts +++ b/database/build.gradle.kts @@ -12,6 +12,7 @@ plugins { id("dev.msfjarvis.claw.kotlin-common") id("dev.msfjarvis.claw.android-library") alias(libs.plugins.anvil) + alias(libs.plugins.whetstone) } anvil { generateDaggerFactories.set(true) } diff --git a/database/src/main/kotlin/dev/msfjarvis/claw/database/injection/DatabaseModule.kt b/database/src/main/kotlin/dev/msfjarvis/claw/database/injection/DatabaseModule.kt index 4d692741..00573d5b 100644 --- a/database/src/main/kotlin/dev/msfjarvis/claw/database/injection/DatabaseModule.kt +++ b/database/src/main/kotlin/dev/msfjarvis/claw/database/injection/DatabaseModule.kt @@ -9,16 +9,16 @@ package dev.msfjarvis.claw.database.injection import android.content.Context import app.cash.sqldelight.adapter.primitive.IntColumnAdapter import app.cash.sqldelight.driver.android.AndroidSqliteDriver +import com.deliveryhero.whetstone.app.ApplicationScope import com.squareup.anvil.annotations.ContributesTo import dagger.Module import dagger.Provides import dev.msfjarvis.claw.database.LobstersDatabase import dev.msfjarvis.claw.database.local.SavedPost import dev.msfjarvis.claw.database.model.TagsAdapter -import dev.msfjarvis.claw.injection.scopes.AppScope @Module -@ContributesTo(AppScope::class) +@ContributesTo(ApplicationScope::class) object DatabaseModule { private const val LOBSTERS_DATABASE_NAME = "SavedPosts.db"