* Update copyright holding and dates * compound IDE Macros updated * update copyright * update copyrights done * update templates and README
40 lines
1.3 KiB
Swift
40 lines
1.3 KiB
Swift
//
|
|
// Copyright 2025 Element Creations Ltd.
|
|
// Copyright 2022-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
|
|
|
|
protocol NotificationManagerDelegate: AnyObject {
|
|
func shouldDisplayInAppNotification(content: UNNotificationContent) -> Bool
|
|
func notificationTapped(content: UNNotificationContent) async
|
|
func handleInlineReply(_ service: NotificationManagerProtocol,
|
|
content: UNNotificationContent,
|
|
replyText: String) async
|
|
func registerForRemoteNotifications()
|
|
func unregisterForRemoteNotifications()
|
|
}
|
|
|
|
// MARK: - NotificationManagerProtocol
|
|
|
|
// sourcery: AutoMockable
|
|
protocol NotificationManagerProtocol: AnyObject {
|
|
var delegate: NotificationManagerDelegate? { get set }
|
|
|
|
func start()
|
|
func register(with deviceToken: Data) async -> Bool
|
|
func registrationFailed(with error: Error)
|
|
func showLocalNotification(with title: String, subtitle: String?) async
|
|
func setUserSession(_ userSession: UserSessionProtocol?)
|
|
|
|
func requestAuthorization()
|
|
|
|
func removeDeliveredMessageNotifications(for roomID: String) async
|
|
|
|
func removeDeliveredNotificationsForFullyReadRooms(_ rooms: [RoomSummary]) async
|
|
}
|