Save media attachments to Signal subdirectories.

Closes #14277
This commit is contained in:
Verryx-02
2025-08-03 19:07:56 +02:00
committed by Cody Henthorne
parent eb7012b7ae
commit 50d809029e

View File

@@ -156,6 +156,16 @@ object SaveAttachmentUtil {
MediaStore.MediaColumns.DATE_MODIFIED to TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()) MediaStore.MediaColumns.DATE_MODIFIED to TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())
) )
if (Build.VERSION.SDK_INT > 28) {
val relativePath = when {
contentType.startsWith("image/") -> Environment.DIRECTORY_PICTURES + "/Signal"
contentType.startsWith("video/") -> Environment.DIRECTORY_MOVIES + "/Signal"
contentType.startsWith("audio/") -> Environment.DIRECTORY_MUSIC + "/Signal"
else -> Environment.DIRECTORY_DOWNLOADS + "/Signal"
}
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, relativePath)
}
if (Build.VERSION.SDK_INT > 28) { if (Build.VERSION.SDK_INT > 28) {
var i = 0 var i = 0
var displayName = fileName var displayName = fileName
@@ -213,10 +223,10 @@ object SaveAttachmentUtil {
private fun getExternalPathForType(contentType: String): String? { private fun getExternalPathForType(contentType: String): String? {
val storage: File? = when { val storage: File? = when {
contentType.startsWith("video/") -> Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES) contentType.startsWith("video/") -> File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES), "Signal")
contentType.startsWith("audio/") -> Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) contentType.startsWith("audio/") -> File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC), "Signal")
contentType.startsWith("image/") -> Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) contentType.startsWith("image/") -> File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Signal")
else -> Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) else -> File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "Signal")
} }
return storage?.let { ensureExternalPath(storage) }?.absolutePath return storage?.let { ensureExternalPath(storage) }?.absolutePath