commonMain.net.folivo.trixnity.client.room.createRoomModule.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of trixnity-client-jvm Show documentation
Show all versions of trixnity-client-jvm Show documentation
Multiplatform Kotlin SDK for matrix-protocol
package net.folivo.trixnity.client.room
import net.folivo.trixnity.client.key.KeyBackupService
import net.folivo.trixnity.client.key.OutgoingRoomKeyRequestEventHandler
import net.folivo.trixnity.core.EventHandler
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.named
import org.koin.core.module.dsl.singleOf
import org.koin.core.qualifier.named
import org.koin.dsl.module
fun createRoomModule() = module {
singleOf(::TimelineMutex)
singleOf(::RoomListHandler) {
bind()
named()
}
singleOf(::DirectRoomEventHandler) {
bind()
named()
}
single(named()) {
OutboxMessageEventHandler(
config = get(),
api = get(),
roomEventEncryptionServices = getAll(),
mediaService = get(),
roomOutboxMessageStore = get(),
outboxMessageMediaUploaderMappings = get(),
currentSyncState = get(),
tm = get(),
clock = get(),
)
}
singleOf(::RoomAccountDataEventHandler) {
bind()
named()
}
singleOf(::RoomStateEventHandler) {
bind()
named()
}
singleOf(::TypingEventHandlerImpl) {
bind()
bind()
named()
}
singleOf(::RoomUpgradeHandler) {
bind()
named()
}
singleOf(::TimelineEventHandlerImpl) {
bind()
bind()
named()
}
singleOf(::ForgetRoomServiceImpl) {
bind()
}
single(named()) {
MegolmRoomEventEncryptionService(
roomStore = get(),
loadMembersService = get(),
roomStateStore = get(),
olmCryptoStore = get(),
keyBackupService = get(named()),
outgoingRoomKeyRequestEventHandler = get(named()),
olmEncryptionService = get(),
)
}
singleOf(::UnencryptedRoomEventEncryptionService) {
bind()
named()
}
single {
RoomServiceImpl(
api = get(),
roomStore = get(),
roomStateStore = get(),
roomAccountDataStore = get(),
roomTimelineStore = get(),
roomOutboxMessageStore = get(),
roomEventEncryptionServices = getAll(),
forgetRoomService = get(),
mediaService = get(),
userInfo = get(),
timelineEventHandler = get(named()),
typingEventHandler = get(named()),
currentSyncState = get(),
scope = get(),
config = get(),
)
}
}