diff --git a/Ring/Ring/TabBar/ChatTabBarItemViewModel.swift b/Ring/Ring/TabBar/ChatTabBarItemViewModel.swift index 65c1ac412f8eab1401c84c5d5e6cf130b93d0702..97ae27b46072194c95c008c5f065f78a8edaf234 100644 --- a/Ring/Ring/TabBar/ChatTabBarItemViewModel.swift +++ b/Ring/Ring/TabBar/ChatTabBarItemViewModel.swift @@ -28,12 +28,18 @@ class ChatTabBarItemViewModel: ViewModel, TabBarItemViewModel { required init(with injectionBag: InjectionBag) { let accountService = injectionBag.accountService let conversationService = injectionBag.conversationsService - let accountHelper = AccountModelHelper(withAccount: accountService.currentAccount!) + let contactsService = injectionBag.contactsService self.itemBadgeValue = { return conversationService.conversations.map({ conversations in return conversations.map({ conversation in return conversation.messages.filter({ message in - return message.status != .read && message.author != accountHelper.ringId! + if let account = accountService.currentAccount { + let accountHelper = AccountModelHelper(withAccount: account) + //filtre out read messages, outgoing messages and messages that are displayed in contactrequest conversation + return message.status != .read && message.author != accountHelper.ringId + && (contactsService.contactRequest(withRingId: message.author) == nil) + } + return false }).count }).reduce(0, +) })