Monotone-Parent: 6eb24ecac0894c6a3b2d8bc94ea23f4969e9a03d

Monotone-Revision: 25fed2157caf8da35ae90d48f9cc9413a71e94ea

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2006-09-18T15:22:21
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2006-09-18 15:22:21 +00:00
parent 2bcca3a693
commit 1e0b313acf
2 changed files with 50 additions and 12 deletions
+8
View File
@@ -1,3 +1,11 @@
2006-09-18 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OGoContentStore/OCSContactFieldExtractor.m
([OCSContactFieldExtractor -extractQuickFieldsFromVCard:_vCard]):
adapted method to the new VCard api. Since the cards are stored in
vcard format, we no longer deal with a dictionary but with a
NGVCard object...
2006-09-15 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* UI/Contacts/UIxContactView.m ([UIxContactView -preferredEmail]):
+42 -12
View File
@@ -42,25 +42,55 @@ static NSString *fieldNames[] = {
nil, nil
};
- (NSMutableDictionary *)extractQuickFieldsFromVCard:(NGVCard *)_vCard {
- (NSMutableDictionary *) extractQuickFieldsFromVCard: (NGVCard *) _vCard
{
NSMutableDictionary *fields;
unsigned i;
NSArray *values;
CardElement *adr;
NSString *value;
unsigned int max;
if (_vCard == nil)
return nil;
fields = [NSMutableDictionary dictionaryWithCapacity:16];
for (i = 0; fieldNames[i] != nil; i += 2) {
id value;
value = [_vCard fn];
if (value)
[fields setObject: value forKey: @"cn"];
values = [_vCard n];
if (values)
{
max = [values count];
if (max > 0)
{
[fields setObject: [values objectAtIndex: 0] forKey: @"sn"];
if (max > 1)
[fields setObject: [values objectAtIndex: 1]
forKey: @"givenName"];
}
}
value = [_vCard preferredTel];
if (value)
[fields setObject: value forKey: @"telephoneNumber"];
value = [_vCard preferredEMail];
if (value)
[fields setObject: value forKey: @"mail"];
values = [_vCard org];
if (values)
{
max = [values count];
if (max > 0)
{
[fields setObject: [values objectAtIndex: 0] forKey: @"o"];
if (max > 1)
[fields setObject: [values objectAtIndex: 1] forKey: @"ou"];
}
}
adr = [_vCard preferredAdr];
if (adr)
[fields setObject: [adr value: 3] forKey: @"l"];
value = ([fieldNames[i + 1] length] > 0)
? [_vCard valueForKeyPath:fieldNames[i + 1]]
: nil;
if (![value isNotNull]) value = [NSNull null];
[fields setObject:value forKey:[fieldNames[i] lowercaseString]];
}
return fields;
}