diff --git a/src/main/kotlin/com/bolenpad/photophetch/device/AndroidConnector.kt b/src/main/kotlin/com/bolenpad/photophetch/device/AndroidConnector.kt index 48ca4bf..96645ad 100644 --- a/src/main/kotlin/com/bolenpad/photophetch/device/AndroidConnector.kt +++ b/src/main/kotlin/com/bolenpad/photophetch/device/AndroidConnector.kt @@ -19,11 +19,17 @@ import kotlin.io.path.absolutePathString * Install via: brew install android-platform-tools */ class AndroidConnector( - private val adbBin: String = com.bolenpad.photophetch.util.ExternalTools.resolve("adb"), + private val adbBin: String = "adb", ) : DeviceConnector { private val log = LoggerFactory.getLogger(AndroidConnector::class.java) + // Resolve adb path lazily — ExternalTools searches Homebrew paths + // so the packaged .app finds adb even without shell PATH + private val resolvedAdb: String by lazy { + com.bolenpad.photophetch.util.ExternalTools.resolve(adbBin) + } + // Directories on Android that contain camera-roll originals. // Used as fallback if dynamic DCIM discovery finds nothing. private val fallbackCameraDirs = listOf( @@ -213,7 +219,7 @@ class AndroidConnector( private fun runAdb(serial: String?, vararg args: String): String { val cmd = buildList { - add(adbBin) + add(resolvedAdb) if (serial != null) { add("-s") add(serial)