mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-01 09:42:23 +00:00
34 lines
1.3 KiB
Kotlin
34 lines
1.3 KiB
Kotlin
package io.element.android.x
|
|
|
|
import android.app.Application
|
|
import androidx.startup.AppInitializer
|
|
import io.element.android.x.architecture.bindings
|
|
import io.element.android.x.core.di.DaggerComponentOwner
|
|
import io.element.android.x.di.AppBindings
|
|
import io.element.android.x.di.AppComponent
|
|
import io.element.android.x.di.DaggerAppComponent
|
|
import io.element.android.x.di.SessionComponentsOwner
|
|
import io.element.android.x.initializer.CoilInitializer
|
|
import io.element.android.x.initializer.MatrixInitializer
|
|
import io.element.android.x.initializer.MavericksInitializer
|
|
|
|
class ElementXApplication : Application(), DaggerComponentOwner {
|
|
|
|
private lateinit var appComponent: AppComponent
|
|
private var sessionComponentsOwner: SessionComponentsOwner? = null
|
|
|
|
override val daggerComponent: Any
|
|
get() = listOfNotNull(sessionComponentsOwner?.activeSessionComponent, appComponent)
|
|
|
|
override fun onCreate() {
|
|
super.onCreate()
|
|
appComponent = DaggerAppComponent.factory().create(applicationContext)
|
|
sessionComponentsOwner = bindings<AppBindings>().sessionComponentsOwner()
|
|
AppInitializer.getInstance(this).apply {
|
|
initializeComponent(MatrixInitializer::class.java)
|
|
initializeComponent(CoilInitializer::class.java)
|
|
initializeComponent(MavericksInitializer::class.java)
|
|
}
|
|
}
|
|
}
|