* implemented grouping * implemented presenting the thread * improved the implementation by reusing the presentation action * add Thread group to DMs to differentiate from non threaded messages of the same DM * name for a threaded notification in group room * focus event when tapping on a notification * pr suggestions * document
75 lines
2.2 KiB
Swift
75 lines
2.2 KiB
Swift
//
|
|
// Copyright 2025 Element Creations Ltd.
|
|
// Copyright 2023-2025 New Vector Ltd.
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
|
// Please see LICENSE files in the repository root for full details.
|
|
//
|
|
|
|
import Foundation
|
|
import UserNotifications
|
|
|
|
extension UNNotificationContent {
|
|
@objc var receiverID: String? {
|
|
userInfo[NotificationConstants.UserInfoKey.receiverIdentifier] as? String
|
|
}
|
|
|
|
@objc var roomID: String? {
|
|
userInfo[NotificationConstants.UserInfoKey.roomIdentifier] as? String
|
|
}
|
|
|
|
@objc var eventID: String? {
|
|
userInfo[NotificationConstants.UserInfoKey.eventIdentifier] as? String
|
|
}
|
|
|
|
@objc var pusherNotificationClientIdentifier: String? {
|
|
userInfo[NotificationConstants.UserInfoKey.pusherNotificationClientIdentifier] as? String
|
|
}
|
|
|
|
@objc var threadRootEventID: String? {
|
|
userInfo[NotificationConstants.UserInfoKey.threadRootEventIdentifier] as? String
|
|
}
|
|
}
|
|
|
|
extension UNMutableNotificationContent {
|
|
override var receiverID: String? {
|
|
get {
|
|
userInfo[NotificationConstants.UserInfoKey.receiverIdentifier] as? String
|
|
}
|
|
set {
|
|
userInfo[NotificationConstants.UserInfoKey.receiverIdentifier] = newValue
|
|
}
|
|
}
|
|
|
|
override var roomID: String? {
|
|
get {
|
|
userInfo[NotificationConstants.UserInfoKey.roomIdentifier] as? String
|
|
}
|
|
set {
|
|
userInfo[NotificationConstants.UserInfoKey.roomIdentifier] = newValue
|
|
}
|
|
}
|
|
|
|
override var eventID: String? {
|
|
get {
|
|
userInfo[NotificationConstants.UserInfoKey.eventIdentifier] as? String
|
|
}
|
|
set {
|
|
userInfo[NotificationConstants.UserInfoKey.eventIdentifier] = newValue
|
|
}
|
|
}
|
|
|
|
override var threadRootEventID: String? {
|
|
get {
|
|
userInfo[NotificationConstants.UserInfoKey.threadRootEventIdentifier] as? String
|
|
}
|
|
set {
|
|
userInfo[NotificationConstants.UserInfoKey.threadRootEventIdentifier] = newValue
|
|
}
|
|
}
|
|
|
|
var unreadCount: Int? {
|
|
userInfo[NotificationConstants.UserInfoKey.unreadCount] as? Int
|
|
}
|
|
}
|