diff --git a/src/main/kotlin/com/bolenpad/photophetch/device/AndroidConnector.kt b/src/main/kotlin/com/bolenpad/photophetch/device/AndroidConnector.kt index 4724001..1609019 100644 --- a/src/main/kotlin/com/bolenpad/photophetch/device/AndroidConnector.kt +++ b/src/main/kotlin/com/bolenpad/photophetch/device/AndroidConnector.kt @@ -70,12 +70,15 @@ class AndroidConnector( val serial = requireSerial(device) val photos = mutableListOf() - // /sdcard is a symlink to /storage/emulated/0 on most Android devices. - // Scan only /storage/emulated/0/DCIM to avoid listing every photo twice. - val dcimRoots = listOf("/storage/emulated/0/DCIM") + // Scan all subdirectories under DCIM and Pictures. + // /sdcard is a symlink to /storage/emulated/0 — scan only the canonical path. + val scanRoots = listOf( + "/storage/emulated/0/DCIM", + "/storage/emulated/0/Pictures", + ) val cameraDirs = mutableListOf() - for (root in dcimRoots) { + for (root in scanRoots) { val lsOutput = runAdb(serial, "shell", "ls", root, "2>/dev/null") if (lsOutput.contains("No such file") || lsOutput.isBlank()) continue lsOutput.lines() @@ -84,9 +87,6 @@ class AndroidConnector( .forEach { subdir -> cameraDirs.add("$root/$subdir") } } - // Also check Pictures/Camera (some Samsung models store there) - cameraDirs.add("/storage/emulated/0/Pictures/Camera") - // Fall back to hardcoded list if dynamic discovery found nothing val dirsToScan = cameraDirs.ifEmpty { fallbackCameraDirs } diff --git a/src/main/kotlin/com/bolenpad/photophetch/util/ExifFilter.kt b/src/main/kotlin/com/bolenpad/photophetch/util/ExifFilter.kt index 44aa9c4..7f65dd1 100644 --- a/src/main/kotlin/com/bolenpad/photophetch/util/ExifFilter.kt +++ b/src/main/kotlin/com/bolenpad/photophetch/util/ExifFilter.kt @@ -41,9 +41,19 @@ object ExifFilter { "twitter", "facebook", "tiktok", + "slack", + "teams", + "zoom", + "discord", "share", "temp", "resize", + "sticker", + "gif", + "avatar", + "profile", + "thumbnail", + "cache", ) /**