RoomServiceImpl

class RoomServiceImpl(api: MatrixClientServerApiClient, roomStore: RoomStore, roomStateStore: RoomStateStore, roomAccountDataStore: RoomAccountDataStore, roomTimelineStore: RoomTimelineStore, roomOutboxMessageStore: RoomOutboxMessageStore, roomEventDecryptionServices: List<RoomEventDecryptionService>, mediaService: MediaService, timelineEventHandler: TimelineEventHandler, currentSyncState: CurrentSyncState, userInfo: UserInfo, scope: CoroutineScope) : RoomService

Constructors

Link copied to clipboard
fun RoomServiceImpl(api: MatrixClientServerApiClient, roomStore: RoomStore, roomStateStore: RoomStateStore, roomAccountDataStore: RoomAccountDataStore, roomTimelineStore: RoomTimelineStore, roomOutboxMessageStore: RoomOutboxMessageStore, roomEventDecryptionServices: List<RoomEventDecryptionService>, mediaService: MediaService, timelineEventHandler: TimelineEventHandler, currentSyncState: CurrentSyncState, userInfo: UserInfo, scope: CoroutineScope)

Functions

Link copied to clipboard
open suspend override fun abortSendMessage(transactionId: String)
Link copied to clipboard
open override fun canBeRedacted(timelineEvent: TimelineEvent): Flow<Boolean>
Link copied to clipboard
open suspend override fun fillTimelineGaps(startEventId: EventId, roomId: RoomId, limit: Long)
Link copied to clipboard
open override fun <C : RoomAccountDataEventContent> getAccountData(roomId: RoomId, eventContentClass: KClass<C>, key: String): Flow<C?>
Link copied to clipboard
open override fun getAll(): StateFlow<Map<RoomId, StateFlow<Room?>>>
Link copied to clipboard
open override fun <C : StateEventContent> getAllState(roomId: RoomId, eventContentClass: KClass<C>): Flow<Map<String, Event<C>?>?>
Link copied to clipboard
open override fun getById(roomId: RoomId): Flow<Room?>
Link copied to clipboard
open override fun getLastTimelineEvent(roomId: RoomId, decryptionTimeout: Duration): Flow<Flow<TimelineEvent?>?>
Link copied to clipboard
open override fun getLastTimelineEvents(roomId: RoomId, decryptionTimeout: Duration, fetchTimeout: Duration, limitPerFetch: Long): Flow<Flow<Flow<TimelineEvent?>>?>

Returns the last timeline events as flow.

Link copied to clipboard
open override fun getNextTimelineEvent(event: TimelineEvent, decryptionTimeout: Duration, fetchTimeout: Duration, limitPerFetch: Long): Flow<TimelineEvent?>?
Link copied to clipboard
open override fun getOutbox(): StateFlow<List<RoomOutboxMessage<*>>>
Link copied to clipboard
open override fun getPreviousTimelineEvent(event: TimelineEvent, decryptionTimeout: Duration, fetchTimeout: Duration, limitPerFetch: Long): Flow<TimelineEvent?>?
Link copied to clipboard
open override fun <C : StateEventContent> getState(roomId: RoomId, stateKey: String, eventContentClass: KClass<C>): Flow<Event<C>?>
Link copied to clipboard
open override fun getTimelineEvent(eventId: EventId, roomId: RoomId, decryptionTimeout: Duration, fetchTimeout: Duration, limitPerFetch: Long): Flow<TimelineEvent?>
Link copied to clipboard
open override fun getTimelineEventRelations(eventId: EventId, roomId: RoomId): Flow<Map<RelationType, Set<TimelineEventRelation>?>?>
open override fun getTimelineEventRelations(eventId: EventId, roomId: RoomId, relationType: RelationType): Flow<Set<TimelineEventRelation>?>
Link copied to clipboard
open override fun getTimelineEvents(startFrom: EventId, roomId: RoomId, direction: GetEvents.Direction, decryptionTimeout: Duration, fetchTimeout: Duration, limitPerFetch: Long): Flow<Flow<TimelineEvent?>>

Returns a flow of timeline events wrapped in a flow, which emits, when there is a new timeline event at the end of the timeline.

Link copied to clipboard
open override fun getTimelineEventsAround(startFrom: EventId, roomId: RoomId, maxSizeBefore: StateFlow<Int>, maxSizeAfter: StateFlow<Int>, decryptionTimeout: Duration, fetchTimeout: Duration, limitPerFetch: Long): Flow<List<Flow<TimelineEvent?>>>

Returns all timeline events around a starting event. This also triggers decryption for each timeline event.

Link copied to clipboard
open override fun getTimelineEventsFromNowOn(decryptionTimeout: Duration, syncResponseBufferSize: Int): Flow<TimelineEvent>

Returns all timeline events from the moment this method is called. This also triggers decryption for each timeline event.

Link copied to clipboard
open suspend override fun retrySendMessage(transactionId: String)
Link copied to clipboard
open suspend override fun sendMessage(roomId: RoomId, keepMediaInCache: Boolean, builder: suspend MessageBuilder.() -> Unit)

Extensions

Link copied to clipboard
inline fun <C : RoomAccountDataEventContent> RoomService.getAccountData(roomId: RoomId, key: String = ""): Flow<C?>
Link copied to clipboard
inline fun <C : StateEventContent> RoomService.getAllState(roomId: RoomId): Flow<Map<String, Event<C>?>?>
Link copied to clipboard
inline fun <C : StateEventContent> RoomService.getState(roomId: RoomId, stateKey: String = ""): Flow<Event<C>?>