Monotone-Parent: 9466acabd40c4707e1c9468170d5b231345d8cf9
Monotone-Revision: cf5ca218da1c1ff34ff78091ca6ef9e4d34fdfb3 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-01-11T21:16:31 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
parent
a15f06c844
commit
3c7d44df08
|
@ -1,7 +1,10 @@
|
|||
2011-01-11 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* OpenChange/SOGoContactGCSEntry+MAPIStore.m
|
||||
(-setMAPIProperties:): added support for work address.
|
||||
(-setMAPIProperties:): added support for work address and its
|
||||
corresponding addresse label. Preliminary support for
|
||||
"PidLidPostalAddressId" which enables us to set a certain address
|
||||
as preferred.
|
||||
|
||||
2011-01-10 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
|
|
|
@ -39,8 +39,9 @@
|
|||
- (void) setMAPIProperties: (NSDictionary *) properties
|
||||
{
|
||||
NGVCard *newCard, *oldCard;
|
||||
NSArray *addresses;
|
||||
CardElement *adr;
|
||||
NSArray *elements;
|
||||
CardElement *element;
|
||||
int postalAddressId;
|
||||
id value;
|
||||
|
||||
[self logWithFormat: @"setMAPIProperties: %@", properties];
|
||||
|
@ -69,40 +70,68 @@
|
|||
if (value)
|
||||
[newCard addEmail: value types: nil];
|
||||
|
||||
postalAddressId = [[properties objectForKey: MAPIPropertyKey (PidLidPostalAddressId)]
|
||||
intValue];
|
||||
|
||||
/* Work address */
|
||||
addresses = [newCard childrenWithTag: @"adr"
|
||||
value = [properties objectForKey: MAPIPropertyKey (PidLidWorkAddress)];
|
||||
if ([value length])
|
||||
{
|
||||
elements = [newCard childrenWithTag: @"label"
|
||||
andAttribute: @"type"
|
||||
havingValue: @"work"];
|
||||
if ([elements count] > 0)
|
||||
{
|
||||
element = [elements objectAtIndex: 0];
|
||||
[element setValues: nil];
|
||||
}
|
||||
else
|
||||
{
|
||||
element = [CardElement elementWithTag: @"label"];
|
||||
[element addAttribute: @"type" value: @"work"];
|
||||
[card addChild: element];
|
||||
}
|
||||
if (postalAddressId == 2)
|
||||
[element addAttribute: @"type"
|
||||
value: @"pref"];
|
||||
[element setValue: 0 to: value];
|
||||
}
|
||||
|
||||
elements = [newCard childrenWithTag: @"adr"
|
||||
andAttribute: @"type"
|
||||
havingValue: @"work"];
|
||||
if ([addresses count] > 0)
|
||||
if ([elements count] > 0)
|
||||
{
|
||||
adr = [addresses objectAtIndex: 0];
|
||||
[adr setValues: nil];
|
||||
element = [elements objectAtIndex: 0];
|
||||
[element setValues: nil];
|
||||
}
|
||||
else
|
||||
{
|
||||
adr = [CardElement elementWithTag: @"adr"];
|
||||
[adr addAttribute: @"type" value: @"work"];
|
||||
[card addChild: adr];
|
||||
element = [CardElement elementWithTag: @"adr"];
|
||||
[element addAttribute: @"type" value: @"work"];
|
||||
[card addChild: element];
|
||||
}
|
||||
|
||||
if (postalAddressId == 2)
|
||||
[element addAttribute: @"type"
|
||||
value: @"pref"];
|
||||
value = [properties objectForKey: MAPIPropertyKey (PidLidWorkAddressPostOfficeBox)];
|
||||
if (value)
|
||||
[adr setValue: 0 to: value];
|
||||
[element setValue: 0 to: value];
|
||||
value = [properties objectForKey: MAPIPropertyKey (PidLidWorkAddressStreet)];
|
||||
if (value)
|
||||
[adr setValue: 2 to: value];
|
||||
[element setValue: 2 to: value];
|
||||
value = [properties objectForKey: MAPIPropertyKey (PidLidWorkAddressCity)];
|
||||
if (value)
|
||||
[adr setValue: 3 to: value];
|
||||
[element setValue: 3 to: value];
|
||||
value = [properties objectForKey: MAPIPropertyKey (PidLidWorkAddressState)];
|
||||
if (value)
|
||||
[adr setValue: 4 to: value];
|
||||
[element setValue: 4 to: value];
|
||||
value = [properties objectForKey: MAPIPropertyKey (PidLidWorkAddressPostalCode)];
|
||||
if (value)
|
||||
[adr setValue: 5 to: value];
|
||||
[element setValue: 5 to: value];
|
||||
value = [properties objectForKey: MAPIPropertyKey (PidLidWorkAddressCountry)];
|
||||
if (value)
|
||||
[adr setValue: 6 to: value];
|
||||
[element setValue: 6 to: value];
|
||||
|
||||
ASSIGN (content, [newCard versitString]);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue