Merge pull request #7231 from vector-im/alfogrillo/render_poll_end_event

Render poll ended event in the timeline (PSG-196)
This commit is contained in:
Alfonso Grillo
2023-01-10 14:49:13 +01:00
committed by GitHub
21 changed files with 91 additions and 17 deletions
@@ -152,6 +152,7 @@ NSString *const URLPreviewDidUpdateNotification = @"URLPreviewDidUpdateNotificat
break;
}
case MXEventTypePollStart:
case MXEventTypePollEnd:
{
self.tag = RoomBubbleCellDataTagPoll;
self.collapsable = NO;
@@ -635,7 +636,7 @@ NSString *const URLPreviewDidUpdateNotification = @"URLPreviewDidUpdateNotificat
__block NSInteger firstVisibleComponentIndex = NSNotFound;
MXEvent *firstEvent = self.events.firstObject;
BOOL isPoll = (firstEvent.eventType == MXEventTypePollStart);
BOOL isPoll = firstEvent.isTimelinePollEvent;
BOOL isVoiceBroadcast = (firstEvent.eventType == MXEventTypeCustom && [firstEvent.type isEqualToString: VoiceBroadcastSettings.voiceBroadcastInfoContentKeyType]);
if ((isPoll || self.attachment || isVoiceBroadcast) && self.bubbleComponents.count)
@@ -1193,6 +1194,7 @@ NSString *const URLPreviewDidUpdateNotification = @"URLPreviewDidUpdateNotificat
shouldAddEvent = NO;
break;
case MXEventTypePollStart:
case MXEventTypePollEnd:
shouldAddEvent = NO;
break;
case MXEventTypeBeaconInfo:
+4 -3
View File
@@ -3974,7 +3974,7 @@ static CGSize kThreadListBarButtonItemImageSize;
}]];
}
if (!isJitsiCallEvent && selectedEvent.eventType != MXEventTypePollStart &&
if (!isJitsiCallEvent && !selectedEvent.isTimelinePollEvent &&
selectedEvent.eventType != MXEventTypeBeaconInfo)
{
[self.eventMenuBuilder addItemWithType:EventMenuItemTypeQuote
@@ -3995,7 +3995,7 @@ static CGSize kThreadListBarButtonItemImageSize;
}
if (selectedEvent.sentState == MXEventSentStateSent &&
selectedEvent.eventType != MXEventTypePollStart &&
!selectedEvent.isTimelinePollEvent &&
// Forwarding of live-location shares still to be implemented
selectedEvent.eventType != MXEventTypeBeaconInfo)
{
@@ -4011,7 +4011,7 @@ static CGSize kThreadListBarButtonItemImageSize;
}]];
}
if (!isJitsiCallEvent && BuildSettings.messageDetailsAllowShare && selectedEvent.eventType != MXEventTypePollStart &&
if (!isJitsiCallEvent && BuildSettings.messageDetailsAllowShare && !selectedEvent.isTimelinePollEvent &&
selectedEvent.eventType != MXEventTypeBeaconInfo)
{
[self.eventMenuBuilder addItemWithType:EventMenuItemTypeShare
@@ -7150,6 +7150,7 @@ static CGSize kThreadListBarButtonItemImageSize;
case MXEventTypeKeyVerificationDone:
case MXEventTypeKeyVerificationCancel:
case MXEventTypePollStart:
case MXEventTypePollEnd:
case MXEventTypeBeaconInfo:
result = NO;
break;
@@ -23,11 +23,13 @@ class PollPlainCell: SizableBaseRoomCell, RoomCellReactionsDisplayable, RoomCell
override func render(_ cellData: MXKCellData!) {
super.render(cellData)
guard let contentView = roomCellContentView?.innerContentView,
let bubbleData = cellData as? RoomBubbleCellData,
let event = bubbleData.events.last,
event.eventType == __MXEventType.pollStart,
let controller = TimelinePollProvider.shared.buildTimelinePollVCForEvent(event) else {
guard
let contentView = roomCellContentView?.innerContentView,
let bubbleData = cellData as? RoomBubbleCellData,
let event = bubbleData.events.last,
event.isTimelinePollEvent,
let controller = TimelinePollProvider.shared.buildTimelinePollVCForEvent(event)
else {
return
}