Low light archive/sent folder name when message duplicate

pull/146/head
M66B 7 years ago
parent 127156d12a
commit 45af78725a

@ -360,8 +360,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
tvFolder.setText(message.folderDisplay == null tvFolder.setText(message.folderDisplay == null
? Helper.localizeFolderName(context, message.folderName) ? Helper.localizeFolderName(context, message.folderName)
: message.folderDisplay); : message.folderDisplay);
tvFolder.setAlpha(EntityFolder.ARCHIVE.equals(message.folderType) || tvFolder.setAlpha(message.duplicate ? 0.5f : 1.0f);
EntityFolder.SENT.equals(message.folderType) ? 0.5f : 1.0f);
} }
tvFolder.setVisibility(viewType == ViewType.FOLDER ? View.GONE : View.VISIBLE); tvFolder.setVisibility(viewType == ViewType.FOLDER ? View.GONE : View.VISIBLE);

@ -49,6 +49,7 @@ public interface DaoMessage {
" AND NOT folder.type = '" + EntityFolder.OUTBOX + "'" + " AND NOT folder.type = '" + EntityFolder.OUTBOX + "'" +
" AND NOT folder.type = '" + EntityFolder.DRAFTS + "' THEN 0 ELSE 1 END) AS unflagged" + " AND NOT folder.type = '" + EntityFolder.DRAFTS + "' THEN 0 ELSE 1 END) AS unflagged" +
", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" + ", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" +
", 0 AS duplicate" +
", MAX(CASE WHEN folder.unified THEN message.id ELSE 0 END) AS dummy" + ", MAX(CASE WHEN folder.unified THEN message.id ELSE 0 END) AS dummy" +
" FROM message" + " FROM message" +
" JOIN account ON account.id = message.account" + " JOIN account ON account.id = message.account" +
@ -80,6 +81,7 @@ public interface DaoMessage {
" AND NOT (folder.id <> :folder AND folder.type = '" + EntityFolder.OUTBOX + "')" + " AND NOT (folder.id <> :folder AND folder.type = '" + EntityFolder.OUTBOX + "')" +
" AND NOT (folder.id <> :folder AND folder.type = '" + EntityFolder.DRAFTS + "') THEN 0 ELSE 1 END) AS unflagged" + " AND NOT (folder.id <> :folder AND folder.type = '" + EntityFolder.DRAFTS + "') THEN 0 ELSE 1 END) AS unflagged" +
", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" + ", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" +
", 0 AS duplicate" +
", MAX(CASE WHEN folder.id = :folder THEN message.id ELSE 0 END) AS dummy" + ", MAX(CASE WHEN folder.id = :folder THEN message.id ELSE 0 END) AS dummy" +
" FROM message" + " FROM message" +
" JOIN account ON account.id = message.account" + " JOIN account ON account.id = message.account" +
@ -106,6 +108,16 @@ public interface DaoMessage {
", CASE WHEN message.ui_seen THEN 0 ELSE 1 END AS unseen" + ", CASE WHEN message.ui_seen THEN 0 ELSE 1 END AS unseen" +
", CASE WHEN message.ui_flagged THEN 0 ELSE 1 END AS unflagged" + ", CASE WHEN message.ui_flagged THEN 0 ELSE 1 END AS unflagged" +
", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" + ", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" +
", ((folder.type = '" + EntityFolder.ARCHIVE + "' " +
" OR folder.type = '" + EntityFolder.SENT + "')" +
" AND EXISTS (" +
" SELECT * FROM message m1" +
" JOIN folder f1 ON f1.id = m1.folder" +
" WHERE m1.id <> message.id" +
" AND m1.msgid = message.msgid" +
" AND f1.type <> folder.type)) AS duplicate" +
" FROM message" + " FROM message" +
" JOIN account ON account.id = message.account" + " JOIN account ON account.id = message.account" +
" LEFT JOIN identity ON identity.id = message.identity" + " LEFT JOIN identity ON identity.id = message.identity" +
@ -177,6 +189,7 @@ public interface DaoMessage {
", CASE WHEN message.ui_seen THEN 0 ELSE 1 END AS unseen" + ", CASE WHEN message.ui_seen THEN 0 ELSE 1 END AS unseen" +
", CASE WHEN message.ui_flagged THEN 0 ELSE 1 END AS unflagged" + ", CASE WHEN message.ui_flagged THEN 0 ELSE 1 END AS unflagged" +
", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" + ", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" +
", 0 AS duplicate" +
" FROM message" + " FROM message" +
" JOIN account ON account.id = message.account" + " JOIN account ON account.id = message.account" +
" LEFT JOIN identity ON identity.id = message.identity" + " LEFT JOIN identity ON identity.id = message.identity" +
@ -191,6 +204,7 @@ public interface DaoMessage {
", 1 AS unseen" + ", 1 AS unseen" +
", 0 AS unflagged" + ", 0 AS unflagged" +
", 0 AS attachments" + ", 0 AS attachments" +
", 0 AS duplicate" +
" FROM message" + " FROM message" +
" JOIN account ON account.id = message.account" + " JOIN account ON account.id = message.account" +
" LEFT JOIN identity ON identity.id = message.identity" + " LEFT JOIN identity ON identity.id = message.identity" +

@ -1906,7 +1906,8 @@ public class ServiceSynchronize extends LifecycleService {
" folder=" + dfolder.type + ":" + dup.folder + "/" + folder.type + ":" + folder.id + " folder=" + dfolder.type + ":" + dup.folder + "/" + folder.type + ":" + folder.id +
" msgid=" + dup.msgid + " thread=" + dup.thread); " msgid=" + dup.msgid + " thread=" + dup.thread);
if (dup.folder.equals(folder.id) || outbox) { if (!EntityFolder.ARCHIVE.equals(dfolder.type) &&
dup.folder.equals(folder.id) || outbox) {
String thread = helper.getThreadId(uid); String thread = helper.getThreadId(uid);
Log.i(Helper.TAG, folder.name + " found as id=" + dup.id + "/" + uid + Log.i(Helper.TAG, folder.name + " found as id=" + dup.id + "/" + uid +
" msgid=" + msgid + " thread=" + thread); " msgid=" + msgid + " thread=" + thread);
@ -1966,11 +1967,9 @@ public class ServiceSynchronize extends LifecycleService {
message.identity = (identity == null ? null : identity.id); message.identity = (identity == null ? null : identity.id);
message.uid = uid; message.uid = uid;
if (!EntityFolder.ARCHIVE.equals(folder.type)) { message.msgid = helper.getMessageID();
message.msgid = helper.getMessageID(); if (TextUtils.isEmpty(message.msgid))
if (TextUtils.isEmpty(message.msgid)) Log.w(Helper.TAG, "No Message-ID id=" + message.id + " uid=" + message.uid);
Log.w(Helper.TAG, "No Message-ID id=" + message.id + " uid=" + message.uid);
}
message.references = TextUtils.join(" ", helper.getReferences()); message.references = TextUtils.join(" ", helper.getReferences());
message.inreplyto = helper.getInReplyTo(); message.inreplyto = helper.getInReplyTo();

@ -29,6 +29,7 @@ public class TupleMessageEx extends EntityMessage {
public int unseen; public int unseen;
public int unflagged; public int unflagged;
public int attachments; public int attachments;
public boolean duplicate;
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
@ -43,7 +44,8 @@ public class TupleMessageEx extends EntityMessage {
this.count == other.count && this.count == other.count &&
this.unseen == other.unseen && this.unseen == other.unseen &&
this.unflagged == other.unflagged && this.unflagged == other.unflagged &&
this.attachments == other.attachments); this.attachments == other.attachments &&
this.duplicate == other.duplicate);
} }
return super.equals(obj); return super.equals(obj);
} }

Loading…
Cancel
Save