|
|
@ -546,17 +546,23 @@ class Core {
|
|
|
|
|
|
|
|
|
|
|
|
Log.i(folder.name + " appended id=" + message.id + " uid=" + uid);
|
|
|
|
Log.i(folder.name + " appended id=" + message.id + " uid=" + uid);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
db.beginTransaction();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<EntityRule> rules = db.rule().getEnabledRules(folder.id);
|
|
|
|
|
|
|
|
|
|
|
|
if (folder.id.equals(message.folder)) {
|
|
|
|
if (folder.id.equals(message.folder)) {
|
|
|
|
Log.i(folder.name + " Setting id=" + message.id + " uid=" + uid);
|
|
|
|
Log.i(folder.name + " Setting id=" + message.id + " uid=" + uid);
|
|
|
|
db.message().setMessageUid(message.id, uid);
|
|
|
|
db.message().setMessageUid(message.id, uid);
|
|
|
|
} else
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
db.beginTransaction();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
runRules(context, imessage, message, rules);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
// Cross account move
|
|
|
|
// Cross account move
|
|
|
|
if (tmpid != null) {
|
|
|
|
if (tmpid != null) {
|
|
|
|
Log.i(folder.name + " Setting id=" + tmpid + " (tmp) appended uid=" + uid);
|
|
|
|
Log.i(folder.name + " Setting id=" + tmpid + " (tmp) appended uid=" + uid);
|
|
|
|
db.message().setMessageUid(tmpid, uid);
|
|
|
|
db.message().setMessageUid(tmpid, uid);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
runRules(context, imessage, db.message().getMessage(tmpid), rules);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Mark source read
|
|
|
|
// Mark source read
|
|
|
@ -568,6 +574,7 @@ class Core {
|
|
|
|
// Delete source
|
|
|
|
// Delete source
|
|
|
|
Log.i(folder.name + " queuing DELETE id=" + message.id);
|
|
|
|
Log.i(folder.name + " queuing DELETE id=" + message.id);
|
|
|
|
EntityOperation.queue(context, message, EntityOperation.DELETE);
|
|
|
|
EntityOperation.queue(context, message, EntityOperation.DELETE);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
db.setTransactionSuccessful();
|
|
|
|
db.setTransactionSuccessful();
|
|
|
|
} finally {
|
|
|
|
} finally {
|
|
|
@ -1540,7 +1547,7 @@ class Core {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static void runRules(Context context, IMAPMessage imessage, EntityMessage message, List<EntityRule> rules) {
|
|
|
|
private static void runRules(Context context, Message imessage, EntityMessage message, List<EntityRule> rules) {
|
|
|
|
if (!Helper.isPro(context))
|
|
|
|
if (!Helper.isPro(context))
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|