summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Stadler <stadler@google.com>2011-03-25 16:36:11 -0700
committerAndy Stadler <stadler@google.com>2011-03-25 16:36:11 -0700
commit2ac4f855ea24afb78aaf52a8644f697f558d9432 (patch)
tree246811dc3f2eb3c2f9854f08c1102128e5e5d46f
parent8f0a79c2ef29b714110ee00a4fc28f97a729d4ef (diff)
downloadandroid_packages_apps_Email-2ac4f855ea24afb78aaf52a8644f697f558d9432.tar.gz
android_packages_apps_Email-2ac4f855ea24afb78aaf52a8644f697f558d9432.tar.bz2
android_packages_apps_Email-2ac4f855ea24afb78aaf52a8644f697f558d9432.zip
DO NOT MERGE - Don't sync messages moved from the sent folder
Modified location of the test to processUploadMessage() method. We do this to prevent creating multiple EmailContent.Message objects. Bug: 4096266 Backport from: Id83d3703283c0cd89a60c6210976093d39fb6934 Change-Id: Ie0e9c52182df96617cc942235135ef5ccf865d41
-rw-r--r--src/com/android/email/MessagingController.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/com/android/email/MessagingController.java b/src/com/android/email/MessagingController.java
index 93334fcb1..b739e86cc 100644
--- a/src/com/android/email/MessagingController.java
+++ b/src/com/android/email/MessagingController.java
@@ -1337,10 +1337,10 @@ public class MessagingController implements Runnable {
private void processUploadMessage(ContentResolver resolver, Store remoteStore,
EmailContent.Account account, Mailbox mailbox, long messageId)
throws MessagingException {
- EmailContent.Message message =
+ EmailContent.Message newMessage =
EmailContent.Message.restoreMessageWithId(mContext, messageId);
boolean deleteUpdate = false;
- if (message == null) {
+ if (newMessage == null) {
deleteUpdate = true;
Log.d(Email.LOG_TAG, "Upsync failed for null message, id=" + messageId);
} else if (mailbox.mType == Mailbox.TYPE_DRAFTS) {
@@ -1352,9 +1352,12 @@ public class MessagingController implements Runnable {
} else if (mailbox.mType == Mailbox.TYPE_TRASH) {
deleteUpdate = false;
Log.d(Email.LOG_TAG, "Upsync skipped for mailbox=trash, id=" + messageId);
+ } else if (newMessage != null && newMessage.mMailboxKey != mailbox.mId) {
+ deleteUpdate = false;
+ Log.d(Email.LOG_TAG, "Upsync skipped; mailbox changed, id=" + messageId);
} else {
Log.d(Email.LOG_TAG, "Upsyc triggered for message id=" + messageId);
- deleteUpdate = processPendingAppend(remoteStore, account, mailbox, message);
+ deleteUpdate = processPendingAppend(remoteStore, account, mailbox, newMessage);
}
if (deleteUpdate) {
// Finally, delete the update (if any)