Fixes #1837 - Add support for m.call.invite events in the timeline, room list and notifications

This commit is contained in:
Stefan Ceriu
2024-03-02 19:12:02 +02:00
committed by Stefan Ceriu
parent 82a5d34dd7
commit 063b3732b1
12 changed files with 116 additions and 3 deletions
@@ -44,6 +44,8 @@ struct NotificationContentBuilder {
return try await processRoomMessage(notificationItem: notificationItem, messageType: messageType, mediaProvider: mediaProvider)
case .poll(let question):
return try await processPollStartEvent(notificationItem: notificationItem, pollQuestion: question, mediaProvider: mediaProvider)
case .callInvite:
return try await processCallInviteEvent(notificationItem: notificationItem, mediaProvider: mediaProvider)
default:
return processEmpty(notificationItem: notificationItem)
}
@@ -128,6 +130,12 @@ struct NotificationContentBuilder {
notification.body = L10n.commonPollSummary(pollQuestion)
return notification
}
private func processCallInviteEvent(notificationItem: NotificationItemProxyProtocol, mediaProvider: MediaProviderProtocol?) async throws -> UNMutableNotificationContent {
let notification = try await processCommonRoomMessage(notificationItem: notificationItem, mediaProvider: mediaProvider)
notification.body = L10n.commonCallInvite
return notification
}
private func processCommonRoomMessage(notificationItem: NotificationItemProxyProtocol, mediaProvider: MediaProviderProtocol?) async throws -> UNMutableNotificationContent {
var notification = baseMutableContent(for: notificationItem)