diff --git a/Session/Notifications/AppNotifications.swift b/Session/Notifications/AppNotifications.swift index e894f5ad6..f4a46f23b 100644 --- a/Session/Notifications/AppNotifications.swift +++ b/Session/Notifications/AppNotifications.swift @@ -230,15 +230,21 @@ public class NotificationPresenter: NSObject, NotificationsProtocol { threadId: thread.id, threadVariant: thread.variant ) + let fallbackSound: Preferences.Sound = db[.defaultNotificationSound] + .defaulting(to: Preferences.Sound.defaultNotificationSound) DispatchQueue.main.async { + let sound: Preferences.Sound? = self.requestSound( + thread: thread, + fallbackSound: fallbackSound + ) + notificationBody = MentionUtilities.highlightMentions( in: (notificationBody ?? ""), threadVariant: thread.variant, currentUserPublicKey: userPublicKey, currentUserBlindedPublicKey: userBlindedKey ) - let sound: Preferences.Sound? = self.requestSound(thread: thread) self.adaptee.notify( category: category, @@ -287,9 +293,14 @@ public class NotificationPresenter: NSObject, NotificationsProtocol { ) ) } + let fallbackSound: Preferences.Sound = db[.defaultNotificationSound] + .defaulting(to: Preferences.Sound.defaultNotificationSound) DispatchQueue.main.async { - let sound = self.requestSound(thread: thread) + let sound = self.requestSound( + thread: thread, + fallbackSound: fallbackSound + ) self.adaptee.notify( category: category, @@ -331,9 +342,14 @@ public class NotificationPresenter: NSObject, NotificationsProtocol { let userInfo = [ AppNotificationUserInfoKey.threadId: thread.id ] + let fallbackSound: Preferences.Sound = db[.defaultNotificationSound] + .defaulting(to: Preferences.Sound.defaultNotificationSound) DispatchQueue.main.async { - let sound: Preferences.Sound? = self.requestSound(thread: thread) + let sound: Preferences.Sound? = self.requestSound( + thread: thread, + fallbackSound: fallbackSound + ) self.adaptee.notify( category: .errorMessage, @@ -366,12 +382,12 @@ public class NotificationPresenter: NSObject, NotificationsProtocol { var mostRecentNotifications = TruncatedList(maxLength: kAudioNotificationsThrottleCount) - private func requestSound(thread: SessionThread) -> Preferences.Sound? { + private func requestSound(thread: SessionThread, fallbackSound: Preferences.Sound) -> Preferences.Sound? { guard checkIfShouldPlaySound() else { return nil } - - return thread.notificationSound + + return (thread.notificationSound ?? fallbackSound) } private func checkIfShouldPlaySound() -> Bool {