diff --git a/src/plugins/android/androidavdmanager.cpp b/src/plugins/android/androidavdmanager.cpp index ded1c5fe160..3b5c6ccf916 100644 --- a/src/plugins/android/androidavdmanager.cpp +++ b/src/plugins/android/androidavdmanager.cpp @@ -89,14 +89,7 @@ bool startAvdAsync(const QString &avdName) QString findAvd(const QString &avdName) { - Process adbProcess; - adbProcess.setCommand({AndroidConfig::adbToolPath(), {"devices"}}); - adbProcess.runBlocking(); - if (adbProcess.result() != ProcessResult::FinishedWithSuccess) - return {}; - - // mid(1) - remove "List of devices attached" header line - const QStringList lines = adbProcess.allOutput().split('\n', Qt::SkipEmptyParts).mid(1); + const QStringList lines = AndroidConfig::devicesCommandOutput(); for (const QString &line : lines) { // skip the daemon logs if (line.startsWith("* daemon")) diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index fda6b646117..feadec6111e 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -674,17 +674,22 @@ FilePath keytoolPath() return openJDKBinPath().pathAppended(keytoolName).withExecutableSuffix(); } -bool isConnected(const QString &serialNumber) +QStringList devicesCommandOutput() { Process adbProcess; adbProcess.setCommand({adbToolPath(), {"devices"}}); adbProcess.runBlocking(); if (adbProcess.result() != ProcessResult::FinishedWithSuccess) - return false; + return {}; // mid(1) - remove "List of devices attached" header line. // Example output: "List of devices attached\nemulator-5554\tdevice\n\n". - const QStringList lines = adbProcess.allOutput().split('\n', Qt::SkipEmptyParts).mid(1); + return adbProcess.allOutput().split('\n', Qt::SkipEmptyParts).mid(1); +} + +bool isConnected(const QString &serialNumber) +{ + const QStringList lines = devicesCommandOutput(); for (const QString &line : lines) { // skip the daemon logs if (!line.startsWith("* daemon") && line.left(line.indexOf('\t')).trimmed() == serialNumber) diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h index 5e50dab0cd0..81477b408a8 100644 --- a/src/plugins/android/androidconfigurations.h +++ b/src/plugins/android/androidconfigurations.h @@ -89,6 +89,8 @@ Utils::FilePath makePathFromNdk(const Utils::FilePath &ndkLocation); Utils::FilePath keytoolPath(); +QStringList devicesCommandOutput(); + QString bestNdkPlatformMatch(int target, const QtSupport::QtVersion *qtVersion); QLatin1String displayName(const ProjectExplorer::Abi &abi); diff --git a/src/plugins/android/androiddevice.cpp b/src/plugins/android/androiddevice.cpp index eeab8924d5a..7e6e715dc86 100644 --- a/src/plugins/android/androiddevice.cpp +++ b/src/plugins/android/androiddevice.cpp @@ -151,14 +151,7 @@ static QString emulatorName(const QString &serialNumber) static QString getRunningAvdsSerialNumber(const QString &name) { - Process adbProcess; - adbProcess.setCommand({AndroidConfig::adbToolPath(), {"devices"}}); - adbProcess.runBlocking(); - if (adbProcess.result() != ProcessResult::FinishedWithSuccess) - return {}; - - // mid(1) - remove "List of devices attached" header line - const QStringList lines = adbProcess.allOutput().split('\n', Qt::SkipEmptyParts).mid(1); + const QStringList lines = AndroidConfig::devicesCommandOutput(); for (const QString &line : lines) { // skip the daemon logs if (line.startsWith("* daemon"))