desktop: show macOS notifications via Notification Center (#7879)

This commit is contained in:
Evgeny @ SimpleX Chat authored and GitHub committed 2026-11-05 07:47:02 +00:00
1 parent d461333135
commit 68369e3bbd
1 file changed
+5
@@ -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<Pair<Pair<Long, ChatId>, 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())