From ac2164963338e4f2d70bcb209373d19d163f3218 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Mon, 22 Jun 2015 09:19:54 -0400 Subject: [PATCH] (feat) added support for DeletesAsMoves over EAS Conflicts: ActiveSync/SOGoActiveSyncDispatcher+Sync.m --- ActiveSync/SOGoActiveSyncDispatcher+Sync.m | 13 ++++++++++++- NEWS | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ActiveSync/SOGoActiveSyncDispatcher+Sync.m b/ActiveSync/SOGoActiveSyncDispatcher+Sync.m index 275233c6d..950ee4769 100644 --- a/ActiveSync/SOGoActiveSyncDispatcher+Sync.m +++ b/ActiveSync/SOGoActiveSyncDispatcher+Sync.m @@ -475,16 +475,27 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. withType: (SOGoMicrosoftActiveSyncFolderType) theFolderType inBuffer: (NSMutableString *) theBuffer { + + id aDelete, sogoObject, value; NSArray *deletions; NSString *serverId; - id aDelete, sogoObject; + BOOL deletesAsMoves, useTrash; int i; deletions = (id)[theDocumentElement getElementsByTagName: @"Delete"]; if ([deletions count]) { + // From the documention, if DeletesAsMoves is missing, we must assume it's a YES. + // See https://msdn.microsoft.com/en-us/library/gg675480(v=exchg.80).aspx for all details. + value = [theDocumentElement getElementsByTagName: @"DeletesAsMoves"]; + deletesAsMoves = YES; + useTrash = YES; + + if ([value count] && [[[value lastObject] textValue] length]) + deletesAsMoves = [[[value lastObject] textValue] boolValue]; + for (i = 0; i < [deletions count]; i++) { aDelete = [deletions objectAtIndex: i]; diff --git a/NEWS b/NEWS index d3e5f48f1..8dd91f74d 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ Enhancements - improved EAS speed, especially when fetching big attachments - now always enforce the organizer's default identity in appointments - improved the handling of default calendar categories/colors (#3200) + - added support for DeletesAsMoves over EAS Bug fixes - EAS's GetItemEstimate/ItemOperations now support fetching mails and empty folders