From 8f871c2e3ad9f2789503e9b0aa52a3cdb221b55c Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 8 Oct 2020 10:29:46 -0400 Subject: [PATCH] Don't allow quote-jumps to remote deleted messages. --- .../thoughtcrime/securesms/database/MmsSmsDatabase.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 2ad3372fc..a63a9d98f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabase.java @@ -314,7 +314,7 @@ public class MmsSmsDatabase extends Database { public int getQuotedMessagePosition(long threadId, long quoteId, @NonNull RecipientId recipientId) { String order = MmsSmsColumns.NORMALIZED_DATE_RECEIVED + " DESC"; - String selection = MmsSmsColumns.THREAD_ID + " = " + threadId; + String selection = MmsSmsColumns.THREAD_ID + " = " + threadId + " AND " + MmsSmsColumns.REMOTE_DELETED + " = 0"; try (Cursor cursor = queryTables(new String[]{ MmsSmsColumns.NORMALIZED_DATE_SENT, MmsSmsColumns.RECIPIENT_ID}, selection, order, null)) { boolean isOwnNumber = Recipient.resolved(recipientId).isLocalNumber(); @@ -333,7 +333,7 @@ public class MmsSmsDatabase extends Database { public int getMessagePositionInConversation(long threadId, long receivedTimestamp, @NonNull RecipientId recipientId) { String order = MmsSmsColumns.NORMALIZED_DATE_RECEIVED + " DESC"; - String selection = MmsSmsColumns.THREAD_ID + " = " + threadId; + String selection = MmsSmsColumns.THREAD_ID + " = " + threadId + " AND " + MmsSmsColumns.REMOTE_DELETED + " = 0"; try (Cursor cursor = queryTables(new String[]{ MmsSmsColumns.NORMALIZED_DATE_RECEIVED, MmsSmsColumns.RECIPIENT_ID}, selection, order, null)) { boolean isOwnNumber = Recipient.resolved(recipientId).isLocalNumber(); @@ -364,7 +364,9 @@ public class MmsSmsDatabase extends Database { */ public int getMessagePositionInConversation(long threadId, long receivedTimestamp) { String order = MmsSmsColumns.NORMALIZED_DATE_RECEIVED + " DESC"; - String selection = MmsSmsColumns.THREAD_ID + " = " + threadId + " AND " + MmsSmsColumns.NORMALIZED_DATE_RECEIVED + " > " + receivedTimestamp; + String selection = MmsSmsColumns.THREAD_ID + " = " + threadId + " AND " + + MmsSmsColumns.NORMALIZED_DATE_RECEIVED + " > " + receivedTimestamp + " AND " + + MmsSmsColumns.REMOTE_DELETED + " = 0"; try (Cursor cursor = queryTables(new String[]{ "COUNT(*)" }, selection, order, null)) { if (cursor != null && cursor.moveToFirst()) {