refactor(di): migrate to Whetstone ApplicationScope

This commit is contained in:
Harsh Shandilya 2022-11-14 02:34:26 +05:30
parent 52562afbd1
commit 4a87682b68
No known key found for this signature in database
13 changed files with 33 additions and 18 deletions

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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(

View file

@ -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 {

View file

@ -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(

View file

@ -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) }

View file

@ -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) }

View file

@ -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

View file

@ -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)

View file

@ -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())

View file

@ -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) }

View file

@ -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"