Damien Caliste wrote: > Can you point out where did you push your modifications to buteo stack ? > I would like to give a look and test. > > I guess that > https://git.sailfishos.org/deloptes/poc-bluez5-buteo-syncml-plugins is a > fork of buteo-sync-plugins with your changes. What about buteo-syncfw ? > > What client are you using on desktop side to test the plugin in phone ? >
Hi, yes indeed - this is the link - I was just doing PoC and Tone asked to share. The buteo-syncfw is not uploaded anywhere. I guess I will push MR to the original repo. I can only offer the attached patch for now. regards
diff --git a/libbuteosyncfw/common/TransportTracker.cpp b/libbuteosyncfw/common/TransportTracker.cpp index 35097ec..3cff6d8 100644 --- a/libbuteosyncfw/common/TransportTracker.cpp +++ b/libbuteosyncfw/common/TransportTracker.cpp @@ -32,6 +32,8 @@ #include <QDBusMessage> #include <QDBusArgument> +#include <adapter.h> + using namespace Buteo; TransportTracker::TransportTracker(QObject *aParent) : @@ -65,16 +67,24 @@ TransportTracker::TransportTracker(QObject *aParent) : #endif // BT - // Set the bluetooth state - iTransportStates[Sync::CONNECTIVITY_BT] = btConnectivityStatus(); - if (!iSystemBus.connect("org.bluez", - "", - "org.bluez.Adapter", - "PropertyChanged", - this, - SLOT(onBtStateChanged(QString, QDBusVariant)))) + // Initialize BluezQt + btManager = new BluezQt::Manager(this); + if (btManager != 0) { + BluezQt::InitManagerJob *initJob = btManager->init(); + initJob->start(); + connect(initJob, &BluezQt::InitManagerJob::result, + this, &TransportTracker::initBluez5ManagerJobResult/*, + Qt::QueuedConnection*/); + LOG_DEBUG("BT manager init started"); + // wait to complete + while (!btManager->isOperational()) + { + QCoreApplication::processEvents(QEventLoop::AllEvents, 100); + } + } + else { - LOG_WARNING("Unable to connect to system bus for org.bluez.Adapter"); + LOG_CRITICAL("BT manager init failed"); } // Internet @@ -97,6 +107,7 @@ TransportTracker::TransportTracker(QObject *aParent) : TransportTracker::~TransportTracker() { FUNCTION_CALL_TRACE; + } bool TransportTracker::isConnectivityAvailable(Sync::ConnectivityType aType) const @@ -116,16 +127,24 @@ void TransportTracker::onUsbStateChanged(bool aConnected) updateState(Sync::CONNECTIVITY_USB, aConnected); } -void TransportTracker::onBtStateChanged(QString aKey, QDBusVariant aValue) +void TransportTracker::onBtStateChanged(bool aValue) { FUNCTION_CALL_TRACE; - if (aKey == "Powered") + if (aValue) { - bool btPowered = aValue.variant().toBool(); - LOG_DEBUG("BT power state " << btPowered); - updateState(Sync::CONNECTIVITY_BT, btPowered); + // If BT was enabled, give the framework 2sec to complete + LOG_DEBUG("BT state changed" << aValue << "(sending update in 2sec)"); + QTime dieTime= QTime::currentTime().addSecs(2); + while (QTime::currentTime() < dieTime) + QCoreApplication::processEvents(QEventLoop::AllEvents, 100); } + else + { + // else update state immediately + LOG_DEBUG("BT state update - new state:" << aValue ); + } + updateState(Sync::CONNECTIVITY_BT, aValue); } void TransportTracker::onInternetStateChanged(bool aConnected, Sync::InternetConnectionType aType) @@ -142,7 +161,6 @@ void TransportTracker::updateState(Sync::ConnectivityType aType, { FUNCTION_CALL_TRACE; - bool oldState = false; { QMutexLocker locker(&iMutex); @@ -158,57 +176,39 @@ void TransportTracker::updateState(Sync::ConnectivityType aType, } } -bool TransportTracker::btConnectivityStatus() -{ - FUNCTION_CALL_TRACE; +void TransportTracker::initBluez5ManagerJobResult(BluezQt::InitManagerJob* job) { - bool btOn = false; - QDBusMessage methodCallMsg = QDBusMessage::createMethodCall("org.bluez", - "/", - "org.bluez.Manager", - "DefaultAdapter"); + FUNCTION_CALL_TRACE; - QDBusMessage reply = iSystemBus.call(methodCallMsg); - if (reply.type() == QDBusMessage::ErrorMessage) - { - LOG_WARNING("This device does not have a BT adapter"); - return btOn; + if (job->error()) { + LOG_CRITICAL("BT manager init error:" << job->errorText()); + return; } - QList<QVariant> adapterList = reply.arguments(); - // We will take the first adapter in the list - QString adapterPath = qdbus_cast<QDBusObjectPath>(adapterList.at(0)).path(); + // @todo do we need to act on btManager status change? +// connect(btManager, &BluezQt::Manager::operationalChanged, +// this, &TransportTracker::onBtStateChanged); + // Make sure to update msyncd when bluetoothd starts + connect(btManager, &BluezQt::Manager::bluetoothOperationalChanged, + this, &TransportTracker::onBtStateChanged); + + bool isBtOperational = btManager->isBluetoothOperational(); + if (!btManager->isOperational() || !isBtOperational) { + if (btManager->isBluetoothBlocked()) + LOG_WARNING("BT manager started (adapter is blocked)"); + else + LOG_CRITICAL("BT manager started (not operational)"); + return; + } - if (!adapterPath.isEmpty() || !adapterPath.isNull()) + BluezQt::AdapterPtr defaultAdapter = btManager->usableAdapter(); + if (!defaultAdapter) { - // Retrive the properties of the adapter and check for "Powered" key - methodCallMsg = QDBusMessage::createMethodCall("org.bluez", - adapterPath, - "org.bluez.Adapter", - "GetProperties"); - reply = iSystemBus.call(methodCallMsg); - if (reply.type() == QDBusMessage::ErrorMessage) - { - LOG_WARNING("Error in retrieving bluetooth properties"); - return btOn; - } - - QDBusArgument arg = reply.arguments().at(0).value<QDBusArgument>(); - if (arg.currentType() == QDBusArgument::MapType) - { - // Scan through the dict returned and check for "Powered" entry - QMap<QString,QVariant> dict = qdbus_cast<QMap<QString,QVariant> >(arg); - QMap<QString,QVariant>::iterator iter; - for(iter = dict.begin(); iter != dict.end(); ++iter) - { - if (iter.key() == "Powered") - { - btOn = iter.value().toBool(); - LOG_DEBUG ("Bluetooth powered on? " << btOn); - break; - } - } - } + LOG_WARNING("BT manager initialized but no usable adapter found"); + return; } - return btOn; + // Update bluetooth state + updateState(Sync::CONNECTIVITY_BT, defaultAdapter->isPowered()); + + LOG_DEBUG ("BT manager init done"); } diff --git a/libbuteosyncfw/common/TransportTracker.h b/libbuteosyncfw/common/TransportTracker.h index f43155d..cc3f2aa 100644 --- a/libbuteosyncfw/common/TransportTracker.h +++ b/libbuteosyncfw/common/TransportTracker.h @@ -31,37 +31,40 @@ #include <QDBusVariant> #include <QDBusConnection> -namespace Buteo { +#include <manager.h> +#include <initmanagerjob.h> + +namespace Buteo +{ class USBModedProxy; class NetworkManager; - /*! \brief Class for tracking transport states * * USB state is tracked with HAL, BT with Context Framework and Internet states with Buteo::NetworkManager. */ -class TransportTracker : public QObject +class TransportTracker: public QObject { - Q_OBJECT + Q_OBJECT public: - /*! \brief Constructor - * - * @param aParent Parent object - */ - TransportTracker(QObject *aParent = 0); + /*! \brief Constructor + * + * @param aParent Parent object + */ + TransportTracker(QObject *aParent = 0); - //! \brief Destructor - virtual ~TransportTracker(); + //! \brief Destructor + virtual ~TransportTracker(); - /*! \brief Checks the state of the given connectivity type - * - * @param aType Connectivity type - * @return True if available, false if not - */ - bool isConnectivityAvailable(Sync::ConnectivityType aType) const; + /*! \brief Checks the state of the given connectivity type + * + * @param aType Connectivity type + * @return True if available, false if not + */ + bool isConnectivityAvailable(Sync::ConnectivityType aType) const; signals: @@ -70,7 +73,7 @@ signals: * @param aType Connectivity type whose state has changed * @param aState New state. True if available, false if not. */ - void connectivityStateChanged(Sync::ConnectivityType aType, bool aState); + void connectivityStateChanged(Sync::ConnectivityType aType, bool aState); /*! \brief Signal emitted when a n/w state changes * @@ -89,11 +92,23 @@ signals: private slots: - void onUsbStateChanged(bool aConnected); + void onUsbStateChanged(bool aConnected); - void onBtStateChanged(QString aKey, QDBusVariant aValue); + /*! \brief Slot onBtStateChanged to update BT state + * \param bool aValue + */ + void onBtStateChanged(bool aValue); - void onInternetStateChanged(bool aConnected, Sync::InternetConnectionType aType); + /*! \brief Process the result of the onInternetStateChanged signal + * \param bool aConnected + * \param Sync::InternetConnectionType aType + */ + void onInternetStateChanged(bool aConnected, + Sync::InternetConnectionType aType); + + /*! \brief Process the result of the initBluez5ManagerJob signal + */ + void initBluez5ManagerJobResult(BluezQt::InitManagerJob*/*job*/); private: @@ -104,22 +119,22 @@ private: NetworkManager *iInternet; QDBusConnection iSystemBus; + BluezQt::Manager *btManager; + mutable QMutex iMutex; - /*! \brief updates the state of the given connectivity type to input value - * - * @param aType Connectivity type - * @param aState Connectivity State - */ - void updateState(Sync::ConnectivityType aType, bool aState); + /*! \brief updates the state of the given connectivity type to input value + * + * @param aType Connectivity type + * @param aState Connectivity State + */ + void updateState(Sync::ConnectivityType aType, bool aState); #ifdef SYNCFW_UNIT_TESTS friend class TransportTrackerTest; friend class SynchronizerTest; #endif - bool btConnectivityStatus(); - }; } diff --git a/libbuteosyncfw/libbuteosyncfw.pro b/libbuteosyncfw/libbuteosyncfw.pro index ca1422b..1814ccd 100644 --- a/libbuteosyncfw/libbuteosyncfw.pro +++ b/libbuteosyncfw/libbuteosyncfw.pro @@ -10,11 +10,17 @@ VER_PAT = 0 QT += sql xml dbus network QT -= gui +unix { + QT_CONFIG -= no-pkg-config + CONFIG += link_pkgconfig + PKGCONFIG += KF5BluezQt +} + CONFIG += dll \ create_pc \ create_prl -#DEFINES += BUTEO_ENABLE_DEBUG +DEFINES += BUTEO_ENABLE_DEBUG # Input HEADERS += common/Logger.h \ diff --git a/libbuteosyncfw/profile/BtHelper.cpp b/libbuteosyncfw/profile/BtHelper.cpp index 47269a4..5b0839e 100644 --- a/libbuteosyncfw/profile/BtHelper.cpp +++ b/libbuteosyncfw/profile/BtHelper.cpp @@ -24,142 +24,160 @@ #include <LogMacros.h> #include "BtHelper.h" +#include <initmanagerjob.h> const QString BT::BLUEZ_DEST = "org.bluez"; -const QString BT::BLUEZ_MANAGER_INTERFACE = "org.bluez.Manager"; -const QString BT::BLUEZ_ADAPTER_INTERFACE = "org.bluez.Adapter"; -const QString BT::BLUEZ_DEVICE_INTERFACE = "org.bluez.Device"; -const QString BT::GET_DEFAULT_ADAPTER = "DefaultAdapter"; -const QString BT::FIND_DEVICE = "FindDevice"; -const QString BT::DISCOVERSERVICES = "DiscoverServices"; -const QString BT::GETPROPERTIES = "GetProperties"; +const QString BT::DBUS_PROPERTIES_INTERFACE = "org.freedesktop.DBus.Properties"; +const QString BT::GETPROPERTIES = "GetAll"; BtHelper::BtHelper(const QString& deviceAddress, QObject* parent) : QObject(parent) { - m_deviceAddress = deviceAddress; + m_deviceAddress = deviceAddress; + + btManager = new BluezQt::Manager(this); + if (btManager != 0) { + BluezQt::InitManagerJob *initJob = btManager->init(); + initJob->start(); + connect(initJob, &BluezQt::InitManagerJob::result, + this, &BtHelper::initBluez5ManagerJobResult/*, + Qt::QueuedConnection*/); + LOG_DEBUG("BtHelper::BtHelper manager init started"); + while (!btManager->isOperational()) + { + QCoreApplication::processEvents(QEventLoop::AllEvents, 100); + } + } + else + { + LOG_CRITICAL("BtHelper::BtHelper manager start failed"); + } } BtHelper::~BtHelper() { - LOG_DEBUG (""); + FUNCTION_CALL_TRACE; + LOG_DEBUG ("BtHelper::~BtHelper()"); } +void BtHelper::initBluez5ManagerJobResult(BluezQt::InitManagerJob* job) { + FUNCTION_CALL_TRACE; + if (job->error()) { + LOG_CRITICAL("BtHelper manager init error: " << job->errorText()); + return; + } + + if (!btManager->isOperational() || btManager->isBluetoothBlocked()) { + if (btManager->isBluetoothBlocked()) + LOG_WARNING("BtHelper manager init failed (adapter is blocked)"); + else + LOG_CRITICAL("BtHelper manager init failed (not operational)"); + return; + } + + if(m_deviceAddress.isEmpty()) + { + LOG_CRITICAL("BtHelper no BT address provided"); + return; + } + + BluezQt::DevicePtr dev = btManager->deviceForAddress(m_deviceAddress); + if (!dev) + { + LOG_WARNING("BtHelper manager device query failed for addr: " << m_deviceAddress); + return; + } + BluezQt::AdapterPtr adapter = dev->adapter(); + if (!adapter) + { + LOG_WARNING("BtHelper manager init done but no usable adapter found"); + return; + } + LOG_DEBUG("BtHelper adapter path: " << adapter->ubi()); + LOG_DEBUG("BtHelper adapter name: " << adapter->name()); +} bool BtHelper::isServiceSupported (const QList<QString>& servicesList, const QString& serviceUUID) { - LOG_DEBUG ("isServiceSupported"); - foreach (QString service, servicesList) { - //LOG_DEBUG ("Record : " << service); - if (service.contains(serviceUUID)){ - LOG_DEBUG ("Service found " << serviceUUID); - return true; - } - } - return false; + FUNCTION_CALL_TRACE; + + foreach (QString service, servicesList) { + LOG_DEBUG ("Record : " << service); + if (service.contains(serviceUUID)){ + LOG_DEBUG ("Service found " << serviceUUID); + return true; + } + } + return false; } QString BtHelper::getDefaultAdapterPath() { - LOG_DEBUG ("getDefaultAdapterPath"); - - QDBusInterface managerInterface( BT::BLUEZ_DEST, "/", - BT::BLUEZ_MANAGER_INTERFACE, - QDBusConnection::systemBus() ); - - if( !managerInterface.isValid() ) { - LOG_DEBUG ("Manager interface is invalid"); - return QString(); - } - - QDBusReply<QDBusObjectPath> pathReply = managerInterface.call(BT::GET_DEFAULT_ADAPTER); + FUNCTION_CALL_TRACE; - if( !pathReply.isValid() ) { - LOG_DEBUG ("Not able to get the adapter path"); + BluezQt::DevicePtr dev = btManager->deviceForAddress(m_deviceAddress); + BluezQt::AdapterPtr defaultAdapter = dev->adapter(); + if ( ! defaultAdapter ) return QString(); - } - return pathReply.value().path(); + + return defaultAdapter->ubi(); } -QString BtHelper::getDevicePath(QString &defaultAdapterPath) +QString BtHelper::getDevicePath() { - if (defaultAdapterPath.isEmpty()) { - LOG_DEBUG ( "Adapter path is empty"); - return QString(); - } - - QDBusInterface adapterInterface(BT::BLUEZ_DEST, defaultAdapterPath, - BT::BLUEZ_ADAPTER_INTERFACE, QDBusConnection::systemBus() ); - if( !adapterInterface.isValid() ) { - LOG_DEBUG ( "Adapter interface is invalid"); - return QString(); - } + FUNCTION_CALL_TRACE; - QDBusReply<QDBusObjectPath> pathReply = adapterInterface.call(BT::FIND_DEVICE, m_deviceAddress ); + BluezQt::DevicePtr dev = btManager->deviceForAddress(m_deviceAddress); - if( !pathReply.isValid() ) { - LOG_DEBUG ( "Not able to find the BT device"); + if (!dev) return QString(); - } - return pathReply.value().path(); + return dev->ubi(); } bool BtHelper::getServiceRecords(QList<QString>& servicesList) { - LOG_DEBUG ( "getServiceRecords()"); - - QString defaultAdapterPath = getDefaultAdapterPath(); - LOG_DEBUG ( "Adapter path = " << defaultAdapterPath) ; - - QString devicePath = getDevicePath(defaultAdapterPath); - if (devicePath.isEmpty()) - return false; - LOG_DEBUG ( "Device path =" << devicePath); + FUNCTION_CALL_TRACE; - QDBusInterface deviceInterface(BT::BLUEZ_DEST, devicePath, - BT::BLUEZ_DEVICE_INTERFACE, - QDBusConnection::systemBus() ); - if( deviceInterface.isValid() == false ) { - LOG_DEBUG ("Device interface is not valid"); + if (!btManager->isOperational()) + { + LOG_WARNING("BtHelper::getServiceRecords: manager is not working properly"); return false; } - QDBusMessage message = deviceInterface.call(BT::DISCOVERSERVICES, QString()); - QDBusArgument reply = QDBusReply<QDBusArgument>(message).value(); - QMap<uint, QString> mapVal; - reply >> mapVal; - servicesList = mapVal.values(); - if (servicesList.size() > 0) - return true; - return false; + BluezQt::DevicePtr dev = btManager->deviceForAddress(m_deviceAddress); + servicesList = dev->uuids(); + + if (servicesList.size() > 0) + return true; + return false; } -QMap<QString, QVariant> BtHelper::getDeviceProperties() +QVariantMap BtHelper::getDeviceProperties() { - LOG_DEBUG ( "getDeviceProperties"); + FUNCTION_CALL_TRACE; - QMap<QString, QVariant> mapVal; - QString defaultAdapterPath = getDefaultAdapterPath(); - LOG_DEBUG ( "Adapter path = " << defaultAdapterPath) ; + QVariantMap mapVal; - QString devicePath = getDevicePath(defaultAdapterPath); + QString devicePath = getDevicePath(); if (devicePath.isEmpty()) return mapVal; - LOG_DEBUG ( "Device path =" << devicePath); + + LOG_DEBUG ( "Device path: " << devicePath); QDBusInterface deviceInterface(BT::BLUEZ_DEST, devicePath, - BT::BLUEZ_DEVICE_INTERFACE, + BT::DBUS_PROPERTIES_INTERFACE, QDBusConnection::systemBus() ); + if( deviceInterface.isValid() == false ) { LOG_DEBUG ("Device interface is not valid"); return mapVal; } - QDBusMessage message = deviceInterface.call(BT::GETPROPERTIES); + QDBusMessage message = deviceInterface.call(BT::GETPROPERTIES, "org.bluez.Device1"); QDBusArgument reply = QDBusReply<QDBusArgument>(message).value(); - reply >> mapVal; + reply >> mapVal; return mapVal; } diff --git a/libbuteosyncfw/profile/BtHelper.h b/libbuteosyncfw/profile/BtHelper.h index 819be11..e40e538 100644 --- a/libbuteosyncfw/profile/BtHelper.h +++ b/libbuteosyncfw/profile/BtHelper.h @@ -28,25 +28,17 @@ #include <QtDBus> #include <QMap> +#include <manager.h> +#include <adapter.h> +#include <device.h> + /*! \brief Strings used for DBus communication with bluetooth daemon are grouped using this structure. */ struct BT { /// Destination for Dbus command to bluez static const QString BLUEZ_DEST; - /// Bluez manager interface name - static const QString BLUEZ_MANAGER_INTERFACE; - /// Bluez adapter interface name - static const QString BLUEZ_ADAPTER_INTERFACE; - /// Bluez Device interface name - static const QString BLUEZ_DEVICE_INTERFACE; - /// Method name for retrieving default adapter - static const QString GET_DEFAULT_ADAPTER; - /// Method name for finding the device - static const QString FIND_DEVICE; - /// Method name for discovering services - static const QString DISCOVERSERVICES; - /// Method name for discovering services + static const QString DBUS_PROPERTIES_INTERFACE; static const QString GETPROPERTIES; }; @@ -58,6 +50,7 @@ class BtHelper : public QObject private: QString m_deviceAddress; + BluezQt::Manager *btManager; // Private methods @@ -66,12 +59,14 @@ private: QString getDefaultAdapterPath(); /*! \brief Fetches the device path - * \param defaultAdapterPath Default adapter path */ - QString getDevicePath(QString& defaultAdapterPath); - /* \brief Open the serial port and get file descriptor for the port. - * \return File descriptor if opening port was success, otherwise -1 - */ + QString getDevicePath(); + +private slots: + /*! \brief Process the result of the initManagerJob + */ + void initBluez5ManagerJobResult(BluezQt::InitManagerJob*/*job*/); + public: /*! \brief Constructor. * \param deviceAddess Bluetooth address of remote device @@ -95,7 +90,7 @@ public: /*! \brief To find remote device BT properties. */ - QMap<QString, QVariant> getDeviceProperties(); + QVariantMap getDeviceProperties(); }; #endif // BTHELPER_H diff --git a/libbuteosyncfw/profile/ProfileManager.cpp b/libbuteosyncfw/profile/ProfileManager.cpp index f4a0015..e6c91c5 100644 --- a/libbuteosyncfw/profile/ProfileManager.cpp +++ b/libbuteosyncfw/profile/ProfileManager.cpp @@ -776,11 +776,10 @@ SyncProfile *ProfileManager::createTempSyncProfile (const QString &destAddress, saveNewProfile = true; BtHelper btHelp(destAddress); - QString profileDisplayName = btHelp.getDeviceProperties().value("Name").toString(); - if (profileDisplayName.isEmpty()) { - //Fixes 171340 - profileDisplayName = QString ("qtn_sync_dest_name_device_default"); - } + // return default value "qtn_sync_dest_name_device_default" + // Fixes 171340 + QString dName = "qtn_sync_dest_name_device_default"; + QString profileDisplayName = btHelp.getDeviceProperties().value("Name", dName).toString(); LOG_INFO("Profile Name :" << profileDisplayName); SyncProfile *tProfile = syncProfile(BT_PROFILE_TEMPLATE); diff --git a/msyncd/msyncd-app.pro b/msyncd/msyncd-app.pro index a8e08ec..50d1914 100644 --- a/msyncd/msyncd-app.pro +++ b/msyncd/msyncd-app.pro @@ -18,7 +18,7 @@ INCLUDEPATH += . \ ../libbuteosyncfw/profile -PKGCONFIG += dbus-1 libsignon-qt5 accounts-qt5 Qt5SystemInfo +PKGCONFIG += dbus-1 libsignon-qt5 accounts-qt5 Qt5SystemInfo KF5BluezQt LIBS += -lbuteosyncfw5 packagesExist(qt5-boostable) { DEFINES += HAS_BOOSTER diff --git a/msyncd/msyncd-lib.pro b/msyncd/msyncd-lib.pro index 7cf681d..633e575 100644 --- a/msyncd/msyncd-lib.pro +++ b/msyncd/msyncd-lib.pro @@ -18,9 +18,10 @@ INCLUDEPATH += . \ ../libbuteosyncfw/common \ ../libbuteosyncfw/profile +DEFINES += BUTEO_ENABLE_DEBUG PKGCONFIG += dbus-1 gio-2.0 libsignon-qt5 accounts-qt5 Qt5SystemInfo -PKGCONFIG += mce-qt5 +PKGCONFIG += mce-qt5 KF5BluezQt LIBS += -lbuteosyncfw5 packagesExist(qt5-boostable) { DEFINES += HAS_BOOSTER diff --git a/rpm/buteo-syncfw-qt5.spec b/rpm/buteo-syncfw-qt5.spec index 83b4f9d..1dbdf64 100644 --- a/rpm/buteo-syncfw-qt5.spec +++ b/rpm/buteo-syncfw-qt5.spec @@ -20,12 +20,14 @@ BuildRequires: pkgconfig(libiphb) BuildRequires: pkgconfig(qt5-boostable) BuildRequires: pkgconfig(keepalive) BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(KF5BluezQt) BuildRequires: pkgconfig(mce-qt5) >= 1.1.0 BuildRequires: oneshot BuildRequires: doxygen Requires: mapplauncherd-qt5 Requires: oneshot Requires: glib2 +Requires: kf5bluezqt-bluez5 >= 5.24 Requires: libmce-qt5 >= 1.1.0 %{_oneshot_requires_post} diff --git a/unittests/tests/msyncdtests/TransportTrackerTest/TransportTrackerTest.cpp b/unittests/tests/msyncdtests/TransportTrackerTest/TransportTrackerTest.cpp index 0c37b4c..7fcb221 100644 --- a/unittests/tests/msyncdtests/TransportTrackerTest/TransportTrackerTest.cpp +++ b/unittests/tests/msyncdtests/TransportTrackerTest/TransportTrackerTest.cpp @@ -102,7 +102,7 @@ void TransportTrackerTest :: testStateChanged() // change BT state and verify bool btCurrentState = iTransportTracker->isConnectivityAvailable(Sync::CONNECTIVITY_BT); - iTransportTracker->onBtStateChanged("Powered", QDBusVariant(QVariant(!btCurrentState))); + iTransportTracker->onBtStateChanged(!btCurrentState); QCOMPARE(iTransportTracker->isConnectivityAvailable(Sync::CONNECTIVITY_BT), !btCurrentState); QCOMPARE(connectivityStateSpy.count(), 1); diff --git a/unittests/tests/tests_common.pri b/unittests/tests/tests_common.pri index 35f4d11..127cd81 100644 --- a/unittests/tests/tests_common.pri +++ b/unittests/tests/tests_common.pri @@ -16,7 +16,7 @@ QT -= gui CONFIG += link_pkgconfig link_prl -PKGCONFIG += dbus-1 Qt5SystemInfo +PKGCONFIG += dbus-1 Qt5SystemInfo KF5BluezQt LIBS += -lgcov
_______________________________________________ SailfishOS.org Devel mailing list To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org