diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp index 2eab707d697..e5f2be4a7d1 100644 --- a/src/plugins/android/androidsdkmanager.cpp +++ b/src/plugins/android/androidsdkmanager.cpp @@ -341,6 +341,7 @@ public: AndroidSdkPackageList filteredPackages(AndroidSdkPackage::PackageState state, AndroidSdkPackage::PackageType type) { + m_sdkManager.refreshPackages(); return Utils::filtered(m_allPackages, [state, type](const AndroidSdkPackage *p) { return p->state() & state && p->type() & type; }); @@ -477,8 +478,6 @@ void AndroidSdkManager::refreshPackages() { if (AndroidConfig::sdkManagerToolPath() != m_d->lastSdkManagerPath) reloadPackages(); - else - emit packagesReloaded(); } void AndroidSdkManager::reloadPackages() @@ -522,6 +521,7 @@ AndroidSdkManagerPrivate::~AndroidSdkManagerPrivate() const AndroidSdkPackageList &AndroidSdkManagerPrivate::allPackages() { + m_sdkManager.refreshPackages(); return m_allPackages; } diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp index f4045fb6845..ded9916f4de 100644 --- a/src/plugins/android/androidsettingswidget.cpp +++ b/src/plugins/android/androidsettingswidget.cpp @@ -478,13 +478,6 @@ AndroidSettingsWidget::AndroidSettingsWidget() this, &AndroidSettingsWidget::downloadOpenSslRepo); connect(downloadOpenJdkToolButton, &QAbstractButton::clicked, this, &AndroidSettingsWidget::openOpenJDKDownloadUrl); - - // Validate SDK again after any change in SDK packages. - connect(m_sdkManager, &AndroidSdkManager::packagesReloaded, this, [this] { - m_androidSummary->setInProgressText("Packages reloaded"); - m_sdkLocationPathChooser->triggerChanged(); - validateSdk(); - }); connect(sdkManagerToolButton, &QAbstractButton::clicked, this, [this] { executeAndroidSdkManagerDialog(m_sdkManager, this); }); @@ -519,7 +512,16 @@ void AndroidSettingsWidget::showEvent(QShowEvent *event) validateJdk(); // Reloading SDK packages (force) is still synchronous. Use zero timer // to let settings dialog open first. - QTimer::singleShot(0, m_sdkManager, &AndroidSdkManager::refreshPackages); + QTimer::singleShot(0, this, [this] { + m_sdkManager->refreshPackages(); + validateSdk(); + // Validate SDK again after any change in SDK packages. + connect(m_sdkManager, &AndroidSdkManager::packagesReloaded, this, [this] { + m_androidSummary->setInProgressText("Packages reloaded"); + m_sdkLocationPathChooser->triggerChanged(); + validateSdk(); + }); + }); validateOpenSsl(); m_isInitialReloadDone = true; } diff --git a/src/plugins/android/avddialog.cpp b/src/plugins/android/avddialog.cpp index dac9175a614..3743715f568 100644 --- a/src/plugins/android/avddialog.cpp +++ b/src/plugins/android/avddialog.cpp @@ -42,7 +42,6 @@ AvdDialog::AvdDialog(QWidget *parent) : QDialog(parent) , m_allowedNameChars(QLatin1String("[a-z|A-Z|0-9|._-]*")) { - AndroidConfigurations::sdkManager()->refreshPackages(); resize(800, 0); setWindowTitle(Tr::tr("Create new AVD"));