From 1c633eb1e9db0403d5da0ca87cd085a1f0efbcac Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Wed, 28 Aug 2013 12:33:57 +0200 Subject: [PATCH] Android: Connected devices should list all devices E. g. waitForAvd needs all devices to correctly work. Change-Id: I1b704e85bd7449d4c45ed36be48973f39148b8c4 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/plugins/android/androidconfigurations.cpp | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 2750940ed32..673b7572c18 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -104,7 +104,15 @@ namespace { bool androidDevicesLessThan(const AndroidDeviceInfo &dev1, const AndroidDeviceInfo &dev2) { - return dev1.sdk < dev2.sdk; + if (dev1.serialNumber.contains("????") == dev2.serialNumber.contains("????")) + return !dev1.serialNumber.contains("????"); + bool dev1IsEmulator = dev1.serialNumber.startsWith(QLatin1String("emulator")); + bool dev2IsEmulator = dev2.serialNumber.startsWith(QLatin1String("emulator")); + if (dev1IsEmulator != dev2IsEmulator) + return !dev1IsEmulator; + if (dev1.sdk != dev2.sdk) + return dev1.sdk < dev2.sdk; + return dev1.serialNumber < dev2.serialNumber; } } @@ -425,19 +433,8 @@ QVector AndroidConfigurations::connectedDevices(QString *erro // workaround for '????????????' serial numbers: // can use "adb -d" when only one usb device attached - int usbDevicesNum = 0; - QStringList serialNumbers; foreach (const QByteArray &device, adbDevs) { const QString serialNo = QString::fromLatin1(device.left(device.indexOf('\t')).trimmed());; - if (!serialNo.startsWith(QLatin1String("emulator"))) - ++usbDevicesNum; - serialNumbers << serialNo; - } - - foreach (const QString &serialNo, serialNumbers) { - if (serialNo.contains(QLatin1String("????")) && usbDevicesNum > 1) - continue; - dev.serialNumber = serialNo; dev.sdk = getSDKVersion(dev.serialNumber); dev.cpuAbi = getAbis(dev.serialNumber);