Room Service
interface RoomService
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
abstract fun getLastTimelineEvent(roomId: RoomId, decryptionTimeout: Duration = INFINITE): Flow<Flow<TimelineEvent>?>
Link copied to clipboard
abstract fun getLastTimelineEvents(roomId: RoomId, decryptionTimeout: Duration = INFINITE, fetchTimeout: Duration = 1.minutes, limitPerFetch: Long = 20, minSize: Long? = null, maxSize: Long? = null): Flow<Flow<Flow<TimelineEvent>>?>
Returns the last timeline events as flow.
Link copied to clipboard
abstract fun getNextTimelineEvent(event: TimelineEvent, decryptionTimeout: Duration = INFINITE, fetchTimeout: Duration = 1.minutes, limitPerFetch: Long = 20): Flow<TimelineEvent?>?
Link copied to clipboard
Link copied to clipboard
abstract fun getPreviousTimelineEvent(event: TimelineEvent, decryptionTimeout: Duration = INFINITE, fetchTimeout: Duration = 1.minutes, limitPerFetch: Long = 20): Flow<TimelineEvent?>?
Link copied to clipboard
Link copied to clipboard
abstract fun getTimelineEvent(eventId: EventId, roomId: RoomId, decryptionTimeout: Duration = INFINITE, fetchTimeout: Duration = 1.minutes, limitPerFetch: Long = 20): 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
abstract fun getTimelineEventRelations(eventId: EventId, roomId: RoomId): Flow<Map<RelationType, Set<TimelineEventRelation>?>?>
abstract fun getTimelineEventRelations(eventId: EventId, roomId: RoomId, relationType: RelationType): Flow<Set<TimelineEventRelation>?>
Link copied to clipboard
abstract fun getTimelineEvents(startFrom: EventId, roomId: RoomId, direction: GetEvents.Direction = BACKWARDS, decryptionTimeout: Duration = INFINITE, fetchTimeout: Duration = 1.minutes, limitPerFetch: Long = 20, minSize: Long? = null, maxSize: Long? = null): Flow<Flow<TimelineEvent>>
Link copied to clipboard
abstract fun getTimelineEventsFromNowOn(decryptionTimeout: Duration = 30.seconds, syncResponseBufferSize: Int = 10): 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
abstract suspend fun sendMessage(roomId: RoomId, keepMediaInCache: Boolean = true, builder: suspend MessageBuilder.() -> Unit)
Inheritors
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.