TypingIndicatorIncomingRepositoryImpl

internal class TypingIndicatorIncomingRepositoryImpl(userPropertyRepository: UserPropertyRepository, timeSource: TimeSource.WithComparableMarks = TimeSource.Monotonic) : TypingIndicatorIncomingRepository

Remembers, per conversation, when each user last sent a typing STARTED event.

Expiry is evaluated lazily instead of running a timer per typing user: observeUsersTyping waits for the next expiry inside the collector's coroutine. Nothing runs for conversations that are not being observed, and the timer is cancelled together with the collector.

Constructors

Link copied to clipboard
constructor(userPropertyRepository: UserPropertyRepository, timeSource: TimeSource.WithComparableMarks = TimeSource.Monotonic)

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open suspend override fun addTypingUserInConversation(conversationId: ConversationId, userId: UserId)
Link copied to clipboard
open suspend override fun clearExpiredTypingIndicators()
Link copied to clipboard
open suspend override fun observeUsersTyping(conversationId: ConversationId): Flow<Set<UserId>>
Link copied to clipboard
open suspend override fun removeTypingUserInConversation(conversationId: ConversationId, userId: UserId)