forked from qt-creator/qt-creator
Android: Make use of the error reported
Don't call createAvd() in case of the invalid systemImage(). Detect the erroneous result and handle it accordingly. Change-Id: Ieb869d12ea24f22dcf29beb362d934484929cdad Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -64,14 +64,6 @@ static bool checkForTimeout(const chrono::steady_clock::time_point &start,
|
||||
static CreateAvdInfo createAvdCommand(const CreateAvdInfo &info)
|
||||
{
|
||||
CreateAvdInfo result = info;
|
||||
|
||||
if (!result.isValid()) {
|
||||
qCDebug(avdManagerLog) << "AVD Create failed. Invalid CreateAvdInfo" << result.name
|
||||
<< result.systemImage->displayText() << result.systemImage->apiLevel();
|
||||
result.error = Tr::tr("Cannot create AVD. Invalid input.");
|
||||
return result;
|
||||
}
|
||||
|
||||
CommandLine avdManager(androidConfig().avdManagerToolPath(), {"create", "avd", "-n", result.name});
|
||||
avdManager.addArgs({"-k", result.systemImage->sdkStylePath()});
|
||||
|
||||
|
@@ -8,6 +8,8 @@
|
||||
#include "androiddevice.h"
|
||||
#include "androidsdkmanager.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
@@ -24,6 +26,7 @@
|
||||
#include <QKeyEvent>
|
||||
#include <QLineEdit>
|
||||
#include <QLoggingCategory>
|
||||
#include <QMessageBox>
|
||||
#include <QPushButton>
|
||||
#include <QSpinBox>
|
||||
#include <QToolTip>
|
||||
@@ -126,6 +129,12 @@ int AvdDialog::exec()
|
||||
result.sdcardSize = sdcardSize();
|
||||
result.overwrite = m_overwriteCheckBox->isChecked();
|
||||
|
||||
if (!result.isValid()) {
|
||||
QMessageBox::warning(Core::ICore::dialogParent(),
|
||||
Tr::tr("Create new AVD"), Tr::tr("Cannot create AVD. Invalid input."));
|
||||
return QDialog::Rejected;
|
||||
}
|
||||
|
||||
const AndroidAvdManager avdManager;
|
||||
QFutureWatcher<CreateAvdInfo> createAvdFutureWatcher;
|
||||
|
||||
@@ -139,7 +148,13 @@ int AvdDialog::exec()
|
||||
|
||||
const QFuture<CreateAvdInfo> future = createAvdFutureWatcher.future();
|
||||
if (future.isResultReadyAt(0)) {
|
||||
m_createdAvdInfo = future.result();
|
||||
const CreateAvdInfo &info = future.result();
|
||||
if (!info.error.isEmpty()) {
|
||||
QMessageBox::warning(Core::ICore::dialogParent(),
|
||||
Tr::tr("Create new AVD"), info.error);
|
||||
return QDialog::Rejected;
|
||||
}
|
||||
m_createdAvdInfo = info;
|
||||
AndroidDeviceManager::instance()->updateAvdsList();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user