From 667329252a228c04fb7feb1bb256e79a82bdf9a1 Mon Sep 17 00:00:00 2001 From: manuroe Date: Fri, 29 Jun 2018 15:26:41 +0200 Subject: [PATCH] RoomVC: Fix regression where read receipts can be duplicated --- Riot/Model/Room/RoomDataSource.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Riot/Model/Room/RoomDataSource.m b/Riot/Model/Room/RoomDataSource.m index 4fe9680c0..436405d0d 100644 --- a/Riot/Model/Room/RoomDataSource.m +++ b/Riot/Model/Room/RoomDataSource.m @@ -107,7 +107,7 @@ @synchronized(bubbles) { - NSMutableDictionary *> *updatedCellDataReadReceipts = [NSMutableDictionary dictionary]; + NSMutableDictionary *> *updatedCellDataReadReceipts = [NSMutableDictionary dictionary]; for (RoomBubbleCellData *cellData in bubbles) { for (NSString *eventId in cellData.readReceipts) @@ -124,10 +124,11 @@ if (!updatedCellDataReadReceipts[eventId]) { - updatedCellDataReadReceipts[eventId] = [cellData.readReceipts[eventId] mutableCopy]; + updatedCellDataReadReceipts[eventId] = cellData.readReceipts[eventId]; } - [updatedCellDataReadReceipts[eventId] removeObject:receiptData]; + NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userId!=%@", receiptData.userId]; + updatedCellDataReadReceipts[eventId] = [updatedCellDataReadReceipts[eventId] filteredArrayUsingPredicate:predicate]; break; } }