From acd5a4cd0053d387d6543735bc069d83a3d24a2e Mon Sep 17 00:00:00 2001 From: yugal1107 Date: Fri, 26 Sep 2025 09:18:26 +0000 Subject: [PATCH] Updated logic to consider external media also --- .../java/com/deniscerri/ytdl/util/FileUtil.kt | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/deniscerri/ytdl/util/FileUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/FileUtil.kt index ac5c7b41..a8b9ffd6 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/FileUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/FileUtil.kt @@ -77,15 +77,21 @@ object FileUtil { val selectionArgs: Array if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - val parentPath = file.parentFile?.absolutePath ?: "" - val externalStoragePath = Environment.getExternalStorageDirectory().absolutePath - val relativePath = if (parentPath.length > externalStoragePath.length && parentPath.startsWith(externalStoragePath)) { - parentPath.substring(externalStoragePath.length).removePrefix("/") + "/" + val parentPath = file.parentFile?.absolutePath.orEmpty() + val primaryRoot = Environment.getExternalStorageDirectory().absolutePath + if (parentPath.startsWith(primaryRoot)) { + val trimmed = parentPath + .removePrefix(primaryRoot) + .removePrefix(File.separator) + val relativePath = if (trimmed.isEmpty()) "" else "$trimmed${File.separator}" + selection = MediaStore.MediaColumns.RELATIVE_PATH + " =? AND " + + MediaStore.MediaColumns.DISPLAY_NAME + " =?" + selectionArgs = arrayOf(relativePath, file.name) } else { - "" + // Non-primary storage: fall back to DATA query + selection = MediaStore.MediaColumns.DATA + " =?" + selectionArgs = arrayOf(file.absolutePath) } - selection = MediaStore.MediaColumns.RELATIVE_PATH + " =? AND " + MediaStore.MediaColumns.DISPLAY_NAME + " =?" - selectionArgs = arrayOf(relativePath, file.name) } else { selection = MediaStore.MediaColumns.DATA + " =?" selectionArgs = arrayOf(file.absolutePath)