diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java index 5b024d2acc6..6cbb91a5915 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java @@ -212,16 +212,23 @@ private void updateThread(long threadId, long count, String body, @Nullable Uri contentValues.put(READ_RECEIPT_COUNT, readReceiptCount); contentValues.put(EXPIRES_IN, expiresIn); - if (unarchive) { - contentValues.put(ARCHIVED, 0); - } - if (count != getConversationMessageCount(threadId)) { contentValues.put(LAST_SCROLLED, 0); } SQLiteDatabase db = databaseHelper.getWritableDatabase(); db.update(TABLE_NAME, contentValues, ID + " = ?", new String[] {threadId + ""}); + + if (unarchive) { + ContentValues archiveValues = new ContentValues(); + archiveValues.put(ARCHIVED, 0); + + SqlUtil.Query query = SqlUtil.buildTrueUpdateQuery(ID_WHERE, SqlUtil.buildArgs(threadId), archiveValues); + if (db.update(TABLE_NAME, archiveValues, query.getWhere(), query.getWhereArgs()) > 0) { + StorageSyncHelper.scheduleSyncForDataChange(); + } + } + notifyConversationListListeners(); }