diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2024-05-07 16:08:21 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2024-05-08 11:18:50 +0000 |
commit | 3ead49ed33132d52d7aff6bb156a9cdf6a3f131c (patch) | |
tree | 75105af343b5aaa384070369762adbec36d6f6e5 | |
parent | 6164937b42eeb060bde5747fae70f8556e38e07f (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.cpp | 8 | ||||
-rw-r--r-- | src/plugins/android/avddialog.cpp | 17 |
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(); } } |