Skip to content

Commit

Permalink
make part and mms insertion a single transaction
Browse files Browse the repository at this point in the history
  • Loading branch information
mcginty authored and pR0Ps committed May 1, 2015
1 parent cd93520 commit 28bb340
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions src/org/smssecure/smssecure/database/MmsDatabase.java
Expand Up @@ -754,15 +754,21 @@ private long insertMediaMessage(MasterSecret masterSecret,

contentValues.put(PART_COUNT, PartParser.getSupportedMediaPartCount(body));

long messageId = db.insert(TABLE_NAME, null, contentValues);
db.beginTransaction();
try {
long messageId = db.insert(TABLE_NAME, null, contentValues);

addressDatabase.insertAddressesForId(messageId, headers);
partsDatabase.insertParts(masterSecret, messageId, body);
addressDatabase.insertAddressesForId(messageId, headers);
partsDatabase.insertParts(masterSecret, messageId, body);

notifyConversationListeners(contentValues.getAsLong(THREAD_ID));
DatabaseFactory.getThreadDatabase(context).update(contentValues.getAsLong(THREAD_ID));
notifyConversationListeners(contentValues.getAsLong(THREAD_ID));
DatabaseFactory.getThreadDatabase(context).update(contentValues.getAsLong(THREAD_ID));
db.setTransactionSuccessful();
return messageId;
} finally {
db.endTransaction();
}

return messageId;
}

public boolean delete(long messageId) {
Expand Down

0 comments on commit 28bb340

Please sign in to comment.