diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c9c77fe66f..c259ff0097 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -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) diff --git a/app/src/main/java/io/element/android/x/ElementXApplication.kt b/app/src/main/java/io/element/android/x/ElementXApplication.kt index 7980a5aea4..9f6af001ff 100644 --- a/app/src/main/java/io/element/android/x/ElementXApplication.kt +++ b/app/src/main/java/io/element/android/x/ElementXApplication.kt @@ -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) } diff --git a/app/src/main/java/io/element/android/x/di/AppComponent.kt b/app/src/main/java/io/element/android/x/di/AppComponent.kt index b12230cbee..2b1af60b45 100644 --- a/app/src/main/java/io/element/android/x/di/AppComponent.kt +++ b/app/src/main/java/io/element/android/x/di/AppComponent.kt @@ -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 } } \ No newline at end of file diff --git a/app/src/main/java/io/element/android/x/initializer/CoilInitializer.kt b/app/src/main/java/io/element/android/x/initializer/CoilInitializer.kt index 8db0737e51..491f498d36 100644 --- a/app/src/main/java/io/element/android/x/initializer/CoilInitializer.kt +++ b/app/src/main/java/io/element/android/x/initializer/CoilInitializer.kt @@ -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 { @@ -16,7 +14,7 @@ class CoilInitializer : Initializer { Coil.setImageLoader(ElementImageLoaderFactory(context)) } - override fun dependencies(): MutableList>> = mutableListOf() + override fun dependencies(): List>> = emptyList() } private class ElementImageLoaderFactory( diff --git a/app/src/main/java/io/element/android/x/initializer/MatrixInitializer.kt b/app/src/main/java/io/element/android/x/initializer/MatrixInitializer.kt new file mode 100644 index 0000000000..800819f1a7 --- /dev/null +++ b/app/src/main/java/io/element/android/x/initializer/MatrixInitializer.kt @@ -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 { + + override fun create(context: Context) { + if (BuildConfig.DEBUG) { + setupTracing(TracingConfigurations.debug) + } else { + setupTracing(TracingConfigurations.release) + } + } + + override fun dependencies(): List>> = emptyList() + + +} \ No newline at end of file diff --git a/app/src/main/java/io/element/android/x/initializer/MavericksInitializer.kt b/app/src/main/java/io/element/android/x/initializer/MavericksInitializer.kt index fe6fcc07df..ff51aa1d60 100644 --- a/app/src/main/java/io/element/android/x/initializer/MavericksInitializer.kt +++ b/app/src/main/java/io/element/android/x/initializer/MavericksInitializer.kt @@ -10,7 +10,7 @@ class MavericksInitializer : Initializer { Mavericks.initialize(context) } - override fun dependencies(): MutableList>> = mutableListOf() + override fun dependencies(): List>> = listOf() } \ No newline at end of file diff --git a/app/src/main/java/io/element/android/x/initializer/TimberInitializer.kt b/app/src/main/java/io/element/android/x/initializer/TimberInitializer.kt index e8fe1f7118..a7065e482f 100644 --- a/app/src/main/java/io/element/android/x/initializer/TimberInitializer.kt +++ b/app/src/main/java/io/element/android/x/initializer/TimberInitializer.kt @@ -4,11 +4,12 @@ import android.content.Context import androidx.startup.Initializer import timber.log.Timber -class TimberInitializer: Initializer { +class TimberInitializer : Initializer { override fun create(context: Context) { Timber.plant(Timber.DebugTree()) } - override fun dependencies(): MutableList>> = mutableListOf() + override fun dependencies(): List>> = + listOf(TimberInitializer::class.java) } \ No newline at end of file diff --git a/libraries/daggerscopes/.gitignore b/libraries/di/.gitignore similarity index 100% rename from libraries/daggerscopes/.gitignore rename to libraries/di/.gitignore diff --git a/libraries/daggerscopes/build.gradle.kts b/libraries/di/build.gradle.kts similarity index 100% rename from libraries/daggerscopes/build.gradle.kts rename to libraries/di/build.gradle.kts diff --git a/libraries/daggerscopes/src/main/java/io/element/android/x/di/AppScope.kt b/libraries/di/src/main/java/io/element/android/x/di/AppScope.kt similarity index 100% rename from libraries/daggerscopes/src/main/java/io/element/android/x/di/AppScope.kt rename to libraries/di/src/main/java/io/element/android/x/di/AppScope.kt diff --git a/libraries/di/src/main/java/io/element/android/x/di/ApplicationContext.kt b/libraries/di/src/main/java/io/element/android/x/di/ApplicationContext.kt new file mode 100644 index 0000000000..49ff8ae125 --- /dev/null +++ b/libraries/di/src/main/java/io/element/android/x/di/ApplicationContext.kt @@ -0,0 +1,5 @@ +package io.element.android.x.di + +import javax.inject.Qualifier + +@Qualifier annotation class ApplicationContext \ No newline at end of file diff --git a/libraries/daggerscopes/src/main/java/io/element/android/x/di/SessionScope.kt b/libraries/di/src/main/java/io/element/android/x/di/SessionScope.kt similarity index 100% rename from libraries/daggerscopes/src/main/java/io/element/android/x/di/SessionScope.kt rename to libraries/di/src/main/java/io/element/android/x/di/SessionScope.kt diff --git a/libraries/daggerscopes/src/main/java/io/element/android/x/di/SingleIn.kt b/libraries/di/src/main/java/io/element/android/x/di/SingleIn.kt similarity index 100% rename from libraries/daggerscopes/src/main/java/io/element/android/x/di/SingleIn.kt rename to libraries/di/src/main/java/io/element/android/x/di/SingleIn.kt diff --git a/libraries/matrix/build.gradle.kts b/libraries/matrix/build.gradle.kts index 5001895635..591f5b012d 100644 --- a/libraries/matrix/build.gradle.kts +++ b/libraries/matrix/build.gradle.kts @@ -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") diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/Matrix.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/Matrix.kt index e6a7cdda2c..cd7db813b6 100644 --- a/libraries/matrix/src/main/java/io/element/android/x/matrix/Matrix.kt +++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/Matrix.kt @@ -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, diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixInstance.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixInstance.kt index 6497791622..90fc39d858 100644 --- a/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixInstance.kt +++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixInstance.kt @@ -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) } diff --git a/settings.gradle.kts b/settings.gradle.kts index b3259aa86f..a135a4269a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -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")