aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2024-05-07 16:08:21 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2024-05-08 11:18:50 +0000
commit3ead49ed33132d52d7aff6bb156a9cdf6a3f131c (patch)
tree75105af343b5aaa384070369762adbec36d6f6e5
parent6164937b42eeb060bde5747fae70f8556e38e07f (diff)
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>
-rw-r--r--src/plugins/android/androidavdmanager.cpp8
-rw-r--r--src/plugins/android/avddialog.cpp17
2 files changed, 16 insertions, 9 deletions
diff --git a/src/plugins/android/androidavdmanager.cpp b/src/plugins/android/androidavdmanager.cpp
index e537911fc6..ffa8b2ce7a 100644
--- a/src/plugins/android/androidavdmanager.cpp
+++ b/src/plugins/android/androidavdmanager.cpp
@@ -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()});
diff --git a/src/plugins/android/avddialog.cpp b/src/plugins/android/avddialog.cpp
index 81a5442716..a33e56bc6d 100644
--- a/src/plugins/android/avddialog.cpp
+++ b/src/plugins/android/avddialog.cpp
@@ -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();
}
}