pull/147/head
M66B 7 years ago
parent 1418593353
commit 10390383b7

@ -20,6 +20,8 @@ package eu.faircode.email;
*/ */
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
@ -144,6 +146,16 @@ public class EntityOperation {
db.message().setMessageUiAnswered(similar.id, jargs.getBoolean(0)); db.message().setMessageUiAnswered(similar.id, jargs.getBoolean(0));
else if (MOVE.equals(name)) { else if (MOVE.equals(name)) {
// Parameters:
// 0: target folder id
// 1: allow auto read
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean autoread = prefs.getBoolean("autoread", false);
if (jargs.length() > 1)
autoread = (autoread && jargs.getBoolean(1));
jargs.put(1, autoread);
EntityFolder source = db.folder().getFolder(message.folder); EntityFolder source = db.folder().getFolder(message.folder);
EntityFolder target = db.folder().getFolder(jargs.getLong(0)); EntityFolder target = db.folder().getFolder(jargs.getLong(0));
@ -190,7 +202,7 @@ public class EntityOperation {
EntityAttachment.copy(context, db, message.id, newid); EntityAttachment.copy(context, db, message.id, newid);
// Store new id for when source message was deleted // Store new id for when source message was deleted
jargs.put(1, newid); jargs.put(2, newid);
} }
// Cross account move // Cross account move
@ -198,8 +210,10 @@ public class EntityOperation {
name = ADD; name = ADD;
folder = target.id; folder = target.id;
jargs = new JSONArray(); jargs = new JSONArray();
if (newid != null) if (newid != null) {
jargs.put(0, newid); jargs.put(0, newid);
jargs.put(1, autoread);
}
} }
} else if (DELETE.equals(name)) } else if (DELETE.equals(name))

@ -1544,8 +1544,8 @@ 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() > 1) if (EntityOperation.MOVE.equals(op.name) && jargs.length() > 2)
db.message().deleteMessage(jargs.getInt(1)); db.message().deleteMessage(jargs.getInt(2));
if (EntityOperation.ADD.equals(op.name) && jargs.length() > 0) if (EntityOperation.ADD.equals(op.name) && jargs.length() > 0)
db.message().deleteMessage(jargs.getInt(0)); db.message().deleteMessage(jargs.getInt(0));
} else } else
@ -1676,6 +1676,12 @@ public class ServiceSynchronize extends LifecycleService {
// Append message // Append message
MimeMessage imessage = MessageHelper.from(this, message, isession); MimeMessage imessage = MessageHelper.from(this, message, isession);
if (jargs.length() > 1) {
boolean autoread = jargs.getBoolean(1);
if (autoread && !imessage.isSet(Flags.Flag.SEEN))
imessage.setFlag(Flags.Flag.SEEN, true);
}
if (EntityFolder.DRAFTS.equals(folder.type)) { if (EntityFolder.DRAFTS.equals(folder.type)) {
if (ifolder.getPermanentFlags().contains(Flags.Flag.DRAFT)) if (ifolder.getPermanentFlags().contains(Flags.Flag.DRAFT))
imessage.setFlag(Flags.Flag.DRAFT, true); imessage.setFlag(Flags.Flag.DRAFT, true);
@ -1700,11 +1706,9 @@ public class ServiceSynchronize extends LifecycleService {
if (imessage == null) if (imessage == null)
throw new MessageRemovedException(); throw new MessageRemovedException();
if (jargs.length() == 1 || jargs.getBoolean(1)) { boolean autoread = jargs.getBoolean(1);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); if (autoread && !imessage.isSet(Flags.Flag.SEEN))
if (prefs.getBoolean("autoread", false) && !imessage.isSet(Flags.Flag.SEEN)) imessage.setFlag(Flags.Flag.SEEN, true);
imessage.setFlag(Flags.Flag.SEEN, true);
}
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);

Loading…
Cancel
Save