mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
"Poll start" event push notification (#1819)
* Handle polls in NotificationContentBuilder * Cleanup
This commit is contained in:
@@ -33,15 +33,21 @@ struct NotificationContentBuilder {
|
|||||||
case .invite:
|
case .invite:
|
||||||
return try await processInvited(notificationItem: notificationItem, mediaProvider: mediaProvider)
|
return try await processInvited(notificationItem: notificationItem, mediaProvider: mediaProvider)
|
||||||
case .timeline(let event):
|
case .timeline(let event):
|
||||||
switch try? event.eventType() {
|
guard let eventType = try? event.eventType() else {
|
||||||
|
return processEmpty(notificationItem: notificationItem)
|
||||||
|
}
|
||||||
|
|
||||||
|
switch eventType {
|
||||||
case let .messageLike(content):
|
case let .messageLike(content):
|
||||||
switch content {
|
switch content {
|
||||||
case .roomMessage(let messageType, _):
|
case .roomMessage(let messageType, _):
|
||||||
return try await processRoomMessage(notificationItem: notificationItem, messageType: messageType, mediaProvider: mediaProvider)
|
return try await processRoomMessage(notificationItem: notificationItem, messageType: messageType, mediaProvider: mediaProvider)
|
||||||
|
case .poll(let question):
|
||||||
|
return try await processPollStartEvent(notificationItem: notificationItem, pollQuestion: question, mediaProvider: mediaProvider)
|
||||||
default:
|
default:
|
||||||
return processEmpty(notificationItem: notificationItem)
|
return processEmpty(notificationItem: notificationItem)
|
||||||
}
|
}
|
||||||
default:
|
case .state:
|
||||||
return processEmpty(notificationItem: notificationItem)
|
return processEmpty(notificationItem: notificationItem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -116,6 +122,12 @@ struct NotificationContentBuilder {
|
|||||||
return notification
|
return notification
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func processPollStartEvent(notificationItem: NotificationItemProxyProtocol, pollQuestion: String, mediaProvider: MediaProviderProtocol?) async throws -> UNMutableNotificationContent {
|
||||||
|
let notification = try await processCommonRoomMessage(notificationItem: notificationItem, mediaProvider: mediaProvider)
|
||||||
|
notification.body = L10n.commonPollSummary(pollQuestion)
|
||||||
|
return notification
|
||||||
|
}
|
||||||
|
|
||||||
private func processCommonRoomMessage(notificationItem: NotificationItemProxyProtocol, mediaProvider: MediaProviderProtocol?) async throws -> UNMutableNotificationContent {
|
private func processCommonRoomMessage(notificationItem: NotificationItemProxyProtocol, mediaProvider: MediaProviderProtocol?) async throws -> UNMutableNotificationContent {
|
||||||
var notification = baseMutableContent(for: notificationItem)
|
var notification = baseMutableContent(for: notificationItem)
|
||||||
notification.title = notificationItem.senderDisplayName ?? notificationItem.roomDisplayName
|
notification.title = notificationItem.senderDisplayName ?? notificationItem.roomDisplayName
|
||||||
|
|||||||
Reference in New Issue
Block a user