From 60863d840e5ed256bafddc2c98067dd28166df07 Mon Sep 17 00:00:00 2001 From: Andrew Dolby Date: Sun, 18 Nov 2018 22:54:04 -0500 Subject: Android: Emit deviceDiscovered before deviceUpdated And continue to update device info when continuous scanning (lowEnergyDiscoveryTimeout <= 0). Task-number: QTBUG-46008 Change-Id: I019c540205ae39c60deac165def7d0da572ae291 Reviewed-by: Alex Blasche --- .../qbluetoothdevicediscoveryagent_android.cpp | 30 ++++++++++++++-------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp b/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp index 50f3aef9..6369cedb 100644 --- a/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp +++ b/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp @@ -332,21 +332,29 @@ void QBluetoothDeviceDiscoveryAgentPrivate::processDiscoveredDevices( updatedFields.setFlag(QBluetoothDeviceInfo::Field::ManufacturerData); } - if (!updatedFields.testFlag(QBluetoothDeviceInfo::Field::None)) { - emit q->deviceUpdated(discoveredDevices[i], updatedFields); + if (lowEnergySearchTimeout > 0) { + if (discoveredDevices[i] != info) { + if (discoveredDevices.at(i).name() == info.name()) { + qCDebug(QT_BT_ANDROID) << "Almost Duplicate " << info.address() + << info.name() << "- replacing in place"; + discoveredDevices.replace(i, info); + emit q->deviceDiscovered(info); + } + } else { + if (!updatedFields.testFlag(QBluetoothDeviceInfo::Field::None)) + emit q->deviceUpdated(discoveredDevices[i], updatedFields); + } + return; } - if (discoveredDevices[i] == info) - return; + discoveredDevices.replace(i, info); + emit q->deviceDiscovered(info); - if (discoveredDevices.at(i).name() == info.name()) { - qCDebug(QT_BT_ANDROID) << "Almost Duplicate "<< info.address() - << info.name() << "- replacing in place"; - discoveredDevices.replace(i, info); - emit q->deviceDiscovered(info); - return; - } + if (!updatedFields.testFlag(QBluetoothDeviceInfo::Field::None)) + emit q->deviceUpdated(discoveredDevices[i], updatedFields); + + return; } } -- cgit v1.2.3