Merge pull request #1919 from vector-im/bf_multiple_read_receipts

RoomVC: Fix regression where read receipts can be duplicated
This commit is contained in:
manuroe
2018-07-02 14:45:34 +02:00
committed by GitHub
+4 -3
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;
}
}