forked from qt-creator/qt-creator
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:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user