From d7ee9639fd154ecee70ebb88f37e489a1b7f2a85 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 18 Mar 2024 20:55:26 -0400 Subject: [PATCH] Be more lenient with quality matches when forwarding attachments. --- .../securesms/database/AttachmentTableTest_deduping.kt | 9 +++++---- .../thoughtcrime/securesms/database/AttachmentTable.kt | 5 +---- 2 files changed, 6 insertions(+), 8 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 be519edc98..54f1138ad3 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 @@ -329,7 +329,7 @@ class AttachmentTableTest_deduping { } // This represents what would happen if you sent an image using high quality, then forwarded it using standard quality. - // Lowering the quality would change the output, so we shouldn't dedupe. + // Since you're forwarding, it doesn't matter if the new thing has a lower quality, we should still match and skip transform. test { val id1 = insertWithData(DATA_A, TransformProperties(sentMediaQuality = SentMediaQuality.HIGH.code)) compress(id1, DATA_A_COMPRESSED) @@ -337,10 +337,11 @@ class AttachmentTableTest_deduping { val id2 = insertWithData(DATA_A_COMPRESSED, TransformProperties(sentMediaQuality = SentMediaQuality.STANDARD.code)) - assertDataFilesAreDifferent(id1, id2) + assertDataFilesAreTheSame(id1, id2) + assertDataHashEndMatches(id1, id2) assertSkipTransform(id1, true) - assertSkipTransform(id2, false) - assertDoesNotHaveRemoteFields(id2) + assertSkipTransform(id1, true) + assertRemoteFieldsMatch(id1, id2) } // Make sure that files marked as unhashable are all updated together 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 7d92cf68b9..864a3aaf9e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentTable.kt @@ -1297,10 +1297,7 @@ class AttachmentTable( return false } - // If the potential match was sent using standard quality, we can re-use the file -- the new thing being high-quality can't make it any nicer - if (potentialMatchProperties.sentMediaQuality == SentMediaQuality.STANDARD.code) { - return true - } + return true } if (newProperties.sentMediaQuality != potentialMatchProperties.sentMediaQuality) {