|
|
|
@ -116,6 +116,13 @@ public class EntityOperation {
|
|
|
|
static void queue(Context context, EntityMessage message, String name, Object... values) {
|
|
|
|
static void queue(Context context, EntityMessage message, String name, Object... values) {
|
|
|
|
DB db = DB.getInstance(context);
|
|
|
|
DB db = DB.getInstance(context);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EntityAccount account = db.account().getAccount(message.account);
|
|
|
|
|
|
|
|
if (account != null && account.isTestAccount()) {
|
|
|
|
|
|
|
|
if (DELETE.equals(name) || SEND.equals(name))
|
|
|
|
|
|
|
|
db.message().deleteMessage(message.id);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
JSONArray jargs = new JSONArray();
|
|
|
|
JSONArray jargs = new JSONArray();
|
|
|
|
for (Object value : values)
|
|
|
|
for (Object value : values)
|
|
|
|
@ -124,7 +131,6 @@ public class EntityOperation {
|
|
|
|
if (SEEN.equals(name)) {
|
|
|
|
if (SEEN.equals(name)) {
|
|
|
|
boolean seen = jargs.getBoolean(0);
|
|
|
|
boolean seen = jargs.getBoolean(0);
|
|
|
|
boolean ignore = jargs.optBoolean(1, true);
|
|
|
|
boolean ignore = jargs.optBoolean(1, true);
|
|
|
|
EntityAccount account = db.account().getAccount(message.account);
|
|
|
|
|
|
|
|
for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid, message.hash)) {
|
|
|
|
for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid, message.hash)) {
|
|
|
|
if ((account != null && !account.isGmail() && !account.isWebDe()) &&
|
|
|
|
if ((account != null && !account.isGmail() && !account.isWebDe()) &&
|
|
|
|
!Objects.equals(message.id, similar.id) &&
|
|
|
|
!Objects.equals(message.id, similar.id) &&
|
|
|
|
@ -141,7 +147,6 @@ public class EntityOperation {
|
|
|
|
} else if (FLAG.equals(name)) {
|
|
|
|
} else if (FLAG.equals(name)) {
|
|
|
|
boolean flagged = jargs.getBoolean(0);
|
|
|
|
boolean flagged = jargs.getBoolean(0);
|
|
|
|
Integer color = (jargs.length() > 1 && !jargs.isNull(1) ? jargs.getInt(1) : null);
|
|
|
|
Integer color = (jargs.length() > 1 && !jargs.isNull(1) ? jargs.getInt(1) : null);
|
|
|
|
EntityAccount account = db.account().getAccount(message.id);
|
|
|
|
|
|
|
|
for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid, message.hash)) {
|
|
|
|
for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid, message.hash)) {
|
|
|
|
if ((account != null && !account.isGmail()) &&
|
|
|
|
if ((account != null && !account.isGmail()) &&
|
|
|
|
!Objects.equals(message.id, similar.id) &&
|
|
|
|
!Objects.equals(message.id, similar.id) &&
|
|
|
|
@ -164,7 +169,6 @@ public class EntityOperation {
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
} else if (ANSWERED.equals(name)) {
|
|
|
|
} else if (ANSWERED.equals(name)) {
|
|
|
|
EntityAccount account = db.account().getAccount(message.id);
|
|
|
|
|
|
|
|
for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid, message.hash)) {
|
|
|
|
for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid, message.hash)) {
|
|
|
|
if ((account != null && !account.isGmail()) &&
|
|
|
|
if ((account != null && !account.isGmail()) &&
|
|
|
|
!Objects.equals(message.id, similar.id) &&
|
|
|
|
!Objects.equals(message.id, similar.id) &&
|
|
|
|
@ -206,7 +210,6 @@ public class EntityOperation {
|
|
|
|
DB.Converters.fromStringArray(fkeywords.toArray(new String[0])));
|
|
|
|
DB.Converters.fromStringArray(fkeywords.toArray(new String[0])));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
EntityAccount account = db.account().getAccount(message.account);
|
|
|
|
|
|
|
|
if (account != null && account.protocol == EntityAccount.TYPE_POP) {
|
|
|
|
if (account != null && account.protocol == EntityAccount.TYPE_POP) {
|
|
|
|
EntityFolder folder = db.folder().getFolder(message.folder);
|
|
|
|
EntityFolder folder = db.folder().getFolder(message.folder);
|
|
|
|
if (folder != null) {
|
|
|
|
if (folder != null) {
|
|
|
|
@ -320,7 +323,6 @@ public class EntityOperation {
|
|
|
|
" auto read=" + autoread + " flag=" + autounflag + " importance=" + reset_importance);
|
|
|
|
" auto read=" + autoread + " flag=" + autounflag + " importance=" + reset_importance);
|
|
|
|
|
|
|
|
|
|
|
|
if (autoread || autounflag || reset_importance) {
|
|
|
|
if (autoread || autounflag || reset_importance) {
|
|
|
|
EntityAccount account = db.account().getAccount(message.account);
|
|
|
|
|
|
|
|
for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid, message.hash)) {
|
|
|
|
for (EntityMessage similar : db.message().getMessagesBySimilarity(message.account, message.id, message.msgid, message.hash)) {
|
|
|
|
if ((account != null && !account.isGmail()) &&
|
|
|
|
if ((account != null && !account.isGmail()) &&
|
|
|
|
!Objects.equals(message.id, similar.id) &&
|
|
|
|
!Objects.equals(message.id, similar.id) &&
|
|
|
|
@ -343,7 +345,6 @@ public class EntityOperation {
|
|
|
|
|
|
|
|
|
|
|
|
boolean premove = true;
|
|
|
|
boolean premove = true;
|
|
|
|
if (source.account.equals(target.account)) {
|
|
|
|
if (source.account.equals(target.account)) {
|
|
|
|
EntityAccount account = db.account().getAccount(message.account);
|
|
|
|
|
|
|
|
if (account != null && account.isGmail()) {
|
|
|
|
if (account != null && account.isGmail()) {
|
|
|
|
if (EntityFolder.ARCHIVE.equals(source.type) &&
|
|
|
|
if (EntityFolder.ARCHIVE.equals(source.type) &&
|
|
|
|
!(EntityFolder.SENT.equals(target.type) ||
|
|
|
|
!(EntityFolder.SENT.equals(target.type) ||
|
|
|
|
@ -540,8 +541,6 @@ public class EntityOperation {
|
|
|
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
|
|
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
|
|
|
boolean perform_expunge = prefs.getBoolean("perform_expunge", true);
|
|
|
|
boolean perform_expunge = prefs.getBoolean("perform_expunge", true);
|
|
|
|
|
|
|
|
|
|
|
|
EntityAccount account = db.account().getAccount(message.account);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (perform_expunge ||
|
|
|
|
if (perform_expunge ||
|
|
|
|
account == null ||
|
|
|
|
account == null ||
|
|
|
|
account.protocol != EntityAccount.TYPE_IMAP) {
|
|
|
|
account.protocol != EntityAccount.TYPE_IMAP) {
|
|
|
|
|