From 7d7c6c513064f7e3a174a262fdd4319feac5770d Mon Sep 17 00:00:00 2001 From: Michelle Tang Date: Tue, 8 Jul 2025 09:30:52 -0400 Subject: [PATCH] Ensure story attachment data is deleted after expiration. --- .../securesms/database/MessageTable.kt | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt index a6889c6f4a..9e23b3455c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt @@ -1656,8 +1656,23 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat ) """ + val storyRepliesQuery = """ + SELECT $ID FROM $TABLE_NAME + WHERE + $PARENT_STORY_ID < 0 AND + ABS($PARENT_STORY_ID) IN ( + SELECT $ID + FROM $TABLE_NAME + WHERE $storiesBeforeTimestampWhere + ) + """ + db.execSQL(deleteStoryRepliesQuery, sharedArgs) db.execSQL(disassociateQuoteQuery, sharedArgs) + db.rawQuery(storyRepliesQuery, sharedArgs).forEach { cursor: Cursor -> + val mmsId = cursor.requireLong(ID) + attachments.deleteAttachmentsForMessage(mmsId) + } db.select(FROM_RECIPIENT_ID) .from(TABLE_NAME) @@ -1720,8 +1735,23 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat ) """ + val storyRepliesQuery = """ + SELECT $ID FROM $TABLE_NAME + WHERE + $PARENT_STORY_ID < 0 AND + ABS($PARENT_STORY_ID) IN ( + SELECT $ID + FROM $TABLE_NAME + WHERE $storesInRecipientThread + ) + """ + db.execSQL(deleteStoryRepliesQuery, sharedArgs) db.execSQL(disassociateQuoteQuery, sharedArgs) + db.rawQuery(storyRepliesQuery, sharedArgs).forEach { cursor: Cursor -> + val mmsId = cursor.requireLong(ID) + attachments.deleteAttachmentsForMessage(mmsId) + } AppDependencies.databaseObserver.notifyStoryObservers(recipientId)