Merge pull request #2374 from element-hq/feature/bma/typingRendering

Typing notification rendering
This commit is contained in:
Benoit Marty 2024-02-09 22:29:14 +01:00 committed by GitHub
commit b8d9c89ec4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
36 changed files with 708 additions and 4 deletions

View file

@ -73,6 +73,7 @@ import org.matrix.rustcomponents.sdk.RoomInfoListener
import org.matrix.rustcomponents.sdk.RoomListItem
import org.matrix.rustcomponents.sdk.RoomMessageEventContentWithoutRelation
import org.matrix.rustcomponents.sdk.SendAttachmentJoinHandle
import org.matrix.rustcomponents.sdk.TypingNotificationsListener
import org.matrix.rustcomponents.sdk.WidgetCapabilities
import org.matrix.rustcomponents.sdk.WidgetCapabilitiesProvider
import org.matrix.rustcomponents.sdk.messageEventContentFromHtml
@ -113,6 +114,22 @@ class RustMatrixRoom(
})
}
override val roomTypingMembersFlow: Flow<List<UserId>> = mxCallbackFlow {
launch {
val initial = emptyList<UserId>()
channel.trySend(initial)
}
innerRoom.subscribeToTypingNotifications(object : TypingNotificationsListener {
override fun call(typingUserIds: List<String>) {
channel.trySend(
typingUserIds
.filter { it != sessionData.userId }
.map(::UserId)
)
}
})
}
// Create a dispatcher for all room methods...
private val roomDispatcher = coroutineDispatchers.io.limitedParallelism(32)