Continue dagger setup...

This commit is contained in:
ganfra 2022-12-15 17:50:25 +01:00
parent 05dc3b636c
commit 17e4c1bab2
17 changed files with 44 additions and 24 deletions

View file

@ -5,8 +5,8 @@ import androidx.startup.AppInitializer
import io.element.android.x.core.di.DaggerComponentOwner
import io.element.android.x.di.DaggerAppComponent
import io.element.android.x.initializer.CoilInitializer
import io.element.android.x.initializer.MatrixInitializer
import io.element.android.x.initializer.MavericksInitializer
import io.element.android.x.initializer.TimberInitializer
import io.element.android.x.matrix.MatrixInstance
import kotlinx.coroutines.CoroutineName
import kotlinx.coroutines.MainScope
@ -20,10 +20,10 @@ class ElementXApplication : Application(), DaggerComponentOwner {
override fun onCreate() {
super.onCreate()
daggerComponent = DaggerAppComponent.factory().create(this)
daggerComponent = DaggerAppComponent.factory().create(applicationContext)
MatrixInstance.init(this, applicationScope)
AppInitializer.getInstance(this).apply {
initializeComponent(TimberInitializer::class.java)
initializeComponent(MatrixInitializer::class.java)
initializeComponent(CoilInitializer::class.java)
initializeComponent(MavericksInitializer::class.java)
}

View file

@ -1,6 +1,6 @@
package io.element.android.x.di
import android.app.Application
import android.content.Context
import com.squareup.anvil.annotations.MergeComponent
import dagger.BindsInstance
import dagger.Component
@ -11,6 +11,6 @@ interface AppComponent {
@Component.Factory
interface Factory {
fun create(@BindsInstance application: Application): AppComponent
fun create(@ApplicationContext @BindsInstance context: Context): AppComponent
}
}

View file

@ -5,10 +5,8 @@ import androidx.startup.Initializer
import coil.Coil
import coil.ImageLoader
import coil.ImageLoaderFactory
import io.element.android.x.core.di.DaggerComponentOwner
import io.element.android.x.core.di.bindings
import io.element.android.x.di.AppBindings
import io.element.android.x.di.AppComponent
class CoilInitializer : Initializer<Unit> {
@ -16,7 +14,7 @@ class CoilInitializer : Initializer<Unit> {
Coil.setImageLoader(ElementImageLoaderFactory(context))
}
override fun dependencies(): MutableList<Class<out Initializer<*>>> = mutableListOf()
override fun dependencies(): List<Class<out Initializer<*>>> = emptyList()
}
private class ElementImageLoaderFactory(

View file

@ -0,0 +1,23 @@
package io.element.android.x.initializer
import android.content.Context
import androidx.startup.Initializer
import com.airbnb.mvrx.Mavericks
import io.element.android.x.matrix.tracing.TracingConfigurations
import io.element.android.x.matrix.tracing.setupTracing
import io.element.android.x.sdk.matrix.BuildConfig
class MatrixInitializer : Initializer<Unit> {
override fun create(context: Context) {
if (BuildConfig.DEBUG) {
setupTracing(TracingConfigurations.debug)
} else {
setupTracing(TracingConfigurations.release)
}
}
override fun dependencies(): List<Class<out Initializer<*>>> = emptyList()
}

View file

@ -10,7 +10,7 @@ class MavericksInitializer : Initializer<Unit> {
Mavericks.initialize(context)
}
override fun dependencies(): MutableList<Class<out Initializer<*>>> = mutableListOf()
override fun dependencies(): List<Class<out Initializer<*>>> = listOf()
}

View file

@ -4,11 +4,12 @@ import android.content.Context
import androidx.startup.Initializer
import timber.log.Timber
class TimberInitializer: Initializer<Unit> {
class TimberInitializer : Initializer<Unit> {
override fun create(context: Context) {
Timber.plant(Timber.DebugTree())
}
override fun dependencies(): MutableList<Class<out Initializer<*>>> = mutableListOf()
override fun dependencies(): List<Class<out Initializer<*>>> =
listOf(TimberInitializer::class.java)
}