Merge pull request #7808 from vector-im/feature/bma/ignoreTyping
No typing for ignored user
This commit is contained in:
		
						commit
						ed6b2e3846
					
				
							
								
								
									
										1
									
								
								changelog.d/2965.bugfix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								changelog.d/2965.bugfix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| Do not show typing notification of ignored users. | ||||
| @ -18,6 +18,7 @@ package org.matrix.android.sdk.internal.session.sync.handler.room | ||||
| 
 | ||||
| import io.realm.Realm | ||||
| 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.session.room.membership.RoomMemberHelper | ||||
| import org.matrix.android.sdk.internal.session.typing.DefaultTypingUsersTracker | ||||
| @ -30,8 +31,15 @@ internal class RoomTypingUsersHandler @Inject constructor( | ||||
| 
 | ||||
|     // TODO This could be handled outside of the Realm transaction. Use the new aggregator? | ||||
|     fun handle(realm: Realm, roomId: String, ephemeralResult: RoomSyncHandler.EphemeralResult?) { | ||||
|         val typingUserIds = ephemeralResult?.typingUserIds | ||||
|         if (typingUserIds.isNullOrEmpty()) { | ||||
|             typingUsersTracker.setTypingUsersFromRoom(roomId, emptyList()) | ||||
|             return | ||||
|         } | ||||
|         // Filter ignored users and current user | ||||
|         val filteredUserIds = realm.where(IgnoredUserEntity::class.java).findAll().map { it.userId } + userId | ||||
|         val roomMemberHelper = RoomMemberHelper(realm, roomId) | ||||
|         val typingIds = ephemeralResult?.typingUserIds?.filter { it != userId }.orEmpty() | ||||
|         val typingIds = typingUserIds.filter { it !in filteredUserIds } | ||||
|         val senderInfo = typingIds.map { userId -> | ||||
|             val roomMemberSummaryEntity = roomMemberHelper.getLastRoomMember(userId) | ||||
|             SenderInfo( | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user