Wait until the BT scanning process is done on Android platforms

Block the Save button on Android platforms until the scanning
for remote Bluetooth devices is finished.

The reason we do that is because there is a bug on the
Android platform or on the QtBluetooth library which stops the
downloading process and blocks the devices on the Download mode.

Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Claudiu Olteanu 2015-07-13 23:44:09 +03:00 committed by Dirk Hohndel
parent c6c706c28a
commit 94d3aa04dc

View file

@ -108,6 +108,21 @@ void BtDeviceSelectionDialog::remoteDeviceScanFinished()
{
ui->dialogStatus->setText("Scanning finished.");
ui->scan->setEnabled(true);
#if defined(Q_OS_ANDROID)
// Check if there is a selected device and activate the Save button if it is paired
QListWidgetItem *currentItem = ui->discoveredDevicesList->currentItem();
if (currentItem != NULL) {
QBluetoothDeviceInfo remoteDeviceInfo = currentItem->data(Qt::UserRole).value<QBluetoothDeviceInfo>();
QBluetoothLocalDevice::Pairing pairingStatus = localDevice->pairingStatus(remoteDeviceInfo.address());
if (pairingStatus != QBluetoothLocalDevice::Unpaired) {
ui->save->setEnabled(true);
ui->dialogStatus->setText("Scanning finished. You can press the Save button and start the download.");
}
}
#endif
}
void BtDeviceSelectionDialog::hostModeStateChanged(QBluetoothLocalDevice::HostMode mode)
@ -156,6 +171,13 @@ void BtDeviceSelectionDialog::itemActivated(QListWidgetItem *item)
.arg(remoteDeviceInfo.address().toString()));
ui->save->setEnabled(false);
} else {
#if defined(Q_OS_ANDROID)
if (remoteDeviceDiscoveryAgent->isActive()) {
ui->dialogStatus->setText(QString("The device %1 can be used for connection. Wait until the device scanning is done and press the Save button.")
.arg(remoteDeviceInfo.address().toString()));
return;
}
#endif
ui->dialogStatus->setText(QString("The device %1 can be used for connection. You can press the Save button.")
.arg(remoteDeviceInfo.address().toString()));
ui->save->setEnabled(true);