Browse Source

Continue dagger setup...

feature/bma/flipper
ganfra 2 years ago
parent
commit
17e4c1bab2
  1. 2
      app/build.gradle.kts
  2. 6
      app/src/main/java/io/element/android/x/ElementXApplication.kt
  3. 4
      app/src/main/java/io/element/android/x/di/AppComponent.kt
  4. 4
      app/src/main/java/io/element/android/x/initializer/CoilInitializer.kt
  5. 23
      app/src/main/java/io/element/android/x/initializer/MatrixInitializer.kt
  6. 2
      app/src/main/java/io/element/android/x/initializer/MavericksInitializer.kt
  7. 5
      app/src/main/java/io/element/android/x/initializer/TimberInitializer.kt
  8. 0
      libraries/di/.gitignore
  9. 0
      libraries/di/build.gradle.kts
  10. 0
      libraries/di/src/main/java/io/element/android/x/di/AppScope.kt
  11. 5
      libraries/di/src/main/java/io/element/android/x/di/ApplicationContext.kt
  12. 0
      libraries/di/src/main/java/io/element/android/x/di/SessionScope.kt
  13. 0
      libraries/di/src/main/java/io/element/android/x/di/SingleIn.kt
  14. 2
      libraries/matrix/build.gradle.kts
  15. 5
      libraries/matrix/src/main/java/io/element/android/x/matrix/Matrix.kt
  16. 8
      libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixInstance.kt
  17. 2
      settings.gradle.kts

2
app/build.gradle.kts

@ -120,7 +120,7 @@ dependencies { @@ -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)

6
app/src/main/java/io/element/android/x/ElementXApplication.kt

@ -5,8 +5,8 @@ import androidx.startup.AppInitializer @@ -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 { @@ -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)
}

4
app/src/main/java/io/element/android/x/di/AppComponent.kt

@ -1,6 +1,6 @@ @@ -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 { @@ -11,6 +11,6 @@ interface AppComponent {
@Component.Factory
interface Factory {
fun create(@BindsInstance application: Application): AppComponent
fun create(@ApplicationContext @BindsInstance context: Context): AppComponent
}
}

4
app/src/main/java/io/element/android/x/initializer/CoilInitializer.kt

@ -5,10 +5,8 @@ import androidx.startup.Initializer @@ -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> { @@ -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(

23
app/src/main/java/io/element/android/x/initializer/MatrixInitializer.kt

@ -0,0 +1,23 @@ @@ -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()
}

2
app/src/main/java/io/element/android/x/initializer/MavericksInitializer.kt

@ -10,7 +10,7 @@ class MavericksInitializer : Initializer<Unit> { @@ -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()
}

5
app/src/main/java/io/element/android/x/initializer/TimberInitializer.kt

@ -4,11 +4,12 @@ import android.content.Context @@ -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
libraries/daggerscopes/.gitignore → libraries/di/.gitignore vendored

0
libraries/daggerscopes/build.gradle.kts → libraries/di/build.gradle.kts

0
libraries/daggerscopes/src/main/java/io/element/android/x/di/AppScope.kt → libraries/di/src/main/java/io/element/android/x/di/AppScope.kt

5
libraries/di/src/main/java/io/element/android/x/di/ApplicationContext.kt

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
package io.element.android.x.di
import javax.inject.Qualifier
@Qualifier annotation class ApplicationContext

0
libraries/daggerscopes/src/main/java/io/element/android/x/di/SessionScope.kt → libraries/di/src/main/java/io/element/android/x/di/SessionScope.kt

0
libraries/daggerscopes/src/main/java/io/element/android/x/di/SingleIn.kt → libraries/di/src/main/java/io/element/android/x/di/SingleIn.kt

2
libraries/matrix/build.gradle.kts

@ -14,7 +14,7 @@ anvil { @@ -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")

5
libraries/matrix/src/main/java/io/element/android/x/matrix/Matrix.kt

@ -1,8 +1,9 @@ @@ -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 @@ -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,

8
libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixInstance.kt

@ -2,9 +2,6 @@ package io.element.android.x.matrix @@ -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 { @@ -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)
}

2
settings.gradle.kts

@ -28,6 +28,6 @@ include(":features:login") @@ -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")

Loading…
Cancel
Save