From 30488f4f6dc20a20022c452c4608164dde338314 Mon Sep 17 00:00:00 2001 From: ethoms Date: Thu, 5 Nov 2015 10:22:11 +0800 Subject: [PATCH] Update WORequest+SOGo.m --- SoObjects/SOGo/WORequest+SOGo.m | 36 ++++++++++++++------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/SoObjects/SOGo/WORequest+SOGo.m b/SoObjects/SOGo/WORequest+SOGo.m index a0019330a..bc5bc187e 100644 --- a/SoObjects/SOGo/WORequest+SOGo.m +++ b/SoObjects/SOGo/WORequest+SOGo.m @@ -172,34 +172,28 @@ // Mac OS X/10.8.1 (12B19) AddressBook/1143 // Mac OS X/10.8.2 (12C60) AddressBook/1167 // + - (BOOL) isMacOSXAddressBookApp { WEClientCapabilities *cc; - BOOL b; + BOOL isMacOSX_AB, hasAddressBook, hasCFNetwork, isMacOSX10_6_le, isMacOSX10_7, isMacOSX10_8_ge; cc = [self clientCapabilities]; - 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: @"Mac_OS_X"].location != NSNotFound - ) - ) - ) - && [[cc userAgent] rangeOfString: @"AddressBook"].location != NSNotFound - ); + hasAddressBook = ( [[cc userAgent] rangeOfString: @"AddressBook"].location != NSNotFound \ + || [[cc userAgent] rangeOfString: @"Address%20Book"].location != NSNotFound ); + hasCFNetwork = [[cc userAgent] rangeOfString: @"CFNetwork"].location != NSNotFound; - return b; + // note that 'le' signifies less than or equal, 'ge' signifies greater than or equal + // these are only assumed from the user agent strings we currently know. + + isMacOSX10_6_le = ( hasAddressBook && hasCFNetwork && [[cc userAgent] rangeOfString: @"Darwin"].location != NSNotFound ); + isMacOSX10_7 = ( hasAddressBook && hasCFNetwork && [[cc userAgent] rangeOfString: @"Mac_OS_X"].location != NSNotFound ); + isMacOSX10_8_ge = ( hasAddressBook && [[cc userAgent] rangeOfString: @"Mac OS X"].location != NSNotFound ); + + isMacOSX_AB = ( isMacOSX10_6_le || isMacOSX10_7 || isMacOSX10_8_ge); + + return isMacOSX_AB; } - (BOOL) isIPhoneAddressBookApp