Skip to content

Commit 50d8090

Browse files
Verryx-02cody-signal
authored andcommitted
Save media attachments to Signal subdirectories.
Closes #14277
1 parent eb7012b commit 50d8090

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentUtil.kt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,16 @@ object SaveAttachmentUtil {
156156
MediaStore.MediaColumns.DATE_MODIFIED to TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())
157157
)
158158

159+
if (Build.VERSION.SDK_INT > 28) {
160+
val relativePath = when {
161+
contentType.startsWith("image/") -> Environment.DIRECTORY_PICTURES + "/Signal"
162+
contentType.startsWith("video/") -> Environment.DIRECTORY_MOVIES + "/Signal"
163+
contentType.startsWith("audio/") -> Environment.DIRECTORY_MUSIC + "/Signal"
164+
else -> Environment.DIRECTORY_DOWNLOADS + "/Signal"
165+
}
166+
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, relativePath)
167+
}
168+
159169
if (Build.VERSION.SDK_INT > 28) {
160170
var i = 0
161171
var displayName = fileName
@@ -213,10 +223,10 @@ object SaveAttachmentUtil {
213223

214224
private fun getExternalPathForType(contentType: String): String? {
215225
val storage: File? = when {
216-
contentType.startsWith("video/") -> Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)
217-
contentType.startsWith("audio/") -> Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)
218-
contentType.startsWith("image/") -> Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
219-
else -> Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)
226+
contentType.startsWith("video/") -> File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES), "Signal")
227+
contentType.startsWith("audio/") -> File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC), "Signal")
228+
contentType.startsWith("image/") -> File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Signal")
229+
else -> File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "Signal")
220230
}
221231

222232
return storage?.let { ensureExternalPath(storage) }?.absolutePath

0 commit comments

Comments
 (0)