Skip to content
Snippets Groups Projects
Commit d1588e84 authored by Kateryna Kostiuk's avatar Kateryna Kostiuk
Browse files

contact request: check if contact added

Check if contact already added when receiving incoming contact request

Change-Id: Ib04452d8f124e2d66b2c39f3e74548308cab1d48
parent 5e6130da
Branches
No related tags found
No related merge requests found
...@@ -139,6 +139,12 @@ class ContactsService { ...@@ -139,6 +139,12 @@ class ContactsService {
return ContactRequestModel(withDictionary: dictionary, accountId: accountId) return ContactRequestModel(withDictionary: dictionary, accountId: accountId)
}) { }) {
for contactRequest in contactRequests { 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 { if self.contactRequest(withRingId: contactRequest.ringId) == nil {
var values = self.contactRequests.value var values = self.contactRequests.value
values.append(contactRequest) values.append(contactRequest)
...@@ -154,6 +160,7 @@ class ContactsService { ...@@ -154,6 +160,7 @@ class ContactsService {
let success = self.contactsAdapter.acceptTrustRequest(fromContact: contactRequest.ringId, let success = self.contactsAdapter.acceptTrustRequest(fromContact: contactRequest.ringId,
withAccountId: account.id) withAccountId: account.id)
if success { if success {
self.removeContactRequest(withRingId: contactRequest.ringId)
var stringImage: String? var stringImage: String?
if let vCard = contactRequest.vCard, let image = vCard.imageData { if let vCard = contactRequest.vCard, let image = vCard.imageData {
stringImage = image.base64EncodedString() stringImage = image.base64EncodedString()
...@@ -305,7 +312,13 @@ extension ContactsService: ContactsAdapterDelegate { ...@@ -305,7 +312,13 @@ extension ContactsService: ContactsAdapterDelegate {
if let contactVCard = CNContactVCardSerialization.parseToVCard(data: payload) { if let contactVCard = CNContactVCardSerialization.parseToVCard(data: payload) {
vCard = contactVCard 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 //Update trust request list
if self.contactRequest(withRingId: senderAccount) == nil { if self.contactRequest(withRingId: senderAccount) == nil {
let contactRequest = ContactRequestModel(withRingId: senderAccount, let contactRequest = ContactRequestModel(withRingId: senderAccount,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment