diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentDatabase.java index 80443293ab..45fbb57d93 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentDatabase.java @@ -535,14 +535,10 @@ public class AttachmentDatabase extends Database { } values.put(TRANSFER_STATE, TRANSFER_PROGRESS_DONE); - values.put(CDN_NUMBER, 0); - values.put(CONTENT_LOCATION, (String)null); - values.put(CONTENT_DISPOSITION, (String)null); - values.put(DIGEST, (byte[])null); - values.put(NAME, (String) null); - values.put(FAST_PREFLIGHT_ID, (String)null); values.put(TRANSFER_FILE, (String)null); + values.put(TRANSFORM_PROPERTIES, TransformProperties.forSkipTransform().serialize()); + if (database.update(TABLE_NAME, values, PART_ID_WHERE, attachmentId.toStrings()) == 0) { //noinspection ResultOfMethodCallIgnored dataInfo.file.delete(); @@ -1198,7 +1194,9 @@ public class AttachmentDatabase extends Database { } } - boolean useTemplateUpload = template.getUploadTimestamp() > attachment.getUploadTimestamp() && template.getTransferState() == TRANSFER_PROGRESS_DONE; + boolean useTemplateUpload = template.getUploadTimestamp() > attachment.getUploadTimestamp() && + template.getTransferState() == TRANSFER_PROGRESS_DONE && + template.getTransformProperties().shouldSkipTransform(); ContentValues contentValues = new ContentValues(); contentValues.put(MMS_ID, mmsId); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.java index 1e08a9117b..dd0cc8b686 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.java @@ -4,6 +4,7 @@ import android.graphics.Bitmap; import android.media.MediaDataSource; import android.media.MediaMetadataRetriever; import android.os.Build; +import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -114,7 +115,7 @@ public final class AttachmentUploadJob extends BaseJob { } long timeSinceUpload = System.currentTimeMillis() - databaseAttachment.getUploadTimestamp(); - if (timeSinceUpload < UPLOAD_REUSE_THRESHOLD) { + if (timeSinceUpload < UPLOAD_REUSE_THRESHOLD && !TextUtils.isEmpty(databaseAttachment.getLocation())) { Log.i(TAG, "We can re-use an already-uploaded file. It was uploaded " + timeSinceUpload + " ms ago. Skipping."); return; } else if (databaseAttachment.getUploadTimestamp() > 0) {