|
|
@ -3503,7 +3503,28 @@ class Core {
|
|
|
|
|
|
|
|
|
|
|
|
db.folder().setFolderSyncState(folder.id, "syncing");
|
|
|
|
db.folder().setFolderSyncState(folder.id, "syncing");
|
|
|
|
|
|
|
|
|
|
|
|
String[] userFlags = ifolder.getPermanentFlags().getUserFlags();
|
|
|
|
Flags flags = ifolder.getPermanentFlags();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<String> f = new ArrayList<>();
|
|
|
|
|
|
|
|
if (flags != null) {
|
|
|
|
|
|
|
|
if (flags.contains(Flags.Flag.ANSWERED))
|
|
|
|
|
|
|
|
f.add("\\Answered");
|
|
|
|
|
|
|
|
if (flags.contains(Flags.Flag.DELETED))
|
|
|
|
|
|
|
|
f.add("\\Deleted");
|
|
|
|
|
|
|
|
if (flags.contains(Flags.Flag.DRAFT))
|
|
|
|
|
|
|
|
f.add("\\Draft");
|
|
|
|
|
|
|
|
if (flags.contains(Flags.Flag.FLAGGED))
|
|
|
|
|
|
|
|
f.add("\\Flagged");
|
|
|
|
|
|
|
|
if (flags.contains(Flags.Flag.RECENT))
|
|
|
|
|
|
|
|
f.add("\\Recent");
|
|
|
|
|
|
|
|
if (flags.contains(Flags.Flag.SEEN))
|
|
|
|
|
|
|
|
f.add("\\Seen");
|
|
|
|
|
|
|
|
if (flags.contains(Flags.Flag.USER))
|
|
|
|
|
|
|
|
f.add("\\*");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
db.folder().setFolderFlags(folder.id, DB.Converters.fromStringArray(f.toArray(new String[0])));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String[] userFlags = flags.getUserFlags();
|
|
|
|
if (userFlags != null && userFlags.length > 0) {
|
|
|
|
if (userFlags != null && userFlags.length > 0) {
|
|
|
|
List<String> keywords = new ArrayList<>(Arrays.asList(userFlags));
|
|
|
|
List<String> keywords = new ArrayList<>(Arrays.asList(userFlags));
|
|
|
|
Collections.sort(keywords);
|
|
|
|
Collections.sort(keywords);
|
|
|
@ -3619,7 +3640,6 @@ class Core {
|
|
|
|
: new ReceivedDateTerm(ComparisonTerm.GE, new Date(sync_time));
|
|
|
|
: new ReceivedDateTerm(ComparisonTerm.GE, new Date(sync_time));
|
|
|
|
|
|
|
|
|
|
|
|
SearchTerm searchTerm = dateTerm;
|
|
|
|
SearchTerm searchTerm = dateTerm;
|
|
|
|
Flags flags = ifolder.getPermanentFlags();
|
|
|
|
|
|
|
|
if (sync_nodate && !account.isOutlook())
|
|
|
|
if (sync_nodate && !account.isOutlook())
|
|
|
|
searchTerm = new OrTerm(searchTerm, new ReceivedDateTerm(ComparisonTerm.LT, new Date(365 * 24 * 3600 * 1000L)));
|
|
|
|
searchTerm = new OrTerm(searchTerm, new ReceivedDateTerm(ComparisonTerm.LT, new Date(365 * 24 * 3600 * 1000L)));
|
|
|
|
if (sync_unseen && flags.contains(Flags.Flag.SEEN))
|
|
|
|
if (sync_unseen && flags.contains(Flags.Flag.SEEN))
|
|
|
|