Android: Add API to check whether to use native SDK UI tools

Task-number: QTCREATORBUG-18978
Change-Id: I1cf4749e81b3b49de14ff88a5876569886d2cdfe
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
This commit is contained in:
Vikas Pachdha
2017-07-14 19:35:48 +02:00
parent daee6f6f33
commit e70179e14f
5 changed files with 13 additions and 13 deletions

View File

@@ -54,8 +54,6 @@ const char avdInfoAbiKey[] = "abi.type";
const char avdInfoTargetKey[] = "target";
const char avdInfoErrorKey[] = "Error:";
const QVersionNumber avdManagerIntroVersion(25, 3 ,0);
const int avdCreateTimeoutMs = 30000;
/*!
@@ -219,14 +217,9 @@ AndroidAvdManager::~AndroidAvdManager()
}
bool AndroidAvdManager::avdManagerUiToolAvailable() const
{
return m_config.sdkToolsVersion() < avdManagerIntroVersion;
}
void AndroidAvdManager::launchAvdManagerUiTool() const
{
if (avdManagerUiToolAvailable()) {
if (m_config.useNativeUiTools()) {
m_androidTool->launchAvdManager();
} else {
qCDebug(avdManagerLog) << "AVD Ui tool launch failed. UI tool not available"
@@ -236,7 +229,7 @@ void AndroidAvdManager::launchAvdManagerUiTool() const
QFuture<CreateAvdInfo> AndroidAvdManager::createAvd(CreateAvdInfo info) const
{
if (m_config.sdkToolsVersion() < avdManagerIntroVersion)
if (m_config.useNativeUiTools())
return m_androidTool->createAvd(info);
return Utils::runAsync(&createAvdCommand, m_config, info);
@@ -244,7 +237,7 @@ QFuture<CreateAvdInfo> AndroidAvdManager::createAvd(CreateAvdInfo info) const
bool AndroidAvdManager::removeAvd(const QString &name) const
{
if (m_config.sdkToolsVersion() < avdManagerIntroVersion)
if (m_config.useNativeUiTools())
return m_androidTool->removeAvd(name);
Utils::SynchronousProcess proc;
@@ -257,7 +250,7 @@ bool AndroidAvdManager::removeAvd(const QString &name) const
QFuture<AndroidDeviceInfoList> AndroidAvdManager::avdList() const
{
if (m_config.sdkToolsVersion() < avdManagerIntroVersion)
if (m_config.useNativeUiTools())
return m_androidTool->androidVirtualDevicesFuture();
return Utils::runAsync(&AvdManagerOutputParser::listVirtualDevices, m_parser.get(), m_config);

View File

@@ -40,7 +40,6 @@ public:
AndroidAvdManager(const AndroidConfig& config = AndroidConfigurations::currentConfig());
~AndroidAvdManager();
bool avdManagerUiToolAvailable() const;
void launchAvdManagerUiTool() const;
QFuture<CreateAvdInfo> createAvd(CreateAvdInfo info) const;
bool removeAvd(const QString &name) const;

View File

@@ -676,6 +676,12 @@ QStringList AndroidConfig::getAbis(const QString &adbToolPath, const QString &de
return result;
}
bool AndroidConfig::useNativeUiTools() const
{
const QVersionNumber version = sdkToolsVersion();
return !version.isNull() && version <= QVersionNumber(25, 3 ,0);
}
QString AndroidConfig::bestNdkPlatformMatch(int target) const
{
target = std::max(9, target);

View File

@@ -148,6 +148,8 @@ public:
OpenGl getOpenGLEnabled(const QString &emulator) const;
bool isConnected(const QString &serialNumber) const;
bool useNativeUiTools() const;
private:
static QString getDeviceProperty(const QString &adbToolPath, const QString &device, const QString &property);

View File

@@ -535,7 +535,7 @@ void AndroidSettingsWidget::updateUI()
void AndroidSettingsWidget::manageAVD()
{
if (m_avdManager->avdManagerUiToolAvailable()) {
if (m_androidConfig.useNativeUiTools()) {
m_avdManager->launchAvdManagerUiTool();
} else {
QMessageBox::warning(this, tr("AVD Manager Not Available"),