Scan Downloads, expand media extensions to AVIF/HEIF/WEBP/RAW/MKV etc
AndroidConnector: - Add /storage/emulated/0/Download to scan list (flat dir, no subdirs) - Expand mediaExtensions: AVIF, HEIF, WEBP, DNG/RAW/ARW/CR2/NEF/ORF, TIFF, BMP, MPEG/MPG, M4V, MKV, WEBM, 3G2 - Update video detection set to match ExifFilter: remove 'download' from excluded fragments so Downloads folder shows in the Other section rather than being hidden.
This commit is contained in:
@@ -31,10 +31,25 @@ class AndroidConnector(
|
||||
"/storage/emulated/0/Pictures/Camera",
|
||||
)
|
||||
|
||||
// Photo/video extensions to include
|
||||
// Photo/video extensions to include — covers all common camera and download formats
|
||||
private val mediaExtensions = setOf(
|
||||
"jpg", "jpeg", "png", "dng", "raw", // photos
|
||||
"mp4", "mov", "3gp", "avi", // videos
|
||||
// Photos
|
||||
"jpg", "jpeg",
|
||||
"heic", "heif",
|
||||
"avif",
|
||||
"webp",
|
||||
"png",
|
||||
"dng", "raw", "arw", "cr2", "cr3", "nef", "orf", "rw2",
|
||||
"tiff", "tif",
|
||||
"bmp",
|
||||
// Videos
|
||||
"mp4", "m4v",
|
||||
"mov",
|
||||
"mpeg", "mpg", "mpe",
|
||||
"3gp", "3g2",
|
||||
"avi",
|
||||
"mkv",
|
||||
"webm",
|
||||
)
|
||||
|
||||
override suspend fun detectDevices(): List<DeviceInfo> {
|
||||
@@ -70,7 +85,7 @@ class AndroidConnector(
|
||||
val serial = requireSerial(device)
|
||||
val photos = mutableListOf<PhonePhoto>()
|
||||
|
||||
// Scan all subdirectories under DCIM and Pictures.
|
||||
// Scan all subdirectories under DCIM and Pictures, plus Downloads root.
|
||||
// /sdcard is a symlink to /storage/emulated/0 — scan only the canonical path.
|
||||
val scanRoots = listOf(
|
||||
"/storage/emulated/0/DCIM",
|
||||
@@ -87,6 +102,9 @@ class AndroidConnector(
|
||||
.forEach { subdir -> cameraDirs.add("$root/$subdir") }
|
||||
}
|
||||
|
||||
// Downloads is a flat directory (no subdirs worth scanning), add it directly
|
||||
cameraDirs.add("/storage/emulated/0/Download")
|
||||
|
||||
// Fall back to hardcoded list if dynamic discovery found nothing
|
||||
val dirsToScan = cameraDirs.ifEmpty { fallbackCameraDirs }
|
||||
|
||||
@@ -121,7 +139,7 @@ class AndroidConnector(
|
||||
dateTaken = dateTaken,
|
||||
exifMake = device.displayName,
|
||||
exifModel = device.displayName,
|
||||
mediaType = if (ext in setOf("mp4", "mov", "3gp", "avi"))
|
||||
mediaType = if (ext in setOf("mp4", "m4v", "mov", "mpeg", "mpg", "mpe", "3gp", "3g2", "avi", "mkv", "webm"))
|
||||
MediaType.VIDEO else MediaType.PHOTO,
|
||||
sourceFolder = folderName,
|
||||
)
|
||||
|
||||
@@ -35,7 +35,6 @@ object ExifFilter {
|
||||
"signal",
|
||||
"viber",
|
||||
"received",
|
||||
"download",
|
||||
"snapchat",
|
||||
"instagram",
|
||||
"twitter",
|
||||
|
||||
Reference in New Issue
Block a user