summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2015-04-21 12:47:07 +0200
committerAndrew Branson <andrew.branson@cern.ch>2015-04-25 11:17:57 +0200
commit0ad6b1fc702b56bed96077d540366a9a96903da7 (patch)
treeb3ea1a9eff70f9978244377c32d900c8b658c914
parentd8deaf4385b20fa5e658dd0ef4cfc5631461e6fc (diff)
Check if Bluetooth is on before reconnecting
Don't try to reconnect to the watch if Bluetooth is switched off, instead start an extended reconnect timer (which has been refactored)
-rw-r--r--daemon/watchconnector.cpp16
-rw-r--r--daemon/watchconnector.h2
2 files changed, 18 insertions, 0 deletions
diff --git a/daemon/watchconnector.cpp b/daemon/watchconnector.cpp
index 0ccd089..891625b 100644
--- a/daemon/watchconnector.cpp
+++ b/daemon/watchconnector.cpp
@@ -158,6 +158,16 @@ void WatchConnector::handleWatch(const QString &name, const QString &address)
{
qCDebug(l) << "handleWatch" << name << address;
reconnectTimer.stop();
+
+ // Check if bluetooth is on
+ QBluetoothLocalDevice host;
+ bool btOff = host.hostMode() == QBluetoothLocalDevice::HostPoweredOff;
+ if (btOff) {
+ qCDebug(l) << "Bluetooth switched off.";
+ setIncreasedReconnectTimer();
+ return;
+ }
+
if (socket != nullptr) {
socket->close();
socket->deleteLater();
@@ -323,6 +333,12 @@ void WatchConnector::onDisconnected()
writeData.clear(); // 3rd time around - user is not here, do not bother with resending last message
}
+ setIncreasedReconnectTimer();
+
+}
+
+void WatchConnector::setIncreasedReconnectTimer()
+{
if (reconnectTimer.interval() < 10 * RECONNECT_TIMEOUT) {
reconnectTimer.setInterval(reconnectTimer.interval() + RECONNECT_TIMEOUT);
}
diff --git a/daemon/watchconnector.h b/daemon/watchconnector.h
index 07895b7..c7039a4 100644
--- a/daemon/watchconnector.h
+++ b/daemon/watchconnector.h
@@ -9,6 +9,7 @@
#include <QTimer>
#include <QDateTime>
#include <QBluetoothDeviceInfo>
+#include <QBluetoothLocalDevice>
#include <QBluetoothSocket>
#include <QBluetoothServiceInfo>
#include <QLoggingCategory>
@@ -215,6 +216,7 @@ signals:
public slots:
void deviceConnect(const QString &name, const QString &address);
+ void setIncreasedReconnectTimer();
void disconnect();
void reconnect();