From cadcc6d937629a5da175aff575cae969dd8bc6b6 Mon Sep 17 00:00:00 2001 From: Sergey Chelombitko Date: Tue, 31 Dec 2024 10:36:56 +0000 Subject: [PATCH] Avoid duplicate DeviceConnected events --- .../marathon/android/ddmlib/DdmlibDeviceProvider.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/vendor/vendor-android/ddmlib/src/main/kotlin/com/malinskiy/marathon/android/ddmlib/DdmlibDeviceProvider.kt b/vendor/vendor-android/ddmlib/src/main/kotlin/com/malinskiy/marathon/android/ddmlib/DdmlibDeviceProvider.kt index 82fa20ba9..152f94b8e 100644 --- a/vendor/vendor-android/ddmlib/src/main/kotlin/com/malinskiy/marathon/android/ddmlib/DdmlibDeviceProvider.kt +++ b/vendor/vendor-android/ddmlib/src/main/kotlin/com/malinskiy/marathon/android/ddmlib/DdmlibDeviceProvider.kt @@ -66,7 +66,13 @@ class DdmlibDeviceProvider( AndroidDebugBridge.addDeviceChangeListener(this) logger.debug("Creating ADB bridge") + + val oldAdb = AndroidDebugBridge.getBridge() val adb = AndroidDebugBridge.createBridge(vendorConfiguration.adbPath.absolutePath, false, ADB_INIT_TIMEOUT.toMillis(), TimeUnit.MILLISECONDS) + val newAdbCreated = adb !== oldAdb + if (!newAdbCreated) { + logger.debug("Reusing existing ADB bridge") + } var getDevicesCountdown = config.noDevicesTimeoutMillis val sleepTime = DEFAULT_DDM_LIB_SLEEP_TIME @@ -83,7 +89,7 @@ class DdmlibDeviceProvider( logger.debug("Finished waiting for a device") - if (adb.devices.isNotEmpty()) { + if (!newAdbCreated && adb.devices.isNotEmpty()) { logger.debug("Initial connected devices: {}", adb.devices.joinToString(", ")) adb.devices.forEach { deviceConnected(it)