Room Service Impl
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
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
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, minSize: Long?, maxSize: 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
Link copied to clipboard
open override fun getPreviousTimelineEvent(event: TimelineEvent, decryptionTimeout: Duration, fetchTimeout: Duration, limitPerFetch: Long): Flow<TimelineEvent?>?
Link copied to clipboard
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, minSize: Long?, maxSize: Long?): Flow<Flow<TimelineEvent>>
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
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
fun RoomService.getTimelineEventsAround(startFrom: EventId, roomId: RoomId, decryptionTimeout: Duration = Duration.INFINITE, fetchTimeout: Duration = 1.minutes, limitPerFetch: Long = 20, maxSizeBefore: StateFlow<Int>, maxSizeAfter: StateFlow<Int>): Flow<List<Flow<TimelineEvent>>>
Returns all timeline events around a starting event sorted with higher indexes being more recent.
suspend fun RoomService.getTimelineEventsAround(startFrom: EventId, roomId: RoomId, decryptionTimeout: Duration = Duration.INFINITE, fetchTimeout: Duration = 1.minutes, limitPerFetch: Long = 20, minSizeBefore: Long? = 2, minSizeAfter: Long? = minSizeBefore, maxSizeBefore: Long = 10, maxSizeAfter: Long = maxSizeBefore): List<Flow<TimelineEvent>>
Returns all timeline events around a starting event.