diff options
author | Andrew Dolby <andrewdolby@gmail.com> | 2018-11-18 22:54:04 -0500 |
---|---|---|
committer | Andrew Dolby <andrewdolby@gmail.com> | 2018-11-21 14:49:08 +0000 |
commit | 60863d840e5ed256bafddc2c98067dd28166df07 (patch) | |
tree | be3cedae956b636937667645ec053fd6eb3ce24b | |
parent | 801def0ca1adb14584a9540069a3d87703d163a7 (diff) |
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 <alexander.blasche@qt.io>
-rw-r--r-- | src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp | 30 |
1 files changed, 19 insertions, 11 deletions
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; } } |