From d1588e842077177eee67c6979e62e530976006e6 Mon Sep 17 00:00:00 2001 From: kkostiuk <kateryna.kostiuk@savoirfairelinux.com> Date: Thu, 29 Apr 2021 10:24:19 -0400 Subject: [PATCH] contact request: check if contact added Check if contact already added when receiving incoming contact request Change-Id: Ib04452d8f124e2d66b2c39f3e74548308cab1d48 --- Ring/Ring/Services/ContactsService.swift | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Ring/Ring/Services/ContactsService.swift b/Ring/Ring/Services/ContactsService.swift index b5b5b8eb9..4af5e0b3a 100644 --- a/Ring/Ring/Services/ContactsService.swift +++ b/Ring/Ring/Services/ContactsService.swift @@ -139,6 +139,12 @@ class ContactsService { return ContactRequestModel(withDictionary: dictionary, accountId: accountId) }) { for contactRequest in contactRequests { + let validContact = self.contacts.value.filter { contact in + contact.hash == contactRequest.ringId && !contact.banned + }.first + if validContact != nil { + return + } if self.contactRequest(withRingId: contactRequest.ringId) == nil { var values = self.contactRequests.value values.append(contactRequest) @@ -154,6 +160,7 @@ class ContactsService { let success = self.contactsAdapter.acceptTrustRequest(fromContact: contactRequest.ringId, withAccountId: account.id) if success { + self.removeContactRequest(withRingId: contactRequest.ringId) var stringImage: String? if let vCard = contactRequest.vCard, let image = vCard.imageData { stringImage = image.base64EncodedString() @@ -305,7 +312,13 @@ extension ContactsService: ContactsAdapterDelegate { if let contactVCard = CNContactVCardSerialization.parseToVCard(data: payload) { vCard = contactVCard } - + // check if contact exists + let validContact = self.contacts.value.filter { contact in + contact.hash == senderAccount && !contact.banned + }.first + if validContact != nil { + return + } //Update trust request list if self.contactRequest(withRingId: senderAccount) == nil { let contactRequest = ContactRequestModel(withRingId: senderAccount, -- GitLab