diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabase.java index 3266c419e1..096e48a5f7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabase.java @@ -185,7 +185,7 @@ public class MmsSmsDatabase extends Database { public Cursor getConversationSnippet(long threadId) { String order = MmsSmsColumns.NORMALIZED_DATE_RECEIVED + " DESC"; - String selection = MmsSmsColumns.THREAD_ID + " = " + threadId; + String selection = MmsSmsColumns.THREAD_ID + " = " + threadId + " AND (" + SmsDatabase.TYPE + " IS NULL OR " + SmsDatabase.TYPE + " != " + SmsDatabase.Types.PROFILE_CHANGE_TYPE + ")"; return queryTables(PROJECTION, selection, order, "1"); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java index 17041a1ccc..acf7af97ac 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java @@ -2351,7 +2351,7 @@ public class RecipientDatabase extends Database { Log.w(TAG, "Had no sessions. No action necessary."); } - DatabaseFactory.getThreadDatabase(context).update(threadMerge.threadId, false, false, false); + DatabaseFactory.getThreadDatabase(context).update(threadMerge.threadId, false, false); return byUuid; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java index f947a7b092..e419c95cee 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java @@ -898,7 +898,7 @@ public class SmsDatabase extends MessagingDatabase { SQLiteDatabase db = databaseHelper.getWritableDatabase(); long threadId = getThreadIdForMessage(messageId); db.delete(TABLE_NAME, ID_WHERE, new String[] {messageId+""}); - boolean threadDeleted = DatabaseFactory.getThreadDatabase(context).update(threadId, false, true, true); + boolean threadDeleted = DatabaseFactory.getThreadDatabase(context).update(threadId, false, true); notifyConversationListeners(threadId); return threadDeleted; } 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 31cd85d9e3..05701917d5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java @@ -22,7 +22,6 @@ import android.content.Context; import android.database.Cursor; import android.database.MergeCursor; import android.net.Uri; -import android.util.SparseArray; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -167,7 +166,7 @@ public class ThreadDatabase extends Database { private void updateThread(long threadId, long count, String body, @Nullable Uri attachment, @Nullable String contentType, @Nullable Extra extra, long date, int status, int deliveryReceiptCount, long type, boolean unarchive, - long expiresIn, int readReceiptCount, boolean causedByDeletion) + long expiresIn, int readReceiptCount) { String extraSerialized = null; @@ -180,14 +179,12 @@ public class ThreadDatabase extends Database { } ContentValues contentValues = new ContentValues(); - if (!MmsSmsColumns.Types.isProfileChange(type) || causedByDeletion) { - contentValues.put(DATE, date - date % 1000); - contentValues.put(SNIPPET, body); - contentValues.put(SNIPPET_URI, attachment == null ? null : attachment.toString()); - contentValues.put(SNIPPET_TYPE, type); - contentValues.put(SNIPPET_CONTENT_TYPE, contentType); - contentValues.put(SNIPPET_EXTRAS, extraSerialized); - } + contentValues.put(DATE, date - date % 1000); + contentValues.put(SNIPPET, body); + contentValues.put(SNIPPET_URI, attachment == null ? null : attachment.toString()); + contentValues.put(SNIPPET_TYPE, type); + contentValues.put(SNIPPET_CONTENT_TYPE, contentType); + contentValues.put(SNIPPET_EXTRAS, extraSerialized); contentValues.put(MESSAGE_COUNT, count); contentValues.put(STATUS, status); contentValues.put(DELIVERY_RECEIPT_COUNT, deliveryReceiptCount); @@ -827,10 +824,10 @@ public class ThreadDatabase extends Database { } public boolean update(long threadId, boolean unarchive) { - return update(threadId, unarchive, true, false); + return update(threadId, unarchive, true); } - public boolean update(long threadId, boolean unarchive, boolean allowDeletion, boolean causedByDeletion) { + public boolean update(long threadId, boolean unarchive, boolean allowDeletion) { MmsSmsDatabase mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context); long count = mmsSmsDatabase.getConversationCount(threadId); @@ -852,7 +849,7 @@ public class ThreadDatabase extends Database { updateThread(threadId, count, ThreadBodyUtil.getFormattedBodyFor(context, record), getAttachmentUriFor(record), getContentTypeFor(record), getExtrasFor(record), record.getTimestamp(), record.getDeliveryStatus(), record.getDeliveryReceiptCount(), - record.getType(), unarchive, record.getExpiresIn(), record.getReadReceiptCount(), causedByDeletion); + record.getType(), unarchive, record.getExpiresIn(), record.getReadReceiptCount()); notifyConversationListListeners(); return false; } else {