mirror of https://github.com/M66B/FairEmail.git
Temp move unseen, fixed cross account autoread
This commit is contained in:
parent
4b0e23413e
commit
4140bb021c
|
@ -173,7 +173,6 @@ public class EntityOperation {
|
||||||
// Message with same msgid can be in archive
|
// Message with same msgid can be in archive
|
||||||
Long newid = null;
|
Long newid = null;
|
||||||
if (message.uid != null &&
|
if (message.uid != null &&
|
||||||
message.ui_seen &&
|
|
||||||
target.synchronize &&
|
target.synchronize &&
|
||||||
message.received > cal_keep.getTimeInMillis() &&
|
message.received > cal_keep.getTimeInMillis() &&
|
||||||
db.message().countMessageByMsgId(target.id, message.msgid) == 0) {
|
db.message().countMessageByMsgId(target.id, message.msgid) == 0) {
|
||||||
|
@ -210,10 +209,8 @@ public class EntityOperation {
|
||||||
name = ADD;
|
name = ADD;
|
||||||
folder = target.id;
|
folder = target.id;
|
||||||
jargs = new JSONArray();
|
jargs = new JSONArray();
|
||||||
if (newid != null) {
|
jargs.put(0, newid); // Can be null
|
||||||
jargs.put(0, newid);
|
jargs.put(1, autoread);
|
||||||
jargs.put(1, autoread);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (DELETE.equals(name))
|
} else if (DELETE.equals(name))
|
||||||
|
|
|
@ -1976,13 +1976,12 @@ public class FragmentMessages extends FragmentBase {
|
||||||
db.beginTransaction();
|
db.beginTransaction();
|
||||||
|
|
||||||
EntityMessage message = db.message().getMessage(id);
|
EntityMessage message = db.message().getMessage(id);
|
||||||
EntityFolder folder = db.folder().getFolder(message.folder);
|
if (message.uid != null) {
|
||||||
|
if (!message.content)
|
||||||
if (!message.content)
|
EntityOperation.queue(context, db, message, EntityOperation.BODY);
|
||||||
EntityOperation.queue(context, db, message, EntityOperation.BODY);
|
if (!message.ui_seen)
|
||||||
|
EntityOperation.queue(context, db, message, EntityOperation.SEEN, true);
|
||||||
if (!message.ui_seen && !EntityFolder.OUTBOX.equals(folder.type))
|
}
|
||||||
EntityOperation.queue(context, db, message, EntityOperation.SEEN, true);
|
|
||||||
|
|
||||||
db.setTransactionSuccessful();
|
db.setTransactionSuccessful();
|
||||||
} finally {
|
} finally {
|
||||||
|
|
|
@ -1544,9 +1544,11 @@ public class ServiceSynchronize extends LifecycleService {
|
||||||
db.message().deleteMessage(message.id);
|
db.message().deleteMessage(message.id);
|
||||||
|
|
||||||
// Delete temporary copy in target folder
|
// Delete temporary copy in target folder
|
||||||
if (EntityOperation.MOVE.equals(op.name) && jargs.length() > 2)
|
if (EntityOperation.MOVE.equals(op.name) &&
|
||||||
|
jargs.length() > 2)
|
||||||
db.message().deleteMessage(jargs.getInt(2));
|
db.message().deleteMessage(jargs.getInt(2));
|
||||||
if (EntityOperation.ADD.equals(op.name) && jargs.length() > 0)
|
if (EntityOperation.ADD.equals(op.name) &&
|
||||||
|
jargs.length() > 0 && !jargs.isNull(0))
|
||||||
db.message().deleteMessage(jargs.getInt(0));
|
db.message().deleteMessage(jargs.getInt(0));
|
||||||
} else
|
} else
|
||||||
db.message().setMessageUiHide(message.id, false);
|
db.message().setMessageUiHide(message.id, false);
|
||||||
|
@ -1710,11 +1712,16 @@ public class ServiceSynchronize extends LifecycleService {
|
||||||
if (autoread && !imessage.isSet(Flags.Flag.SEEN))
|
if (autoread && !imessage.isSet(Flags.Flag.SEEN))
|
||||||
imessage.setFlag(Flags.Flag.SEEN, true);
|
imessage.setFlag(Flags.Flag.SEEN, true);
|
||||||
|
|
||||||
|
if (target.id.equals(folder.id)) {
|
||||||
|
Log.w(folder.name + " MOVE onto self");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (istore.hasCapability("MOVE") && !EntityFolder.DRAFTS.equals(folder.type)) {
|
if (istore.hasCapability("MOVE") && !EntityFolder.DRAFTS.equals(folder.type)) {
|
||||||
Folder itarget = istore.getFolder(target.name);
|
Folder itarget = istore.getFolder(target.name);
|
||||||
ifolder.moveMessages(new Message[]{imessage}, itarget);
|
ifolder.moveMessages(new Message[]{imessage}, itarget);
|
||||||
} else {
|
} else {
|
||||||
Log.w("MOVE by DELETE/APPEND");
|
Log.w(folder.name + " MOVE by DELETE/APPEND");
|
||||||
|
|
||||||
// Delete source
|
// Delete source
|
||||||
imessage.setFlag(Flags.Flag.DELETED, true);
|
imessage.setFlag(Flags.Flag.DELETED, true);
|
||||||
|
|
Loading…
Reference in New Issue