fixed updating of server message id after dedup

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/parser/MessageParser.java        | 8 
src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java | 5 
2 files changed, 8 insertions(+), 5 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/parser/MessageParser.java 🔗

@@ -520,8 +520,12 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
 							&& duplicate.getServerMsgId() == null
 							&& message.getServerMsgId() != null) {
 						duplicate.setServerMsgId(message.getServerMsgId());
-						mXmppConnectionService.databaseBackend.updateMessage(message);
-						serverMsgIdUpdated = true;
+						if (mXmppConnectionService.databaseBackend.updateMessage(duplicate)) {
+							serverMsgIdUpdated = true;
+						} else {
+							serverMsgIdUpdated = false;
+							Log.e(Config.LOGTAG,"failed to update message");
+						}
 					} else {
 						serverMsgIdUpdated = false;
 					}

src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java 🔗

@@ -825,11 +825,10 @@ public class DatabaseBackend extends SQLiteOpenHelper {
 		return db;
 	}
 
-	public void updateMessage(Message message) {
+	public boolean updateMessage(Message message) {
 		SQLiteDatabase db = this.getWritableDatabase();
 		String[] args = {message.getUuid()};
-		db.update(Message.TABLENAME, message.getContentValues(), Message.UUID
-				+ "=?", args);
+		return db.update(Message.TABLENAME, message.getContentValues(), Message.UUID + "=?", args) == 1;
 	}
 
 	public void updateMessage(Message message, String uuid) {