2018-10-08 15:52:45 +00:00
|
|
|
package im.vector.matrix.android.internal.session
|
|
|
|
|
2018-10-09 10:30:01 +00:00
|
|
|
import im.vector.matrix.android.api.session.Session
|
2018-10-10 17:46:43 +00:00
|
|
|
import im.vector.matrix.android.internal.auth.data.SessionParams
|
2018-10-08 15:52:45 +00:00
|
|
|
import im.vector.matrix.android.internal.di.SessionModule
|
|
|
|
import im.vector.matrix.android.internal.events.sync.SyncModule
|
|
|
|
import im.vector.matrix.android.internal.events.sync.Synchronizer
|
|
|
|
import org.koin.core.scope.Scope
|
|
|
|
import org.koin.standalone.KoinComponent
|
|
|
|
import org.koin.standalone.StandAloneContext
|
|
|
|
import org.koin.standalone.getKoin
|
|
|
|
import org.koin.standalone.inject
|
|
|
|
|
2018-10-10 17:46:43 +00:00
|
|
|
class DefaultSession(sessionParams: SessionParams) : Session, KoinComponent {
|
2018-10-08 15:52:45 +00:00
|
|
|
|
|
|
|
private val synchronizer by inject<Synchronizer>()
|
|
|
|
private val scope: Scope
|
|
|
|
|
|
|
|
init {
|
2018-10-10 17:46:43 +00:00
|
|
|
val sessionModule = SessionModule(sessionParams)
|
2018-10-08 15:52:45 +00:00
|
|
|
val syncModule = SyncModule()
|
|
|
|
StandAloneContext.loadKoinModules(listOf(sessionModule, syncModule))
|
|
|
|
scope = getKoin().createScope(SCOPE)
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun synchronizer(): Synchronizer {
|
|
|
|
return synchronizer
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun close() {
|
|
|
|
scope.close()
|
|
|
|
}
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
const val SCOPE: String = "session"
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|