Enable notifications on macOS

- Add macOS support to NotificationService
- Use NSApplication.shared.isActive to check app state on macOS
- Move notification logic outside of iOS-only block in ChatViewModel
- Notifications now work for both mentions and private messages on macOS
- Keep haptic feedback iOS-only as it's not available on macOS
This commit is contained in:
jack
2025-07-03 23:21:29 +02:00
parent 63c0ed4960
commit d6ae19e11e
2 changed files with 19 additions and 12 deletions
+7 -4
View File
@@ -430,14 +430,19 @@ extension ChatViewModel: BitchatDelegate {
messages.append(message)
}
#if os(iOS)
// Check if we're mentioned
let isMentioned = message.mentions?.contains(nickname) ?? false
// Send notifications for mentions and private messages when app is in background
if isMentioned && message.sender != nickname {
NotificationService.shared.sendMentionNotification(from: message.sender, message: message.content)
} else if message.isPrivate && message.sender != nickname {
NotificationService.shared.sendPrivateMessageNotification(from: message.sender, message: message.content)
}
#if os(iOS)
// Haptic feedback for iOS only
if isMentioned && message.sender != nickname {
// Very prominent haptic for @mentions - triple tap with heavy impact
let impactFeedback = UIImpactFeedbackGenerator(style: .heavy)
impactFeedback.prepare()
@@ -450,8 +455,6 @@ extension ChatViewModel: BitchatDelegate {
impactFeedback.impactOccurred()
}
} else if message.isPrivate && message.sender != nickname {
NotificationService.shared.sendPrivateMessageNotification(from: message.sender, message: message.content)
// Heavy haptic for private messages - more pronounced
let impactFeedback = UIImpactFeedbackGenerator(style: .heavy)
impactFeedback.prepare()