forked from qt-creator/qt-creator
Android: remove native sdk and avd manager buttons
The native SDK and AVD manager buttons are no longer useful, since the original, visual Java-basd tool for managing SDK and AVDs were removed from Google's offering. The replacement is a set of command line tools and a visual tool within Android Studio, which can not directly be launched from Qt Creator. Qt Creator has it's UI on top of the command line tools. Change-Id: If660d7f566c173f46d9b2a97c9204746d33270e6 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -230,29 +230,13 @@ AndroidAvdManager::AndroidAvdManager(const AndroidConfig &config):
|
||||
|
||||
AndroidAvdManager::~AndroidAvdManager() = default;
|
||||
|
||||
void AndroidAvdManager::launchAvdManagerUiTool() const
|
||||
{
|
||||
if (m_config.useNativeUiTools()) {
|
||||
m_androidTool->launchAvdManager();
|
||||
} else {
|
||||
qCDebug(avdManagerLog) << "AVD Ui tool launch failed. UI tool not available"
|
||||
<< m_config.sdkToolsVersion();
|
||||
}
|
||||
}
|
||||
|
||||
QFuture<CreateAvdInfo> AndroidAvdManager::createAvd(CreateAvdInfo info) const
|
||||
{
|
||||
if (m_config.useNativeUiTools())
|
||||
return m_androidTool->createAvd(info);
|
||||
|
||||
return Utils::runAsync(&createAvdCommand, m_config, info);
|
||||
}
|
||||
|
||||
bool AndroidAvdManager::removeAvd(const QString &name) const
|
||||
{
|
||||
if (m_config.useNativeUiTools())
|
||||
return m_androidTool->removeAvd(name);
|
||||
|
||||
const CommandLine command(m_config.avdManagerToolPath(), {"delete", "avd", "-n", name});
|
||||
qCDebug(avdManagerLog) << "Running command (removeAvd):" << command.toUserOutput();
|
||||
Utils::SynchronousProcess proc;
|
||||
@@ -263,9 +247,6 @@ bool AndroidAvdManager::removeAvd(const QString &name) const
|
||||
|
||||
QFuture<AndroidDeviceInfoList> AndroidAvdManager::avdList() const
|
||||
{
|
||||
if (m_config.useNativeUiTools())
|
||||
return m_androidTool->androidVirtualDevicesFuture();
|
||||
|
||||
return Utils::runAsync(&AvdManagerOutputParser::listVirtualDevices, m_parser.get(), m_config);
|
||||
}
|
||||
|
||||
|
@@ -43,7 +43,6 @@ public:
|
||||
AndroidAvdManager(const AndroidConfig& config = AndroidConfigurations::currentConfig());
|
||||
~AndroidAvdManager();
|
||||
|
||||
void launchAvdManagerUiTool() const;
|
||||
QFuture<CreateAvdInfo> createAvd(CreateAvdInfo info) const;
|
||||
bool removeAvd(const QString &name) const;
|
||||
QFuture<AndroidDeviceInfoList> avdList() const;
|
||||
|
@@ -841,12 +841,6 @@ QStringList AndroidConfig::getAbis(const FilePath &adbToolPath, const QString &d
|
||||
return result;
|
||||
}
|
||||
|
||||
bool AndroidConfig::useNativeUiTools() const
|
||||
{
|
||||
const QVersionNumber version = sdkToolsVersion();
|
||||
return !version.isNull() && version <= QVersionNumber(25, 3, 0) && !isCmdlineSdkToolsInstalled();
|
||||
}
|
||||
|
||||
bool AndroidConfig::isValidNdk(const QString &ndkLocation) const
|
||||
{
|
||||
auto ndkPath = Utils::FilePath::fromUserInput(ndkLocation);
|
||||
|
@@ -184,7 +184,6 @@ public:
|
||||
OpenGl getOpenGLEnabled(const QString &emulator) const;
|
||||
bool isConnected(const QString &serialNumber) const;
|
||||
|
||||
bool useNativeUiTools() const;
|
||||
bool isCmdlineSdkToolsInstalled() const;
|
||||
|
||||
bool sdkFullyConfigured() const { return m_sdkFullyConfigured; }
|
||||
|
@@ -76,7 +76,6 @@ AndroidSdkManagerWidget::AndroidSdkManagerWidget(AndroidConfig &config,
|
||||
m_ui->setupUi(this);
|
||||
m_ui->sdkLicensebuttonBox->hide();
|
||||
m_ui->sdkLicenseLabel->hide();
|
||||
m_ui->warningLabel->setType(Utils::InfoLabel::Warning);
|
||||
m_ui->viewStack->setCurrentWidget(m_ui->packagesStack);
|
||||
|
||||
m_formatter = new Utils::OutputFormatter;
|
||||
@@ -133,8 +132,6 @@ AndroidSdkManagerWidget::AndroidSdkManagerWidget(AndroidConfig &config,
|
||||
this, &AndroidSdkManagerWidget::onApplyButton);
|
||||
connect(m_ui->cancelButton, &QPushButton::clicked, this,
|
||||
&AndroidSdkManagerWidget::onCancel);
|
||||
connect(m_ui->nativeSdkManagerButton, &QPushButton::clicked,
|
||||
this, &AndroidSdkManagerWidget::onNativeSdkManager);
|
||||
connect(m_ui->optionsButton, &QPushButton::clicked,
|
||||
this, &AndroidSdkManagerWidget::onSdkManagerOptions);
|
||||
connect(m_ui->sdkLicensebuttonBox, &QDialogButtonBox::accepted, [this]() {
|
||||
@@ -160,7 +157,6 @@ void AndroidSdkManagerWidget::setSdkManagerControlsEnabled(bool enable)
|
||||
{
|
||||
m_ui->packagesTypeGroup->setEnabled(enable);
|
||||
m_ui->expandCheck->setVisible(enable);
|
||||
m_ui->warningLabel->setVisible(!enable);
|
||||
m_ui->packagesView->setEnabled(enable);
|
||||
m_ui->updateInstalledButton->setEnabled(enable);
|
||||
m_ui->optionsButton->setEnabled(enable);
|
||||
@@ -253,19 +249,6 @@ void AndroidSdkManagerWidget::onCancel()
|
||||
cancelPendingOperations();
|
||||
}
|
||||
|
||||
void AndroidSdkManagerWidget::onNativeSdkManager()
|
||||
{
|
||||
if (m_androidConfig.useNativeUiTools()) {
|
||||
QProcess::startDetached(m_androidConfig.androidToolPath().toString(), {});
|
||||
} else {
|
||||
QMessageBox::warning(this, tr("Native SDK Manager Not Available"),
|
||||
tr("SDK manager UI tool is not available in the installed SDK tools "
|
||||
"(version %1). Use the command line tool \"sdkmanager\" for "
|
||||
"advanced SDK management.")
|
||||
.arg(m_androidConfig.sdkToolsVersion().toString()));
|
||||
}
|
||||
}
|
||||
|
||||
void AndroidSdkManagerWidget::onOperationResult(int index)
|
||||
{
|
||||
QTC_ASSERT(m_currentOperation, return);
|
||||
|
@@ -92,7 +92,6 @@ private:
|
||||
void onApplyButton();
|
||||
void onUpdatePackages();
|
||||
void onCancel();
|
||||
void onNativeSdkManager();
|
||||
void onOperationResult(int index);
|
||||
void onLicenseCheckResult(const AndroidSdkManager::OperationOutput &output);
|
||||
void onSdkManagerOptions();
|
||||
|
@@ -69,19 +69,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Utils::InfoLabel" name="warningLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>SDK manager is not available with the current version of SDK tools. Use native SDK manager.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
@@ -175,29 +162,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>5</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="nativeSdkManagerButton">
|
||||
<property name="text">
|
||||
<string>Native SDK Manager...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
@@ -285,13 +249,6 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>Utils::InfoLabel</class>
|
||||
<extends>QLabel</extends>
|
||||
<header location="global">utils/infolabel.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>packagesView</tabstop>
|
||||
<tabstop>showAllRadio</tabstop>
|
||||
|
@@ -118,7 +118,6 @@ private:
|
||||
void startAVD();
|
||||
void avdActivated(const QModelIndex &);
|
||||
void dataPartitionSizeEditingFinished();
|
||||
void manageAVD();
|
||||
void createKitToggled();
|
||||
|
||||
void updateUI();
|
||||
@@ -506,8 +505,6 @@ AndroidSettingsWidget::AndroidSettingsWidget()
|
||||
this, &AndroidSettingsWidget::avdActivated);
|
||||
connect(m_ui.DataPartitionSizeSpinBox, &QAbstractSpinBox::editingFinished,
|
||||
this, &AndroidSettingsWidget::dataPartitionSizeEditingFinished);
|
||||
connect(m_ui.nativeAvdManagerButton, &QAbstractButton::clicked,
|
||||
this, &AndroidSettingsWidget::manageAVD);
|
||||
connect(m_ui.CreateKitCheckBox, &QAbstractButton::toggled,
|
||||
this, &AndroidSettingsWidget::createKitToggled);
|
||||
connect(m_ui.downloadNDKToolButton, &QAbstractButton::clicked,
|
||||
@@ -735,7 +732,7 @@ void AndroidSettingsWidget::validateSdk()
|
||||
PlatformSdkInstalledRow,
|
||||
AllEssentialsInstalledRow});
|
||||
m_androidConfig.setSdkFullyConfigured(sdkToolsOk && componentsOk);
|
||||
if (sdkToolsOk && !componentsOk && !m_androidConfig.useNativeUiTools()) {
|
||||
if (sdkToolsOk && !componentsOk) {
|
||||
// Ask user to install essential SDK components. Works only for sdk tools version >= 26.0.0
|
||||
QString message = tr("Android SDK installation is missing necessary packages. Do you "
|
||||
"want to install the missing packages?");
|
||||
@@ -920,7 +917,6 @@ void AndroidSettingsWidget::updateUI()
|
||||
|
||||
m_ui.avdManagerTab->setEnabled(javaSetupOk && androidSetupOk);
|
||||
m_ui.sdkManagerTab->setEnabled(sdkToolsOk);
|
||||
m_sdkManagerWidget->setSdkManagerControlsEnabled(!m_androidConfig.useNativeUiTools());
|
||||
|
||||
const QListWidgetItem *currentItem = m_ui.ndkListWidget->currentItem();
|
||||
const FilePath currentNdk = FilePath::fromString(currentItem ? currentItem->text() : "");
|
||||
@@ -934,19 +930,6 @@ void AndroidSettingsWidget::updateUI()
|
||||
m_openSslSummary->setSetupOk(openSslOk);
|
||||
}
|
||||
|
||||
void AndroidSettingsWidget::manageAVD()
|
||||
{
|
||||
if (m_androidConfig.useNativeUiTools()) {
|
||||
m_avdManager.launchAvdManagerUiTool();
|
||||
} else {
|
||||
QMessageBox::warning(this, tr("AVD Manager Not Available"),
|
||||
tr("AVD manager UI tool is not available in the installed SDK tools "
|
||||
"(version %1). Use the command line tool \"avdmanager\" for "
|
||||
"advanced AVD management.")
|
||||
.arg(m_androidConfig.sdkToolsVersion().toString()));
|
||||
}
|
||||
}
|
||||
|
||||
void AndroidSettingsWidget::downloadSdk()
|
||||
{
|
||||
if (sdkToolsOk()) {
|
||||
|
@@ -470,13 +470,6 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="nativeAvdManagerButton">
|
||||
<property name="text">
|
||||
<string>Native AVD Manager...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
|
@@ -112,11 +112,6 @@ SdkPlatformList AndroidToolManager::availableSdkPlatforms(bool *ok) const
|
||||
return list;
|
||||
}
|
||||
|
||||
void AndroidToolManager::launchAvdManager() const
|
||||
{
|
||||
QProcess::startDetached(m_config.androidToolPath().toString(), QStringList("avd"));
|
||||
}
|
||||
|
||||
QFuture<CreateAvdInfo> AndroidToolManager::createAvd(CreateAvdInfo info) const
|
||||
{
|
||||
return Utils::runAsync(&AndroidToolManager::createAvdImpl, info,
|
||||
|
@@ -50,7 +50,6 @@ public:
|
||||
~AndroidToolManager();
|
||||
|
||||
SdkPlatformList availableSdkPlatforms(bool *ok = nullptr) const;
|
||||
void launchAvdManager() const;
|
||||
|
||||
QFuture<CreateAvdInfo> createAvd(CreateAvdInfo info) const;
|
||||
bool removeAvd(const QString &name) const;
|
||||
|
Reference in New Issue
Block a user