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)
|
static CreateAvdInfo createAvdCommand(const CreateAvdInfo &info)
|
||||||
{
|
{
|
||||||
CreateAvdInfo result = 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});
|
CommandLine avdManager(androidConfig().avdManagerToolPath(), {"create", "avd", "-n", result.name});
|
||||||
avdManager.addArgs({"-k", result.systemImage->sdkStylePath()});
|
avdManager.addArgs({"-k", result.systemImage->sdkStylePath()});
|
||||||
|
|
||||||
|
@@ -8,6 +8,8 @@
|
|||||||
#include "androiddevice.h"
|
#include "androiddevice.h"
|
||||||
#include "androidsdkmanager.h"
|
#include "androidsdkmanager.h"
|
||||||
|
|
||||||
|
#include <coreplugin/icore.h>
|
||||||
|
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
|
|
||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
@@ -24,6 +26,7 @@
|
|||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QLoggingCategory>
|
#include <QLoggingCategory>
|
||||||
|
#include <QMessageBox>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QSpinBox>
|
#include <QSpinBox>
|
||||||
#include <QToolTip>
|
#include <QToolTip>
|
||||||
@@ -126,6 +129,12 @@ int AvdDialog::exec()
|
|||||||
result.sdcardSize = sdcardSize();
|
result.sdcardSize = sdcardSize();
|
||||||
result.overwrite = m_overwriteCheckBox->isChecked();
|
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;
|
const AndroidAvdManager avdManager;
|
||||||
QFutureWatcher<CreateAvdInfo> createAvdFutureWatcher;
|
QFutureWatcher<CreateAvdInfo> createAvdFutureWatcher;
|
||||||
|
|
||||||
@@ -139,7 +148,13 @@ int AvdDialog::exec()
|
|||||||
|
|
||||||
const QFuture<CreateAvdInfo> future = createAvdFutureWatcher.future();
|
const QFuture<CreateAvdInfo> future = createAvdFutureWatcher.future();
|
||||||
if (future.isResultReadyAt(0)) {
|
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();
|
AndroidDeviceManager::instance()->updateAvdsList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user