From 68369e3bbd68fb9e5ef8e85783a2883e7caa4703 Mon Sep 17 00:00:00 2001 From: "Evgeny @ SimpleX Chat" <259188159+evgeny-simplex@users.noreply.github.com> Date: Thu, 5 Nov 2026 07:47:02 +0000 Subject: [PATCH] desktop: show macOS notifications via Notification Center (#7879) --- .../kotlin/chat/simplex/common/model/NtfManager.desktop.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/model/NtfManager.desktop.kt b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/model/NtfManager.desktop.kt index 0a61864294..a30bee29e0 100644 --- a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/model/NtfManager.desktop.kt +++ b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/model/NtfManager.desktop.kt @@ -8,6 +8,7 @@ import chat.simplex.common.views.call.RcvCallInvitation import chat.simplex.common.views.helpers.* import chat.simplex.res.* import com.sshtools.twoslices.* +import com.sshtools.twoslices.impl.NotificationCenterToaster import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import java.awt.* @@ -18,6 +19,7 @@ import javax.imageio.ImageIO object NtfManager { private val prevNtfs = arrayListOf, Slice>>() private val prevNtfsMutex: Mutex = Mutex() + private val macToaster by lazy { NotificationCenterToaster(ToasterFactory.getSettings()) } fun notifyCallInvitation(invitation: RcvCallInvitation): Boolean { if (simplexWindowState.windowFocused.value) return false @@ -133,6 +135,9 @@ object NtfManager { builder.action(it.first, it.second) } try { + if (desktopPlatform.isMac()) { + builder.toaster(macToaster) + } withBGApi { prevNtfsMutex.withLock { prevNtfs.add(Pair(userId, chatId) to builder.toast())