mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 08:17:04 +05:30
refactor(di): migrate to Whetstone ApplicationScope
This commit is contained in:
parent
52562afbd1
commit
4a87682b68
13 changed files with 33 additions and 18 deletions
|
@ -13,6 +13,14 @@ plugins {
|
||||||
id("dev.msfjarvis.claw.kotlin-kapt")
|
id("dev.msfjarvis.claw.kotlin-kapt")
|
||||||
id("dev.msfjarvis.claw.versioning-plugin")
|
id("dev.msfjarvis.claw.versioning-plugin")
|
||||||
alias(libs.plugins.anvil)
|
alias(libs.plugins.anvil)
|
||||||
|
alias(libs.plugins.whetstone)
|
||||||
|
}
|
||||||
|
|
||||||
|
whetstone {
|
||||||
|
addOns {
|
||||||
|
compose.set(true)
|
||||||
|
workManager.set(true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
|
@ -6,17 +6,17 @@
|
||||||
*/
|
*/
|
||||||
package dev.msfjarvis.claw.android.injection
|
package dev.msfjarvis.claw.android.injection
|
||||||
|
|
||||||
|
import com.deliveryhero.whetstone.app.ApplicationScope
|
||||||
import com.squareup.anvil.annotations.ContributesTo
|
import com.squareup.anvil.annotations.ContributesTo
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import dev.msfjarvis.claw.injection.scopes.AppScope
|
|
||||||
import dev.msfjarvis.claw.util.coroutines.DefaultDispatcherProvider
|
import dev.msfjarvis.claw.util.coroutines.DefaultDispatcherProvider
|
||||||
import dev.msfjarvis.claw.util.coroutines.DispatcherProvider
|
import dev.msfjarvis.claw.util.coroutines.DispatcherProvider
|
||||||
import kotlinx.coroutines.CoroutineDispatcher
|
import kotlinx.coroutines.CoroutineDispatcher
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@ContributesTo(AppScope::class)
|
@ContributesTo(ApplicationScope::class)
|
||||||
interface CoroutineDispatcherModule {
|
interface CoroutineDispatcherModule {
|
||||||
|
|
||||||
@Binds fun DefaultDispatcherProvider.bind(): DispatcherProvider
|
@Binds fun DefaultDispatcherProvider.bind(): DispatcherProvider
|
||||||
|
|
|
@ -6,15 +6,15 @@
|
||||||
*/
|
*/
|
||||||
package dev.msfjarvis.claw.android.injection
|
package dev.msfjarvis.claw.android.injection
|
||||||
|
|
||||||
|
import com.deliveryhero.whetstone.app.ApplicationScope
|
||||||
import com.squareup.anvil.annotations.ContributesTo
|
import com.squareup.anvil.annotations.ContributesTo
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import dev.msfjarvis.claw.common.comments.HTMLConverter
|
import dev.msfjarvis.claw.common.comments.HTMLConverter
|
||||||
import dev.msfjarvis.claw.injection.scopes.AppScope
|
|
||||||
import io.github.furstenheim.CopyDown
|
import io.github.furstenheim.CopyDown
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@ContributesTo(AppScope::class)
|
@ContributesTo(ApplicationScope::class)
|
||||||
object HTMLConverterModule {
|
object HTMLConverterModule {
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
|
|
|
@ -7,14 +7,14 @@
|
||||||
package dev.msfjarvis.claw.android.injection
|
package dev.msfjarvis.claw.android.injection
|
||||||
|
|
||||||
import com.chimbori.crux.Crux
|
import com.chimbori.crux.Crux
|
||||||
|
import com.deliveryhero.whetstone.app.ApplicationScope
|
||||||
import com.squareup.anvil.annotations.ContributesTo
|
import com.squareup.anvil.annotations.ContributesTo
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import dev.msfjarvis.claw.injection.scopes.AppScope
|
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@ContributesTo(AppScope::class)
|
@ContributesTo(ApplicationScope::class)
|
||||||
object MetadataExtractorModule {
|
object MetadataExtractorModule {
|
||||||
@Provides
|
@Provides
|
||||||
fun provideCrux(
|
fun provideCrux(
|
||||||
|
|
|
@ -7,11 +7,15 @@
|
||||||
@file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage")
|
@file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage")
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("jvm")
|
kotlin("android")
|
||||||
id("dev.msfjarvis.claw.kotlin-library")
|
id("dev.msfjarvis.claw.kotlin-common")
|
||||||
|
id("dev.msfjarvis.claw.android-library")
|
||||||
alias(libs.plugins.anvil)
|
alias(libs.plugins.anvil)
|
||||||
|
alias(libs.plugins.whetstone)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
android { namespace = "dev.msfjarvis.claw.api" }
|
||||||
|
|
||||||
anvil { generateDaggerFactories.set(true) }
|
anvil { generateDaggerFactories.set(true) }
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
|
@ -6,20 +6,20 @@
|
||||||
*/
|
*/
|
||||||
package dev.msfjarvis.claw.api.injection
|
package dev.msfjarvis.claw.api.injection
|
||||||
|
|
||||||
|
import com.deliveryhero.whetstone.app.ApplicationScope
|
||||||
import com.slack.eithernet.ApiResultCallAdapterFactory
|
import com.slack.eithernet.ApiResultCallAdapterFactory
|
||||||
import com.slack.eithernet.ApiResultConverterFactory
|
import com.slack.eithernet.ApiResultConverterFactory
|
||||||
import com.squareup.anvil.annotations.ContributesTo
|
import com.squareup.anvil.annotations.ContributesTo
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import dev.msfjarvis.claw.api.LobstersApi
|
import dev.msfjarvis.claw.api.LobstersApi
|
||||||
import dev.msfjarvis.claw.injection.scopes.AppScope
|
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import retrofit2.Converter
|
import retrofit2.Converter
|
||||||
import retrofit2.Retrofit
|
import retrofit2.Retrofit
|
||||||
import retrofit2.create
|
import retrofit2.create
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@ContributesTo(AppScope::class)
|
@ContributesTo(ApplicationScope::class)
|
||||||
object ApiModule {
|
object ApiModule {
|
||||||
@Provides
|
@Provides
|
||||||
fun provideRetrofit(
|
fun provideRetrofit(
|
||||||
|
|
|
@ -11,6 +11,7 @@ plugins {
|
||||||
id("dev.msfjarvis.claw.kotlin-common")
|
id("dev.msfjarvis.claw.kotlin-common")
|
||||||
id("dev.msfjarvis.claw.android-library")
|
id("dev.msfjarvis.claw.android-library")
|
||||||
alias(libs.plugins.anvil)
|
alias(libs.plugins.anvil)
|
||||||
|
alias(libs.plugins.whetstone)
|
||||||
}
|
}
|
||||||
|
|
||||||
anvil { generateDaggerFactories.set(true) }
|
anvil { generateDaggerFactories.set(true) }
|
||||||
|
|
|
@ -11,6 +11,7 @@ plugins {
|
||||||
id("dev.msfjarvis.claw.kotlin-common")
|
id("dev.msfjarvis.claw.kotlin-common")
|
||||||
id("dev.msfjarvis.claw.android-library")
|
id("dev.msfjarvis.claw.android-library")
|
||||||
alias(libs.plugins.anvil)
|
alias(libs.plugins.anvil)
|
||||||
|
alias(libs.plugins.whetstone)
|
||||||
}
|
}
|
||||||
|
|
||||||
anvil { generateDaggerFactories.set(true) }
|
anvil { generateDaggerFactories.set(true) }
|
||||||
|
|
|
@ -8,6 +8,7 @@ package dev.msfjarvis.claw.core.injection
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.TrafficStats
|
import android.net.TrafficStats
|
||||||
|
import com.deliveryhero.whetstone.app.ApplicationScope
|
||||||
import com.squareup.anvil.annotations.ContributesTo
|
import com.squareup.anvil.annotations.ContributesTo
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
|
@ -16,7 +17,6 @@ import dagger.multibindings.IntoSet
|
||||||
import dev.msfjarvis.claw.core.network.DelegatingSocketFactory
|
import dev.msfjarvis.claw.core.network.DelegatingSocketFactory
|
||||||
import dev.msfjarvis.claw.core.network.NapierLogger
|
import dev.msfjarvis.claw.core.network.NapierLogger
|
||||||
import dev.msfjarvis.claw.core.network.UserAgentInterceptor
|
import dev.msfjarvis.claw.core.network.UserAgentInterceptor
|
||||||
import dev.msfjarvis.claw.injection.scopes.AppScope
|
|
||||||
import java.net.Socket
|
import java.net.Socket
|
||||||
import javax.net.SocketFactory
|
import javax.net.SocketFactory
|
||||||
import okhttp3.Cache
|
import okhttp3.Cache
|
||||||
|
@ -25,7 +25,7 @@ import okhttp3.OkHttpClient
|
||||||
import okhttp3.logging.HttpLoggingInterceptor
|
import okhttp3.logging.HttpLoggingInterceptor
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@ContributesTo(AppScope::class)
|
@ContributesTo(ApplicationScope::class)
|
||||||
interface OkHttpModule {
|
interface OkHttpModule {
|
||||||
|
|
||||||
@Binds fun NapierLogger.bindLogger(): HttpLoggingInterceptor.Logger
|
@Binds fun NapierLogger.bindLogger(): HttpLoggingInterceptor.Logger
|
||||||
|
|
|
@ -6,19 +6,19 @@
|
||||||
*/
|
*/
|
||||||
package dev.msfjarvis.claw.core.injection
|
package dev.msfjarvis.claw.core.injection
|
||||||
|
|
||||||
|
import com.deliveryhero.whetstone.app.ApplicationScope
|
||||||
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
||||||
import com.squareup.anvil.annotations.ContributesTo
|
import com.squareup.anvil.annotations.ContributesTo
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import dagger.multibindings.IntoSet
|
import dagger.multibindings.IntoSet
|
||||||
import dev.msfjarvis.claw.injection.scopes.AppScope
|
|
||||||
import kotlinx.serialization.ExperimentalSerializationApi
|
import kotlinx.serialization.ExperimentalSerializationApi
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import okhttp3.MediaType
|
import okhttp3.MediaType
|
||||||
import retrofit2.Converter
|
import retrofit2.Converter
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@ContributesTo(AppScope::class)
|
@ContributesTo(ApplicationScope::class)
|
||||||
object RetrofitModule {
|
object RetrofitModule {
|
||||||
|
|
||||||
@OptIn(ExperimentalSerializationApi::class)
|
@OptIn(ExperimentalSerializationApi::class)
|
||||||
|
|
|
@ -7,14 +7,14 @@
|
||||||
package dev.msfjarvis.claw.core.logging
|
package dev.msfjarvis.claw.core.logging
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
|
import com.deliveryhero.whetstone.app.ApplicationScope
|
||||||
import com.squareup.anvil.annotations.ContributesMultibinding
|
import com.squareup.anvil.annotations.ContributesMultibinding
|
||||||
import dev.msfjarvis.claw.core.injection.AppPlugin
|
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.DebugAntilog
|
||||||
import io.github.aakira.napier.Napier
|
import io.github.aakira.napier.Napier
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@ContributesMultibinding(AppScope::class)
|
@ContributesMultibinding(ApplicationScope::class)
|
||||||
class NapierPlugin @Inject constructor() : AppPlugin {
|
class NapierPlugin @Inject constructor() : AppPlugin {
|
||||||
override fun apply(application: Application) {
|
override fun apply(application: Application) {
|
||||||
Napier.base(DebugAntilog())
|
Napier.base(DebugAntilog())
|
||||||
|
|
|
@ -12,6 +12,7 @@ plugins {
|
||||||
id("dev.msfjarvis.claw.kotlin-common")
|
id("dev.msfjarvis.claw.kotlin-common")
|
||||||
id("dev.msfjarvis.claw.android-library")
|
id("dev.msfjarvis.claw.android-library")
|
||||||
alias(libs.plugins.anvil)
|
alias(libs.plugins.anvil)
|
||||||
|
alias(libs.plugins.whetstone)
|
||||||
}
|
}
|
||||||
|
|
||||||
anvil { generateDaggerFactories.set(true) }
|
anvil { generateDaggerFactories.set(true) }
|
||||||
|
|
|
@ -9,16 +9,16 @@ package dev.msfjarvis.claw.database.injection
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import app.cash.sqldelight.adapter.primitive.IntColumnAdapter
|
import app.cash.sqldelight.adapter.primitive.IntColumnAdapter
|
||||||
import app.cash.sqldelight.driver.android.AndroidSqliteDriver
|
import app.cash.sqldelight.driver.android.AndroidSqliteDriver
|
||||||
|
import com.deliveryhero.whetstone.app.ApplicationScope
|
||||||
import com.squareup.anvil.annotations.ContributesTo
|
import com.squareup.anvil.annotations.ContributesTo
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import dev.msfjarvis.claw.database.LobstersDatabase
|
import dev.msfjarvis.claw.database.LobstersDatabase
|
||||||
import dev.msfjarvis.claw.database.local.SavedPost
|
import dev.msfjarvis.claw.database.local.SavedPost
|
||||||
import dev.msfjarvis.claw.database.model.TagsAdapter
|
import dev.msfjarvis.claw.database.model.TagsAdapter
|
||||||
import dev.msfjarvis.claw.injection.scopes.AppScope
|
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@ContributesTo(AppScope::class)
|
@ContributesTo(ApplicationScope::class)
|
||||||
object DatabaseModule {
|
object DatabaseModule {
|
||||||
|
|
||||||
private const val LOBSTERS_DATABASE_NAME = "SavedPosts.db"
|
private const val LOBSTERS_DATABASE_NAME = "SavedPosts.db"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue