* SoObjects/SOGo/WORequest+SOGo.[mh]

(-isAndroid): new method to detect whether the
  request has been performed from an android client

  * SoObjects/Contacts/SOGoContactFolders.m (appendSystemSources):
  Let sogo append system sources if the request comes from an android
  client even if its user agent matches the IPhoneAddressBook

Monotone-Parent: a4ef73c2ad79c8da8d8e0c93767ab06e14bc846b
Monotone-Revision: 228f7d730cde5a5046b0885c1ac02649ee2b7c05

Monotone-Author: jraby@inverse.ca
Monotone-Date: 2012-06-29T20:17:20
maint-2.0.2
Jean Raby 2012-06-29 20:17:20 +00:00
parent 38b1cbd014
commit 0a2244c2cb
4 changed files with 26 additions and 2 deletions

View File

@ -1,3 +1,13 @@
2012-06-29 Jean Raby <jraby@inverse.ca>
* SoObjects/SOGo/WORequest+SOGo.[mh]
(-isAndroid): new method to detect whether the
request has been performed from an android client
* SoObjects/Contacts/SOGoContactFolders.m (appendSystemSources):
Let sogo append system sources if the request comes from an android
client even if its user agent matches the IPhoneAddressBook
2012-06-27 Jean Raby <jraby@inverse.ca>
* SoObjects/Appointments/SOGoAppointmentObject.m

View File

@ -127,7 +127,8 @@
SOGoContactSourceFolder *currentFolder;
SOGoUser *currentUser;
if (![[context request] isIPhoneAddressBookApp])
if (! ([[context request] isIPhoneAddressBookApp] &&
![[context request] isAndroid]))
{
currentUser = [context activeUser];
if (activeUserIsOwner
@ -271,7 +272,8 @@
NSArray *sourceIDs;
NSString *domain, *srcDisplayName;
if ([[context request] isIPhoneAddressBookApp])
if ([[context request] isIPhoneAddressBookApp] &&
![[context request] isAndroid])
{
currentUser = [context activeUser];
if (activeUserIsOwner

View File

@ -36,6 +36,7 @@
- (BOOL) isICal4;
- (BOOL) isMacOSXAddressBookApp;
- (BOOL) isIPhoneAddressBookApp;
- (BOOL) isAndroid;
@end

View File

@ -176,4 +176,15 @@
[[cc userAgent] rangeOfString: @"dataaccessd/1.0"].location != NSNotFound); // Seen on iOS 5.0.1 on iPad
}
- (BOOL) isAndroid
{
WEClientCapabilities *cc;
cc = [self clientCapabilities];
// CardDAV-Sync (Android) (like iOS/5.0.1 (9A405) dataaccessd/1.0) gzip
return ([[cc userAgent] rangeOfString: @"Android"].location != NSNotFound);
}
@end