From 7eac9ce1f400be3b76d3c77778c755759b4b215b Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 4 Sep 2024 18:16:25 -0400 Subject: [PATCH] Improve attachment deduping for videos. --- .../securesms/database/AttachmentTableTest_deduping.kt | 9 --------- .../securesms/conversation/v2/ConversationFragment.kt | 3 ++- .../thoughtcrime/securesms/database/AttachmentTable.kt | 4 ---- .../securesms/mediasend/MediaRepository.java | 4 +++- 4 files changed, 5 insertions(+), 15 deletions(-) diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/database/AttachmentTableTest_deduping.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/database/AttachmentTableTest_deduping.kt index 9f6212a81c..e5598f1f26 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/database/AttachmentTableTest_deduping.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/database/AttachmentTableTest_deduping.kt @@ -111,15 +111,6 @@ class AttachmentTableTest_deduping { assertDataFilesAreDifferent(id1, id2) assertDataHashStartMatches(id1, id2) } - - // Non-matching mp4 fast start - test { - val id1 = insertWithData(DATA_A, TransformProperties(mp4FastStart = true)) - val id2 = insertWithData(DATA_A, TransformProperties(mp4FastStart = false)) - - assertDataFilesAreDifferent(id1, id2) - assertDataHashStartMatches(id1, id2) - } } /** diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index 1c9bc25465..c63e06fb15 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -199,6 +199,7 @@ import org.thoughtcrime.securesms.conversation.v2.groups.ConversationGroupViewMo import org.thoughtcrime.securesms.conversation.v2.items.ChatColorsDrawable import org.thoughtcrime.securesms.conversation.v2.items.InteractiveConversationElement import org.thoughtcrime.securesms.conversation.v2.keyboard.AttachmentKeyboardFragment +import org.thoughtcrime.securesms.database.AttachmentTable import org.thoughtcrime.securesms.database.DraftTable import org.thoughtcrime.securesms.database.model.IdentityRecord import org.thoughtcrime.securesms.database.model.InMemoryMessageRecord @@ -1265,7 +1266,7 @@ class ConversationFragment : videoGif, Optional.empty(), Optional.empty(), - Optional.empty(), + Optional.of(AttachmentTable.TransformProperties.forSentMediaQuality(SignalStore.settings.sentMediaQuality.code)), Optional.empty() ) conversationActivityResultContracts.launchMediaEditor(listOf(media), recipientId, composeText.textTrimmed) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentTable.kt index df0c4662cb..5ffc515cfd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentTable.kt @@ -1950,10 +1950,6 @@ class AttachmentTable( return false } - if (newProperties.mp4FastStart != potentialMatchProperties.mp4FastStart) { - return false - } - return true } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java index ac85b7c530..0bc6226124 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java @@ -21,7 +21,9 @@ import com.annimon.stream.Stream; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.database.AttachmentTable; import org.thoughtcrime.securesms.dependencies.AppDependencies; +import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.util.MediaUtil; import org.signal.core.util.SqlUtil; @@ -275,7 +277,7 @@ public class MediaRepository { long size = cursor.getLong(cursor.getColumnIndexOrThrow(Images.Media.SIZE)); long duration = !isImage ? cursor.getInt(cursor.getColumnIndexOrThrow(Video.Media.DURATION)) : 0; - media.add(fixMimeType(context, new Media(uri, mimetype, date, width, height, size, duration, false, false, Optional.of(bucketId), Optional.empty(), Optional.empty(), Optional.empty()))); + media.add(fixMimeType(context, new Media(uri, mimetype, date, width, height, size, duration, false, false, Optional.of(bucketId), Optional.empty(), Optional.of(AttachmentTable.TransformProperties.forSentMediaQuality(SignalStore.settings().getSentMediaQuality().getCode())), Optional.empty()))); } }