summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew Dolby <andrewdolby@gmail.com>2018-11-18 22:54:04 -0500
committerAndrew Dolby <andrewdolby@gmail.com>2018-11-21 14:49:08 +0000
commit60863d840e5ed256bafddc2c98067dd28166df07 (patch)
treebe3cedae956b636937667645ec053fd6eb3ce24b /src
parent801def0ca1adb14584a9540069a3d87703d163a7 (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>
Diffstat (limited to 'src')
-rw-r--r--src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp30
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;
}
}