diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,11 @@ set(REQUIRED_QT_VERSION 5.11.0) -find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Gui Sql DBus Widgets Qml) +find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Gui Sql Widgets Qml) + +if(NOT ANDROID) + find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED DBus) +endif() find_package(KF5CoreAddons ${KF5_DEP_VERSION} CONFIG REQUIRED) find_package(KF5WidgetsAddons ${KF5_DEP_VERSION} CONFIG REQUIRED) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -30,13 +30,16 @@ Qt5::Gui PRIVATE Qt5::Sql - Qt5::DBus KF5::I18n KF5::CoreAddons KF5::PeopleBackend KF5::Service ) +if(NOT ANDROID) + target_link_libraries(KF5People PRIVATE Qt5::DBus) +endif() + set_target_properties (KF5People PROPERTIES VERSION ${KPEOPLE_VERSION_STRING} SOVERSION ${KPEOPLE_SOVERSION} EXPORT_NAME People) target_include_directories (KF5People PUBLIC "$" INTERFACE "$" diff --git a/src/personmanager.cpp b/src/personmanager.cpp --- a/src/personmanager.cpp +++ b/src/personmanager.cpp @@ -23,9 +23,12 @@ #include "kpeople_debug.h" #include #include +#include + +#ifndef Q_OS_ANDROID #include #include -#include +#endif class Transaction { @@ -72,10 +75,12 @@ m_db.exec(QStringLiteral("CREATE INDEX IF NOT EXISTS contactIdIndex ON persons (contactId)")); m_db.exec(QStringLiteral("CREATE INDEX IF NOT EXISTS personIdIndex ON persons (personId)")); +#ifndef Q_OS_ANDROID QDBusConnection::sessionBus().connect(QString(), QStringLiteral("/KPeople"), QStringLiteral("org.kde.KPeople"), QStringLiteral("ContactAddedToPerson"), this, SIGNAL(contactAddedToPerson(QString,QString))); QDBusConnection::sessionBus().connect(QString(), QStringLiteral("/KPeople"), QStringLiteral("org.kde.KPeople"), QStringLiteral("ContactRemovedFromPerson"), this, SIGNAL(contactRemovedFromPerson(QString))); +#endif } PersonManager::~PersonManager() @@ -139,7 +144,9 @@ bool rc = true; +#ifndef Q_OS_ANDROID QList pendingMessages; +#endif // separate the passed ids to metacontacts and simple contacts for (const QString &id : ids) { @@ -191,6 +198,7 @@ rc = false; } +#ifndef Q_OS_ANDROID QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/KPeople"), QStringLiteral("org.kde.KPeople"), QStringLiteral("ContactRemovedFromPerson")); @@ -204,6 +212,7 @@ message.setArguments(QVariantList() << id << personUriString); pendingMessages << message; +#endif } } @@ -219,22 +228,26 @@ rc = false; } +#ifndef Q_OS_ANDROID //FUTURE OPTIMIZATION - this would be best as one signal, but arguments become complex QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/KPeople"), QStringLiteral("org.kde.KPeople"), QStringLiteral("ContactAddedToPerson")); message.setArguments(QVariantList() << id << personUriString); pendingMessages << message; +#endif } } //if success send all messages to other clients //otherwise roll back our database changes and return an empty string if (rc) { +#ifndef Q_OS_ANDROID for (const QDBusMessage &message : qAsConst(pendingMessages)) { QDBusConnection::sessionBus().send(message); } +#endif } else { t.cancel(); personUriString.clear(); @@ -254,6 +267,7 @@ query.bindValue(0, id.mid(strlen("kpeople://"))); query.exec(); +#ifndef Q_OS_ANDROID for (const QString &contactUri : contactUris) { //FUTURE OPTIMIZATION - this would be best as one signal, but arguments become complex QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/KPeople"), @@ -263,6 +277,7 @@ message.setArguments(QVariantList() << contactUri); QDBusConnection::sessionBus().send(message); } +#endif } else { QSqlQuery query(m_db); query.prepare(QStringLiteral("DELETE FROM persons WHERE contactId = ?"));