immediately delete mails from EAS clients when they are marked as deleted on the IMAP server

pull/73/merge
Ludovic Marcotte 2015-03-20 09:10:49 -04:00
parent ecd336fa5c
commit baf3d1f986
2 changed files with 6 additions and 5 deletions

1
NEWS
View File

@ -3,6 +3,7 @@
Enhancements Enhancements
- support for mail prority using EAS - support for mail prority using EAS
- immediately delete mails from EAS clients when they are marked as deleted on the IMAP server
Bug fixes Bug fixes
- fixed login issue after password change (#2601) - fixed login issue after password change (#2601)

View File

@ -2129,13 +2129,13 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
value: nextModseq]; value: nextModseq];
searchQualifier = [[EOAndQualifier alloc] searchQualifier = [[EOAndQualifier alloc]
initWithQualifiers: initWithQualifiers:
kvQualifier, [self _nonDeletedQualifier], nil]; kvQualifier, nil];
[kvQualifier release]; [kvQualifier release];
[searchQualifier autorelease]; [searchQualifier autorelease];
} }
else else
{ {
searchQualifier = [self _nonDeletedQualifier]; searchQualifier = nil;
} }
if (theStartDate) if (theStartDate)
@ -2144,7 +2144,7 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
sinceDateQualifier = [EOQualifier qualifierWithQualifierFormat: sinceDateQualifier = [EOQualifier qualifierWithQualifierFormat:
@"(DATE >= %@)", theStartDate]; @"(DATE >= %@)", theStartDate];
searchQualifier = [[EOAndQualifier alloc] initWithQualifiers: searchQualifier, sinceDateQualifier, searchQualifier = [[EOAndQualifier alloc] initWithQualifiers: sinceDateQualifier, searchQualifier,
nil]; nil];
[searchQualifier autorelease]; [searchQualifier autorelease];
} }
@ -2155,7 +2155,7 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
sortOrdering: nil]; sortOrdering: nil];
fetchResults = [(NSDictionary *)[self fetchUIDs: uids fetchResults = [(NSDictionary *)[self fetchUIDs: uids
parts: [NSArray arrayWithObject: @"modseq"]] parts: [NSArray arrayWithObjects: @"modseq", @"flags", nil]]
objectForKey: @"fetch"]; objectForKey: @"fetch"];
/* NOTE: we sort items manually because Cyrus does not properly sort /* NOTE: we sort items manually because Cyrus does not properly sort
@ -2166,7 +2166,7 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
for (i = 0; i < [fetchResults count]; i++) for (i = 0; i < [fetchResults count]; i++)
{ {
d = [NSDictionary dictionaryWithObject: [[fetchResults objectAtIndex: i] objectForKey: @"modseq"] d = [NSDictionary dictionaryWithObject: ([[[fetchResults objectAtIndex: i] objectForKey: @"flags"] containsObject: @"deleted"]) ? [NSNull null] : [[fetchResults objectAtIndex: i] objectForKey: @"modseq"]
forKey: [[[fetchResults objectAtIndex: i] objectForKey: @"uid"] stringValue]]; forKey: [[[fetchResults objectAtIndex: i] objectForKey: @"uid"] stringValue]];
[allTokens addObject: d]; [allTokens addObject: d];
} }