mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-05-02 14:16:59 +02:00
Fix potentially redundant table reloading.
This commit is contained in:
@@ -1098,6 +1098,11 @@ NSString *const URLPreviewDidUpdateNotification = @"URLPreviewDidUpdateNotificat
|
||||
// Set the preview data.
|
||||
MXWeakify(self);
|
||||
|
||||
NSDictionary<NSString *, NSString*> *userInfo = @{
|
||||
@"eventId": lastComponent.event.eventId,
|
||||
@"roomId": self.roomId
|
||||
};
|
||||
|
||||
[URLPreviewManager.shared previewFor:lastComponent.link
|
||||
and:lastComponent.event
|
||||
with:self.mxSession
|
||||
@@ -1108,7 +1113,7 @@ NSString *const URLPreviewDidUpdateNotification = @"URLPreviewDidUpdateNotificat
|
||||
self.urlPreviewData = urlPreviewData;
|
||||
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[NSNotificationCenter.defaultCenter postNotificationName:URLPreviewDidUpdateNotification object:self];
|
||||
[NSNotificationCenter.defaultCenter postNotificationName:URLPreviewDidUpdateNotification object:nil userInfo:userInfo];
|
||||
});
|
||||
|
||||
} failure:^(NSError * _Nullable error) {
|
||||
@@ -1118,7 +1123,7 @@ NSString *const URLPreviewDidUpdateNotification = @"URLPreviewDidUpdateNotificat
|
||||
self.showURLPreview = NO;
|
||||
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[NSNotificationCenter.defaultCenter postNotificationName:URLPreviewDidUpdateNotification object:self];
|
||||
[NSNotificationCenter.defaultCenter postNotificationName:URLPreviewDidUpdateNotification object:nil userInfo:userInfo];
|
||||
});
|
||||
}];
|
||||
}
|
||||
|
||||
@@ -97,10 +97,17 @@ const CGFloat kTypingCellHeight = 24;
|
||||
}];
|
||||
|
||||
// Observe URL preview updates.
|
||||
kURLPreviewDidUpdateNotificationObserver = [NSNotificationCenter.defaultCenter addObserverForName:URLPreviewDidUpdateNotification object:nil queue:NSOperationQueue.mainQueue usingBlock:^(NSNotification * _Nonnull note) {
|
||||
kURLPreviewDidUpdateNotificationObserver = [NSNotificationCenter.defaultCenter addObserverForName:URLPreviewDidUpdateNotification object:nil queue:NSOperationQueue.mainQueue usingBlock:^(NSNotification * _Nonnull notification) {
|
||||
|
||||
// Refresh all cells.
|
||||
[self refreshCells];
|
||||
if (![(NSString*)notification.userInfo[@"roomId"] isEqualToString:self.roomId] || !self.delegate)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Refresh the updated cell.
|
||||
// Note - it doesn't appear as though MXKRoomViewController actually uses the index path.
|
||||
NSInteger index = [self indexOfCellDataWithEventId:(NSString*)notification.userInfo[@"eventId"]];
|
||||
[self.delegate dataSource:self didCellChange:[NSIndexPath indexPathWithIndex:index]];
|
||||
}];
|
||||
|
||||
[self registerKeyVerificationRequestNotification];
|
||||
|
||||
Reference in New Issue
Block a user