mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-16 20:10:04 +03:00
Ignore typing notification for ignored users (part of #2965)
This commit is contained in:
parent
14290abfcf
commit
b063b25e8c
1 changed files with 4 additions and 1 deletions
|
@ -18,6 +18,7 @@ package org.matrix.android.sdk.internal.session.sync.handler.room
|
||||||
|
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
import org.matrix.android.sdk.api.session.room.sender.SenderInfo
|
import org.matrix.android.sdk.api.session.room.sender.SenderInfo
|
||||||
|
import org.matrix.android.sdk.internal.database.model.IgnoredUserEntity
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
import org.matrix.android.sdk.internal.session.room.membership.RoomMemberHelper
|
import org.matrix.android.sdk.internal.session.room.membership.RoomMemberHelper
|
||||||
import org.matrix.android.sdk.internal.session.typing.DefaultTypingUsersTracker
|
import org.matrix.android.sdk.internal.session.typing.DefaultTypingUsersTracker
|
||||||
|
@ -30,8 +31,10 @@ internal class RoomTypingUsersHandler @Inject constructor(
|
||||||
|
|
||||||
// TODO This could be handled outside of the Realm transaction. Use the new aggregator?
|
// TODO This could be handled outside of the Realm transaction. Use the new aggregator?
|
||||||
fun handle(realm: Realm, roomId: String, ephemeralResult: RoomSyncHandler.EphemeralResult?) {
|
fun handle(realm: Realm, roomId: String, ephemeralResult: RoomSyncHandler.EphemeralResult?) {
|
||||||
|
// Filter ignored users and current user
|
||||||
|
val filteredUserIds = realm.where(IgnoredUserEntity::class.java).findAll().map { it.userId } + userId
|
||||||
val roomMemberHelper = RoomMemberHelper(realm, roomId)
|
val roomMemberHelper = RoomMemberHelper(realm, roomId)
|
||||||
val typingIds = ephemeralResult?.typingUserIds?.filter { it != userId }.orEmpty()
|
val typingIds = ephemeralResult?.typingUserIds?.filter { it !in filteredUserIds }.orEmpty()
|
||||||
val senderInfo = typingIds.map { userId ->
|
val senderInfo = typingIds.map { userId ->
|
||||||
val roomMemberSummaryEntity = roomMemberHelper.getLastRoomMember(userId)
|
val roomMemberSummaryEntity = roomMemberHelper.getLastRoomMember(userId)
|
||||||
SenderInfo(
|
SenderInfo(
|
||||||
|
|
Loading…
Add table
Reference in a new issue