Continue dagger setup...
This commit is contained in:
@@ -120,7 +120,7 @@ dependencies {
|
||||
implementation(project(":features:login"))
|
||||
implementation(project(":features:roomlist"))
|
||||
implementation(project(":features:messages"))
|
||||
implementation(project(":libraries:daggerscopes"))
|
||||
implementation(project(":libraries:di"))
|
||||
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.2.0")
|
||||
implementation(libs.compose.destinations)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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(
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
}
|
||||
@@ -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()
|
||||
|
||||
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package io.element.android.x.di
|
||||
|
||||
import javax.inject.Qualifier
|
||||
|
||||
@Qualifier annotation class ApplicationContext
|
||||
@@ -14,7 +14,7 @@ anvil {
|
||||
|
||||
dependencies {
|
||||
api(project(":libraries:rustsdk"))
|
||||
implementation(project(":libraries:daggerscopes"))
|
||||
implementation(project(":libraries:di"))
|
||||
implementation(project(":libraries:core"))
|
||||
implementation(libs.timber)
|
||||
implementation("net.java.dev.jna:jna:5.12.1@aar")
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package io.element.android.x.matrix
|
||||
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import coil.ComponentRegistry
|
||||
import io.element.android.x.core.coroutine.CoroutineDispatchers
|
||||
import io.element.android.x.di.ApplicationContext
|
||||
import io.element.android.x.di.AppScope
|
||||
import io.element.android.x.di.SingleIn
|
||||
import io.element.android.x.matrix.media.MediaFetcher
|
||||
@@ -26,7 +27,7 @@ import javax.inject.Inject
|
||||
@SingleIn(AppScope::class)
|
||||
class Matrix @Inject constructor(
|
||||
private val coroutineScope: CoroutineScope,
|
||||
context: Application,
|
||||
@ApplicationContext context: Context,
|
||||
) {
|
||||
private val coroutineDispatchers = CoroutineDispatchers(
|
||||
io = Dispatchers.IO,
|
||||
|
||||
@@ -2,9 +2,6 @@ package io.element.android.x.matrix
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Application
|
||||
import io.element.android.x.matrix.tracing.TracingConfigurations
|
||||
import io.element.android.x.matrix.tracing.setupTracing
|
||||
import io.element.android.x.sdk.matrix.BuildConfig
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
|
||||
|
||||
@@ -13,11 +10,6 @@ object MatrixInstance {
|
||||
private lateinit var instance: Matrix
|
||||
|
||||
fun init(context: Application, coroutineScope: CoroutineScope) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
setupTracing(TracingConfigurations.debug)
|
||||
} else {
|
||||
setupTracing(TracingConfigurations.release)
|
||||
}
|
||||
instance = Matrix(coroutineScope, context)
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,6 @@ include(":features:login")
|
||||
include(":features:roomlist")
|
||||
include(":features:messages")
|
||||
include(":libraries:designsystem")
|
||||
include(":libraries:daggerscopes")
|
||||
include(":libraries:di")
|
||||
include(":anvilannotations")
|
||||
include(":anvilcodegen")
|
||||
|
||||
Reference in New Issue
Block a user