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