RoomVC: Add a re-request keys button on message unable to decrypt

Take Steve's remark into account
This commit is contained in:
manuroe
2018-06-12 18:21:04 +02:00
parent bfdc4e898f
commit 2115970a49
+22 -6
View File
@@ -183,6 +183,9 @@
// Observer kMXRoomSummaryDidChangeNotification to keep updated the missed discussion count
id mxRoomSummaryDidChangeObserver;
// Observer for removing the re-request explanation/waiting dialog
id mxEventDidDecryptNotificationObserver;
// The table view cell in which the read marker is displayed (nil by default).
MXKRoomBubbleTableViewCell *readMarkerTableViewCell;
@@ -594,6 +597,12 @@
[[NSNotificationCenter defaultCenter] removeObserver:mxRoomSummaryDidChangeObserver];
mxRoomSummaryDidChangeObserver = nil;
}
if (mxEventDidDecryptNotificationObserver)
{
[[NSNotificationCenter defaultCenter] removeObserver:mxEventDidDecryptNotificationObserver];
mxEventDidDecryptNotificationObserver = nil;
}
}
- (void)viewDidLayoutSubviews
@@ -1105,6 +1114,11 @@
[[NSNotificationCenter defaultCenter] removeObserver:mxRoomSummaryDidChangeObserver];
mxRoomSummaryDidChangeObserver = nil;
}
if (mxEventDidDecryptNotificationObserver)
{
[[NSNotificationCenter defaultCenter] removeObserver:mxEventDidDecryptNotificationObserver];
mxEventDidDecryptNotificationObserver = nil;
}
[self removeCallNotificationsListeners];
[self removeWidgetNotificationsListeners];
@@ -4610,16 +4624,16 @@
// Observe kMXEventDidDecryptNotification to remove automatically the dialog
// if the user has shared the keys from another device
id didDecryptObserver;
didDecryptObserver = [[NSNotificationCenter defaultCenter] addObserverForName:kMXEventDidDecryptNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notif) {
mxEventDidDecryptNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:kMXEventDidDecryptNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notif) {
MXStrongifyAndReturnIfNil(self);
MXEvent *decryptedEvent = notif.object;
if ([decryptedEvent.eventId isEqualToString:event.eventId])
{
[[NSNotificationCenter defaultCenter] removeObserver:didDecryptObserver];
[[NSNotificationCenter defaultCenter] removeObserver:self->mxEventDidDecryptNotificationObserver];
self->mxEventDidDecryptNotificationObserver = nil;
MXStrongifyAndReturnIfNil(self);
if (self->currentAlert == alert)
{
[self->currentAlert dismissViewControllerAnimated:YES completion:nil];
@@ -4639,9 +4653,11 @@
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
[[NSNotificationCenter defaultCenter] removeObserver:didDecryptObserver];
MXStrongifyAndReturnIfNil(self);
[[NSNotificationCenter defaultCenter] removeObserver:self->mxEventDidDecryptNotificationObserver];
self->mxEventDidDecryptNotificationObserver = nil;
self->currentAlert = nil;
}]];