Merge change 27393 into eclair
* changes: Don't send local changes of Drafts/Outbox to server (fixes #2149122)
This commit is contained in:
commit
4c8f06283f
@ -544,6 +544,11 @@ public class EmailSyncAdapter extends AbstractSyncAdapter {
|
|||||||
public boolean sendLocalChanges(Serializer s) throws IOException {
|
public boolean sendLocalChanges(Serializer s) throws IOException {
|
||||||
ContentResolver cr = mContext.getContentResolver();
|
ContentResolver cr = mContext.getContentResolver();
|
||||||
|
|
||||||
|
// Never upsync from these folders
|
||||||
|
if (mMailbox.mType == Mailbox.TYPE_DRAFTS || mMailbox.mType == Mailbox.TYPE_OUTBOX) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Find any of our deleted items
|
// Find any of our deleted items
|
||||||
Cursor c = cr.query(Message.DELETED_CONTENT_URI, Message.LIST_PROJECTION,
|
Cursor c = cr.query(Message.DELETED_CONTENT_URI, Message.LIST_PROJECTION,
|
||||||
MessageColumns.MAILBOX_KEY + '=' + mMailbox.mId, null, null);
|
MessageColumns.MAILBOX_KEY + '=' + mMailbox.mId, null, null);
|
||||||
@ -553,14 +558,16 @@ public class EmailSyncAdapter extends AbstractSyncAdapter {
|
|||||||
mDeletedIdList.clear();
|
mDeletedIdList.clear();
|
||||||
try {
|
try {
|
||||||
while (c.moveToNext()) {
|
while (c.moveToNext()) {
|
||||||
if (first) {
|
String serverId = c.getString(Message.LIST_SERVER_ID_COLUMN);
|
||||||
|
// Keep going if there's no serverId
|
||||||
|
if (serverId == null) {
|
||||||
|
continue;
|
||||||
|
} else if (first) {
|
||||||
s.start(Tags.SYNC_COMMANDS);
|
s.start(Tags.SYNC_COMMANDS);
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
// Send the command to delete this message
|
// Send the command to delete this message
|
||||||
s.start(Tags.SYNC_DELETE)
|
s.start(Tags.SYNC_DELETE).data(Tags.SYNC_SERVER_ID, serverId).end();
|
||||||
.data(Tags.SYNC_SERVER_ID, c.getString(Message.LIST_SERVER_ID_COLUMN))
|
|
||||||
.end(); // SYNC_DELETE
|
|
||||||
mDeletedIdList.add(c.getLong(Message.LIST_ID_COLUMN));
|
mDeletedIdList.add(c.getLong(Message.LIST_ID_COLUMN));
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
@ -591,7 +598,11 @@ public class EmailSyncAdapter extends AbstractSyncAdapter {
|
|||||||
if (!currentCursor.moveToFirst()) {
|
if (!currentCursor.moveToFirst()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// Keep going if there's no serverId
|
||||||
|
String serverId = currentCursor.getString(UPDATES_SERVER_ID_COLUMN);
|
||||||
|
if (serverId == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// If the message is now in the trash folder, it has been deleted by the user
|
// If the message is now in the trash folder, it has been deleted by the user
|
||||||
if (currentCursor.getLong(UPDATES_MAILBOX_KEY_COLUMN) == trashMailboxId) {
|
if (currentCursor.getLong(UPDATES_MAILBOX_KEY_COLUMN) == trashMailboxId) {
|
||||||
if (first) {
|
if (first) {
|
||||||
@ -599,10 +610,7 @@ public class EmailSyncAdapter extends AbstractSyncAdapter {
|
|||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
// Send the command to delete this message
|
// Send the command to delete this message
|
||||||
s.start(Tags.SYNC_DELETE)
|
s.start(Tags.SYNC_DELETE).data(Tags.SYNC_SERVER_ID, serverId).end();
|
||||||
.data(Tags.SYNC_SERVER_ID,
|
|
||||||
currentCursor.getString(UPDATES_SERVER_ID_COLUMN))
|
|
||||||
.end(); // SYNC_DELETE
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user