Room Service Impl
class RoomServiceImpl(api: MatrixClientServerApiClient, roomStore: RoomStore, roomStateStore: RoomStateStore, roomAccountDataStore: RoomAccountDataStore, roomTimelineStore: RoomTimelineStore, roomOutboxMessageStore: RoomOutboxMessageStore, roomEventDecryptionServices: List<RoomEventDecryptionService>, mediaService: MediaService, timelineEventHandler: TimelineEventHandler, typingEventHandler: TypingEventHandler, currentSyncState: CurrentSyncState, 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, typingEventHandler: TypingEventHandler, currentSyncState: CurrentSyncState, scope: CoroutineScope)
Functions
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Upgraded rooms (Room.hasBeenReplaced) should not be rendered.
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, allowReplaceContent: Boolean): Flow<TimelineEvent?>?
Link copied to clipboard
Link copied to clipboard
open override fun getPreviousTimelineEvent(event: TimelineEvent, decryptionTimeout: Duration, fetchTimeout: Duration, limitPerFetch: Long, allowReplaceContent: Boolean): Flow<TimelineEvent?>?
Link copied to clipboard
Link copied to clipboard
open override fun getTimelineEvent(roomId: RoomId, eventId: EventId, decryptionTimeout: Duration, fetchTimeout: Duration, limitPerFetch: Long, allowReplaceContent: Boolean): Flow<TimelineEvent?>
Returns the TimelineEvent and starts decryption with the given CoroutineScope. If it is not found locally, it is tried to find it by filling the sync-gaps.
Link copied to clipboard
open override fun getTimelineEventRelations(roomId: RoomId, eventId: EventId): Flow<Map<RelationType, Set<TimelineEventRelation>?>?>
open override fun getTimelineEventRelations(roomId: RoomId, eventId: EventId, relationType: RelationType): Flow<Set<TimelineEventRelation>?>
Link copied to clipboard
open override fun getTimelineEvents(roomId: RoomId, startFrom: EventId, 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): String
Puts a message to the outbox.
Properties
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.getTimeline(roomId: RoomId, decryptionTimeout: Duration = Duration.INFINITE, fetchTimeout: Duration = 1.minutes, limitPerFetch: Long = 20, loadingSize: Long = 20): SimpleTimeline
Link copied to clipboard
fun RoomService.getTimelineEventsAround(roomId: RoomId, startFrom: EventId, 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(roomId: RoomId, startFrom: EventId, 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.