/** * SPDX-FileCopyrightText: 2021 David Shlemayev * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #ifndef CONNECTIVITY_REPORT_H #define CONNECTIVITY_REPORT_H #include /** * Packet used to report the current connectivity state *

* The body should contain a key "signalStrengths" which has a dict that maps * a SubscriptionID (opaque value) to a dict with the connection info (See below) *

* For example: * { * "signalStrengths": { * "6": { * "networkType": "4G", * "signalStrength": 3 * }, * "17": { * "networkType": "HSPA", * "signalStrength": 2 * }, * ... * } * } */ #define PACKET_TYPE_CONNECTIVITY_REPORT QStringLiteral("kdeconnect.connectivity_report") class ConnectivityReportPlugin : public KdeConnectPlugin { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.kde.kdeconnect.device.connectivity_report") Q_PROPERTY(QString cellularNetworkType READ cellularNetworkType NOTIFY refreshed) Q_PROPERTY(int cellularNetworkStrength READ cellularNetworkStrength NOTIFY refreshed) public: explicit ConnectivityReportPlugin(QObject *parent, const QVariantList &args); bool receivePacket(const NetworkPacket &np) override; void connected() override; QString dbusPath() const override; QString cellularNetworkType() const; int cellularNetworkStrength() const; Q_SIGNALS: Q_SCRIPTABLE void refreshed(QString cellularNetworkType, int cellularNetworkStrength); private: QString m_cellularNetworkType; int m_cellularNetworkStrength = -1; }; #endif