mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-01 09:42:39 +00:00
52b411e954
This reverts commit 4c71cae0f.
Comparing against other delivered notifications doesn't reflect the timeline:
in rooms set to mentions and keywords, after swiping away newer notifications
or with messages sent from another device, newer messages can exist without a
notification, so the room opened live with the tapped event out of view.
42 lines
1.4 KiB
Swift
42 lines
1.4 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
|
|
|
|
func updateAppBadgeCount() async
|
|
}
|