Clean up additional data when viewing view-once messages.

This commit is contained in:
Greyson Parrelli
2025-07-01 17:00:49 -04:00
committed by GitHub
parent 82fd8cf282
commit f68c344c4b
3 changed files with 45 additions and 2 deletions

View File

@@ -862,12 +862,19 @@ class AttachmentTable(
DATA_RANDOM to null, DATA_RANDOM to null,
DATA_HASH_START to null, DATA_HASH_START to null,
DATA_HASH_END to null, DATA_HASH_END to null,
REMOTE_KEY to null,
REMOTE_DIGEST to null,
REMOTE_INCREMENTAL_DIGEST to null,
REMOTE_INCREMENTAL_DIGEST_CHUNK_SIZE to 0,
THUMBNAIL_FILE to null,
THUMBNAIL_RANDOM to null,
FILE_NAME to null, FILE_NAME to null,
CAPTION to null, CAPTION to null,
DATA_SIZE to 0, DATA_SIZE to 0,
WIDTH to 0, WIDTH to 0,
HEIGHT to 0, HEIGHT to 0,
TRANSFER_STATE to TRANSFER_PROGRESS_DONE, TRANSFER_STATE to TRANSFER_PROGRESS_DONE,
ARCHIVE_TRANSFER_STATE to ArchiveTransferState.NONE.value,
BLUR_HASH to null, BLUR_HASH to null,
CONTENT_TYPE to MediaUtil.VIEW_ONCE CONTENT_TYPE to MediaUtil.VIEW_ONCE
) )

View File

@@ -137,6 +137,7 @@ import org.thoughtcrime.securesms.database.helpers.migration.V279_AddNotificatio
import org.thoughtcrime.securesms.database.helpers.migration.V280_RemoveAttachmentIv import org.thoughtcrime.securesms.database.helpers.migration.V280_RemoveAttachmentIv
import org.thoughtcrime.securesms.database.helpers.migration.V281_RemoveArchiveTransferFile import org.thoughtcrime.securesms.database.helpers.migration.V281_RemoveArchiveTransferFile
import org.thoughtcrime.securesms.database.helpers.migration.V282_AddSnippetMessageIdColumnToThreadTable import org.thoughtcrime.securesms.database.helpers.migration.V282_AddSnippetMessageIdColumnToThreadTable
import org.thoughtcrime.securesms.database.helpers.migration.V283_ViewOnceRemoteDataCleanup
import org.thoughtcrime.securesms.database.SQLiteDatabase as SignalSqliteDatabase import org.thoughtcrime.securesms.database.SQLiteDatabase as SignalSqliteDatabase
/** /**
@@ -279,10 +280,11 @@ object SignalDatabaseMigrations {
279 to V279_AddNotificationProfileForeignKey, 279 to V279_AddNotificationProfileForeignKey,
280 to V280_RemoveAttachmentIv, 280 to V280_RemoveAttachmentIv,
281 to V281_RemoveArchiveTransferFile, 281 to V281_RemoveArchiveTransferFile,
282 to V282_AddSnippetMessageIdColumnToThreadTable 282 to V282_AddSnippetMessageIdColumnToThreadTable,
283 to V283_ViewOnceRemoteDataCleanup
) )
const val DATABASE_VERSION = 282 const val DATABASE_VERSION = 283
@JvmStatic @JvmStatic
fun migrate(context: Application, db: SignalSqliteDatabase, oldVersion: Int, newVersion: Int) { fun migrate(context: Application, db: SignalSqliteDatabase, oldVersion: Int, newVersion: Int) {

View File

@@ -0,0 +1,34 @@
/*
* Copyright 2025 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* We were unnecessarily holding on to some attachment download data for viewed view-once messages that we don't need to hold onto.
*/
object V283_ViewOnceRemoteDataCleanup : SignalDatabaseMigration {
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
db.execSQL(
"""
UPDATE
attachment
SET
remote_key = NULL,
remote_digest = NULL,
remote_incremental_digest = NULL,
remote_incremental_digest_chunk_size = 0,
thumbnail_file = NULL,
thumbnail_random = NULL,
archive_transfer_state = 0
WHERE
data_file IS NULL AND
content_type = 'application/x-signal-view-once'
"""
)
}
}