瀏覽代碼

synchronize unread message badge update

cyberta 2 年之前
父節點
當前提交
82fbb421e3
共有 1 個文件被更改,包括 3 次插入0 次删除
  1. 3 0
      deltachat-ios/Helper/NotificationManager.swift

+ 3 - 0
deltachat-ios/Helper/NotificationManager.swift

@@ -10,6 +10,7 @@ public class NotificationManager {
 
     private let dcAccounts: DcAccounts
     private var dcContext: DcContext
+    private static let lock = NSObject()
 
     init(dcAccounts: DcAccounts) {
         self.dcAccounts = dcAccounts
@@ -25,6 +26,8 @@ public class NotificationManager {
     }
 
     public static func updateApplicationIconBadge(dcContext: DcContext, reset: Bool) {
+        objc_sync_enter(lock)
+        defer { objc_sync_exit(lock) }
         var unreadMessages = 0
         if !reset {
             unreadMessages = dcContext.getFreshMessages().count