[CNContact] CNContact fix sip address display and chat searchlist

This commit is contained in:
Brieuc Viel 2017-11-10 14:32:45 +01:00
parent ef10b65b12
commit 4e7b509954
2 changed files with 16 additions and 24 deletions

View file

@ -236,10 +236,8 @@
normSip = sip;
CNInstantMessageAddress *cNSipMsgAddr;
if ([normSip containsString:@"@"])
cNSipMsgAddr = [[CNInstantMessageAddress alloc]
initWithUsername:[normSip componentsSeparatedByString:@"@"][0]
service:[normSip
componentsSeparatedByString:@"@"][1]];
cNSipMsgAddr = [[CNInstantMessageAddress alloc]
initWithUsername:normSip service:[normSip componentsSeparatedByString:@"@"][1]];
else
cNSipMsgAddr =
[[CNInstantMessageAddress alloc] initWithUsername:normSip
@ -253,15 +251,14 @@
forKey:CNContactInstantMessageAddressesKey];
ret = TRUE;
_sipAddresses[index] = normSip;
//_sipAddresses[index] = [sip substringFromIndex:1];
} else {
normSip = sip;
CNInstantMessageAddress *cNSipMsgAddr;
if ([normSip containsString:@"@"])
cNSipMsgAddr = [[CNInstantMessageAddress alloc]
initWithUsername:[normSip componentsSeparatedByString:@"@"][0]
service:[normSip
componentsSeparatedByString:@"@"][1]];
if ([[FastAddressBook normalizeSipURI:normSip] containsString:@"@"])
cNSipMsgAddr = [[CNInstantMessageAddress alloc]
initWithUsername:sip
service:[[FastAddressBook normalizeSipURI:normSip]
componentsSeparatedByString:@"@"][1]];
else
cNSipMsgAddr =
[[CNInstantMessageAddress alloc] initWithUsername:normSip
@ -281,7 +278,7 @@
}
if (ret) {
_sipAddresses[index] = [FastAddressBook normalizeSipURI:sip];
_sipAddresses[index] = sip;
}
return ret;
}
@ -401,7 +398,7 @@
if ([sip hasPrefix:@" "])
[_sipAddresses addObject:[sip substringFromIndex:1]];
else
[_sipAddresses addObject:[FastAddressBook normalizeSipURI:sip]];
[_sipAddresses addObject:sip];
}
return ret;
}

View file

@ -52,17 +52,12 @@
}
+ (Contact *)getContact:(NSString *)address {
for (id key in LinphoneManager.instance.fastAddressBook.addressBookMap) {
Contact *contact =
(Contact *)[LinphoneManager.instance.fastAddressBook.addressBookMap
objectForKey:key];
if ([contact.sipAddresses count]) {
if ([contact.sipAddresses containsObject:address])
return contact;
}
}
return nil;
if (LinphoneManager.instance.fastAddressBook != nil) {
@synchronized(LinphoneManager.instance.fastAddressBook.addressBookMap) {
return [LinphoneManager.instance.fastAddressBook.addressBookMap objectForKey:address];
}
}
return nil;
}
+ (Contact *)getContactWithAddress:(const LinphoneAddress *)address {
@ -415,12 +410,12 @@ void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info, void
@try {
NSLog(@"Success %d",
[store executeSaveRequest:saveRequest error:&saveError]);
[_addressBookMap setObject:contact forKey:cNContact];
} @catch (NSException *exception) {
NSLog(@"=====>>>>> CNContact SaveRequest failed : description = %@",
[exception description]);
return FALSE;
}
[self reloadAllContacts];
return TRUE;
}