diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentTask.java b/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentTask.java index 908711677..c99ba7435 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentTask.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentTask.java @@ -248,7 +248,15 @@ public class SaveAttachmentTask extends ProgressDialogAsyncTask 28) { + int i = 0; + String displayName = fileName; + while (pathInCache(outputUri, displayName) || displayNameTaken(outputUri, displayName)) { + displayName = base + "-" + (++i) + "." + extension; + } + + contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, displayName); contentValues.put(MediaStore.MediaColumns.IS_PENDING, 1); + putInCache(outputUri, displayName); } else if (Objects.equals(outputUri.getScheme(), ContentResolver.SCHEME_FILE)) { File outputDirectory = new File(outputUri.getPath()); File outputFile = new File(outputDirectory, base + "." + extension); @@ -317,6 +325,21 @@ public class SaveAttachmentTask extends ProgressDialogAsyncTask