summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2019-02-13 22:48:50 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-02-14 09:05:58 -0800
commit9d582c5512c261bbea5d6257375c291a06721950 (patch)
tree03f3b1d90cff89e75db383bc4e5a182f04341b22 /core
parentf35a0f3b09197b56a7ecdd63a6689d8b69b36ce8 (diff)
downloadsubsurface-9d582c5512c261bbea5d6257375c291a06721950.tar.gz
Mobile: only show dive computers in the Bluetooth connection list
And offer an option to show all devices in the settings. This is intentionally not stored in the preferences as this should never be needed. We don't support BT or BLE dive computers that we don't recognize. This is a last resort in case a new firmware were to change the name or some other weird issue causes us not to recognize a dive computer - and that should be fixed instead of worked around. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'core')
-rw-r--r--core/btdiscovery.cpp10
-rw-r--r--core/btdiscovery.h3
2 files changed, 12 insertions, 1 deletions
diff --git a/core/btdiscovery.cpp b/core/btdiscovery.cpp
index 51cf61b20..88d1cd588 100644
--- a/core/btdiscovery.cpp
+++ b/core/btdiscovery.cpp
@@ -91,6 +91,7 @@ bool matchesKnownDiveComputerNames(QString btName)
}
BTDiscovery::BTDiscovery(QObject*) : m_btValid(false),
+ m_showNonDiveComputers(false),
discoveryAgent(nullptr)
{
if (m_instance) {
@@ -104,6 +105,11 @@ BTDiscovery::BTDiscovery(QObject*) : m_btValid(false),
#endif
}
+void BTDiscovery::showNonDiveComputers(bool show)
+{
+ m_showNonDiveComputers = show;
+}
+
void BTDiscovery::BTDiscoveryReDiscover()
{
#if !defined(Q_OS_IOS)
@@ -232,7 +238,9 @@ void BTDiscovery::btDeviceDiscoveredMain(const btPairedDevice &device)
connectionListModel.addAddress(newDevice + " " + device.address);
return;
}
- connectionListModel.addAddress(device.address);
+ // Do we want only devices we recognize as dive computers?
+ if (m_showNonDiveComputers)
+ connectionListModel.addAddress(device.address);
qDebug() << "Not recognized as dive computer";
}
diff --git a/core/btdiscovery.h b/core/btdiscovery.h
index 060f2c705..d6c25d8b0 100644
--- a/core/btdiscovery.h
+++ b/core/btdiscovery.h
@@ -46,6 +46,8 @@ public:
void btDeviceDiscovered(const QBluetoothDeviceInfo &device);
void btDeviceDiscoveredMain(const btPairedDevice &device);
bool btAvailable() const;
+ void showNonDiveComputers(bool show);
+
#if defined(Q_OS_ANDROID)
void getBluetoothDevices();
#endif
@@ -57,6 +59,7 @@ public:
private:
static BTDiscovery *m_instance;
bool m_btValid;
+ bool m_showNonDiveComputers;
QList<struct btVendorProduct> btDCs; // recognized DCs
QList<struct btVendorProduct> btAllDevices; // all paired BT stuff