am 0c6747a6
: am 941d0a46
: am 2ba65aec
: am fa93a71b
: am b62067e3
: Make sure old body files don\'t contaminate new messages
* commit '0c6747a60d09b9c9aa0d3f717d8c19d66d7a67a5': Make sure old body files don't contaminate new messages
This commit is contained in:
commit
0c39ba15f9
@ -758,12 +758,9 @@ public class EmailProvider extends ContentProvider
|
||||
if (messageDeletion) {
|
||||
if (match == MESSAGE_ID) {
|
||||
// Delete the Body record associated with the deleted message
|
||||
final ContentValues emptyValues = new ContentValues(2);
|
||||
emptyValues.putNull(BodyColumns.HTML_CONTENT);
|
||||
emptyValues.putNull(BodyColumns.TEXT_CONTENT);
|
||||
final long messageId = Long.valueOf(id);
|
||||
try {
|
||||
writeBodyFiles(context, messageId, emptyValues);
|
||||
deleteBodyFiles(context, messageId);
|
||||
} catch (final IllegalStateException e) {
|
||||
LogUtils.v(LogUtils.TAG, e, "Exception while deleting bodies");
|
||||
}
|
||||
@ -772,13 +769,10 @@ public class EmailProvider extends ContentProvider
|
||||
// Delete any orphaned Body records
|
||||
final Cursor orphans = db.rawQuery(ORPHAN_BODY_MESSAGE_ID_SELECT, null);
|
||||
try {
|
||||
final ContentValues emptyValues = new ContentValues(2);
|
||||
emptyValues.putNull(BodyColumns.HTML_CONTENT);
|
||||
emptyValues.putNull(BodyColumns.TEXT_CONTENT);
|
||||
while (orphans.moveToNext()) {
|
||||
final long messageId = orphans.getLong(0);
|
||||
try {
|
||||
writeBodyFiles(context, messageId, emptyValues);
|
||||
deleteBodyFiles(context, messageId);
|
||||
} catch (final IllegalStateException e) {
|
||||
LogUtils.v(LogUtils.TAG, e, "Exception while deleting bodies");
|
||||
}
|
||||
@ -908,6 +902,8 @@ public class EmailProvider extends ContentProvider
|
||||
"Cannot insert body without MESSAGE_KEY");
|
||||
}
|
||||
final long messageId = values.getAsLong(BodyColumns.MESSAGE_KEY);
|
||||
// Ensure that no pre-existing body files contaminate the message
|
||||
deleteBodyFiles(context, messageId);
|
||||
writeBodyFiles(getContext(), messageId, values);
|
||||
break;
|
||||
// NOTE: It is NOT legal for production code to insert directly into UPDATED_MESSAGE
|
||||
@ -2220,6 +2216,14 @@ public class EmailProvider extends ContentProvider
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void deleteBodyFiles(final Context c, final long messageId)
|
||||
throws IllegalStateException {
|
||||
final ContentValues emptyValues = new ContentValues(2);
|
||||
emptyValues.putNull(BodyColumns.HTML_CONTENT);
|
||||
emptyValues.putNull(BodyColumns.TEXT_CONTENT);
|
||||
writeBodyFiles(c, messageId, emptyValues);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes message bodies to disk, read from a set of ContentValues
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user