Messages upsynced to "sent" should be marked as "read".

Part of cleanup of bug 2097471 but also addresses old bug 1362964.
This commit is contained in:
Andrew Stadler 2009-09-25 16:42:36 -07:00
parent c41c47fa07
commit b422bda4d6
2 changed files with 23 additions and 1 deletions

View File

@ -656,6 +656,7 @@ public class MessageCompose extends Activity implements OnClickListener, OnFocus
values.put(MessageColumns.BCC_LIST, message.mBcc);
values.put(MessageColumns.SUBJECT, message.mSubject);
values.put(MessageColumns.DISPLAY_NAME, message.mDisplayName);
values.put(MessageColumns.FLAG_READ, message.mFlagRead);
values.put(MessageColumns.FLAG_LOADED, message.mFlagLoaded);
values.put(MessageColumns.FLAG_ATTACHMENT, message.mFlagAttachment);
values.put(MessageColumns.FLAGS, message.mFlags);
@ -677,6 +678,7 @@ public class MessageCompose extends Activity implements OnClickListener, OnFocus
message.mText = mMessageContentView.getText().toString();
message.mAccountKey = account.mId;
message.mDisplayName = makeDisplayName(message.mTo, message.mCc, message.mBcc);
message.mFlagRead = true;
message.mFlagLoaded = Message.FLAG_LOADED_COMPLETE;
message.mFlagAttachment = hasAttachments;
// Use the Intent to set flags saying this message is a reply or a forward and save the

View File

@ -987,13 +987,33 @@ public class ImapStore extends Store {
checkOpen();
try {
for (Message message : messages) {
// Create output count
CountingOutputStream out = new CountingOutputStream();
EOLConvertingOutputStream eolOut = new EOLConvertingOutputStream(out);
message.writeTo(eolOut);
eolOut.flush();
// Create flag list (most often this will be "\SEEN")
String flagList = "";
Flag[] flags = message.getFlags();
if (flags.length > 0) {
StringBuilder sb = new StringBuilder();
for (int i = 0, count = flags.length; i < count; i++) {
Flag flag = flags[i];
if (flag == Flag.SEEN) {
sb.append(" \\Seen");
} else if (flag == Flag.FLAGGED) {
sb.append(" \\Flagged");
}
}
if (sb.length() > 0) {
flagList = sb.substring(1);
}
}
mConnection.sendCommand(
String.format("APPEND \"%s\" {%d}",
String.format("APPEND \"%s\" (%s) {%d}",
encodeFolderName(mName),
flagList,
out.getCount()), false);
ImapResponse response;
do {