forked from qt-creator/qt-creator
Android: Reduce time to open settings widget
Two major areas of improvement: - Make connections last, so that the initial setup does not trigger any unnecessary checks. - Make fetching the list of android virtual devices a background operation. Together they reduce the time needed to open the settings for me by roughly 10 times. Task-number: QTCREATORBUG-13735 Change-Id: I0839853dcdbdfe20a183a27888e55d3c56a9b815 Reviewed-by: BogDan Vatra <bogdan@kde.org>
This commit is contained in:
@@ -600,12 +600,22 @@ bool AndroidConfig::removeAVD(const QString &name) const
|
||||
return !proc.exitCode();
|
||||
}
|
||||
|
||||
QFuture<QVector<AndroidDeviceInfo>> AndroidConfig::androidVirtualDevicesFuture()
|
||||
{
|
||||
return QtConcurrent::run(&AndroidConfig::androidVirtualDevicesImpl, androidToolPath(), androidToolEnvironment());
|
||||
}
|
||||
|
||||
QVector<AndroidDeviceInfo> AndroidConfig::androidVirtualDevices() const
|
||||
{
|
||||
return androidVirtualDevicesImpl(androidToolPath(), androidToolEnvironment());
|
||||
}
|
||||
|
||||
QVector<AndroidDeviceInfo> AndroidConfig::androidVirtualDevicesImpl(const Utils::FileName &androidTool, const Utils::Environment &environment)
|
||||
{
|
||||
QVector<AndroidDeviceInfo> devices;
|
||||
QProcess proc;
|
||||
proc.setProcessEnvironment(androidToolEnvironment().toProcessEnvironment());
|
||||
proc.start(androidToolPath().toString(),
|
||||
proc.setProcessEnvironment(environment.toProcessEnvironment());
|
||||
proc.start(androidTool.toString(),
|
||||
QStringList() << QLatin1String("list") << QLatin1String("avd")); // list available AVDs
|
||||
if (!proc.waitForFinished(5000)) {
|
||||
proc.terminate();
|
||||
|
Reference in New Issue
Block a user