RoomVC: Fix regression where read receipts can be duplicated

This commit is contained in:
manuroe 2018-06-29 15:26:41 +02:00
parent a4b1d2fe53
commit 2bafe3fa0c

View file

@ -107,7 +107,7 @@
@synchronized(bubbles)
{
NSMutableDictionary<NSString* /* eventId */, NSMutableArray<MXReceiptData*> *> *updatedCellDataReadReceipts = [NSMutableDictionary dictionary];
NSMutableDictionary<NSString* /* eventId */, NSArray<MXReceiptData*> *> *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;
}
}