Fix CardDAV collections for OS X
Restored the previous behavior: only the personal addressbook is returned and only the first source directory is returned (now sorted by id so you can control which of your addressbook sources you want to return).pull/7/merge
parent
cd0244883d
commit
5667bb1b11
1
NEWS
1
NEWS
|
@ -9,6 +9,7 @@ Enhancements
|
|||
|
||||
Bug fixes
|
||||
- fixed French templates encoding
|
||||
- fixed CardDAV collections for OS X
|
||||
|
||||
2.0.3 (2012-12-06)
|
||||
------------------
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
|
||||
- (NSArray *) davDirectoryGateway
|
||||
{
|
||||
NSArray *tag, *sources;
|
||||
NSArray *tag, *sources, *sorted_sources;
|
||||
SOGoContactFolders *parent;
|
||||
SOGoUserManager *um;
|
||||
NSString *domain, *url;
|
||||
|
@ -71,9 +71,11 @@
|
|||
sources = [um addressBookSourceIDsInDomain: domain];
|
||||
if ([sources count] > 0)
|
||||
{
|
||||
// Only return the first ID from the sorted list of sources
|
||||
parent = [self privateContacts: @"Contacts" inContext: context];
|
||||
sorted_sources = [sources sortedArrayUsingSelector: @selector (localizedCaseInsensitiveCompare:)];
|
||||
url = [NSString stringWithFormat: @"%@%@/", [parent davURLAsString],
|
||||
[sources objectAtIndex: 0]];
|
||||
[sorted_sources objectAtIndex: 0]];
|
||||
tag = [NSArray arrayWithObject:
|
||||
[NSArray arrayWithObjects: @"href", @"DAV:", @"D",
|
||||
url, nil]];
|
||||
|
|
|
@ -151,17 +151,23 @@
|
|||
|| [self isAppleDAVWithSubstring: @"CalendarAgent/"]);
|
||||
}
|
||||
|
||||
|
||||
// For 10.6, we see:
|
||||
//
|
||||
// Address%20Book/883 CFNetwork/454.12.4 Darwin/10.8.0 (i386) (iMac11%2C3)
|
||||
//
|
||||
// For 10.7, we see:
|
||||
//
|
||||
// AddressBook/6.0 (1043) CardDAVPlugin/182 CFNetwork/520.0.13 Mac_OS_X/10.7.1 (11B26)
|
||||
// AddressBook/6.1 (1062) CardDAVPlugin/196 CFNetwork/520.2.5 Mac_OS_X/10.7.2 (11C74)
|
||||
// AddressBook/6.1 (1083) CardDAVPlugin/200 CFNetwork/520.3.2 Mac_OS_X/10.7.3 (11D50d)
|
||||
// AddressBook/6.1.2 (1090) CardDAVPlugin/200 CFNetwork/520.4.3 Mac_OS_X/10.7.4 (11E53)
|
||||
// AddressBook/6.1.3 (1091) CardDAVPlugin/200 CFNetwork/520.5.1 Mac_OS_X/10.7.5 (11G56)
|
||||
//
|
||||
// For 10.8, we see:
|
||||
//
|
||||
// Mac OS X/10.8 (12A269) AddressBook/1143
|
||||
// Mac OS X/10.8.1 (12B19) AddressBook/1143
|
||||
// Mac OS X/10.8.2 (12C60) AddressBook/1167
|
||||
//
|
||||
- (BOOL) isMacOSXAddressBookApp
|
||||
{
|
||||
|
@ -170,10 +176,15 @@
|
|||
|
||||
cc = [self clientCapabilities];
|
||||
|
||||
b = ([[cc userAgent] rangeOfString: @"CFNetwork"].location != NSNotFound
|
||||
&& ([[cc userAgent] rangeOfString: @"Darwin"].location != NSNotFound
|
||||
|| [[cc userAgent] rangeOfString: @"Mac OS X"].location != NSNotFound)
|
||||
&& [[cc userAgent] rangeOfString: @"AddressBook"].location != NSNotFound);
|
||||
b = (
|
||||
[[cc userAgent] rangeOfString: @"CFNetwork"].location != NSNotFound
|
||||
&& [[cc userAgent] rangeOfString: @"Darwin"].location != NSNotFound
|
||||
|| (
|
||||
[[cc userAgent] rangeOfString: @"CFNetwork"].location != NSNotFound
|
||||
|| [[cc userAgent] rangeOfString: @"Mac OS X"].location != NSNotFound
|
||||
)
|
||||
&& [[cc userAgent] rangeOfString: @"AddressBook"].location != NSNotFound
|
||||
);
|
||||
|
||||
return b;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue