Don't wait too much to connect.

Some AVDs down't allow to connect to their console,
there is no point to wait 30s (which is the default connection timeout).

Change-Id: I3cb82b99f958787215f44b471abfc203d7633089
Reviewed-by: Vikas Pachdha <vikas.pachdha@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
BogDan Vatra
2016-05-05 17:34:22 +03:00
committed by Eike Ziller
parent d0369fe4d2
commit d342623bb7

View File

@@ -588,8 +588,11 @@ QVector<AndroidDeviceInfo> AndroidConfig::connectedDevices(const QString &adbToo
else else
dev.state = AndroidDeviceInfo::OkState; dev.state = AndroidDeviceInfo::OkState;
if (dev.type == AndroidDeviceInfo::Emulator) if (dev.type == AndroidDeviceInfo::Emulator) {
dev.avdname = getAvdName(dev.serialNumber); dev.avdname = getAvdName(dev.serialNumber);
if (dev.avdname.isEmpty())
dev.avdname = serialNo;
}
devices.push_back(dev); devices.push_back(dev);
} }
@@ -921,9 +924,11 @@ QString AndroidConfig::getAvdName(const QString &serialnumber)
QTcpSocket tcpSocket; QTcpSocket tcpSocket;
tcpSocket.connectToHost(QHostAddress(QHostAddress::LocalHost), port); tcpSocket.connectToHost(QHostAddress(QHostAddress::LocalHost), port);
tcpSocket.waitForConnected(); if (!tcpSocket.waitForConnected(100)) // Don't wait more than 100ms for a local connection
return QString{};
tcpSocket.write(avdName + "exit\n"); tcpSocket.write(avdName + "exit\n");
tcpSocket.waitForDisconnected(); tcpSocket.waitForDisconnected(500);
QByteArray name; QByteArray name;
const QByteArrayList response = tcpSocket.readAll().split('\n'); const QByteArrayList response = tcpSocket.readAll().split('\n');