File indexing completed on 2024-04-28 03:59:49

0001 /*
0002     SPDX-FileCopyrightText: 2015 Jan Grulich <jgrulich@redhat.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "modem3gppussd.h"
0008 
0009 #include <QDBusConnection>
0010 #include <QDBusMessage>
0011 
0012 Modem3gppUssd::Modem3gppUssd(QObject *parent)
0013     : QDBusAbstractAdaptor(parent)
0014     , m_enabledNotifications(false)
0015     , m_state(0)
0016 {
0017 }
0018 
0019 Modem3gppUssd::~Modem3gppUssd()
0020 {
0021 }
0022 
0023 QString Modem3gppUssd::networkNotification() const
0024 {
0025     return m_networkNotification;
0026 }
0027 
0028 QString Modem3gppUssd::networkRequest() const
0029 {
0030     return m_networkRequest;
0031 }
0032 
0033 uint Modem3gppUssd::state() const
0034 {
0035     return m_state;
0036 }
0037 
0038 void Modem3gppUssd::Cancel()
0039 {
0040 }
0041 
0042 QString Modem3gppUssd::Initiate(const QString &command)
0043 {
0044     Q_UNUSED(command);
0045     return QString();
0046 }
0047 
0048 QString Modem3gppUssd::Respond(const QString &response)
0049 {
0050     Q_UNUSED(response);
0051     return QString();
0052 }
0053 
0054 void Modem3gppUssd::setModemPath(const QString &path)
0055 {
0056     m_modemPath = path;
0057 }
0058 
0059 void Modem3gppUssd::setEnableNotifications(bool enable)
0060 {
0061     m_enabledNotifications = enable;
0062 }
0063 
0064 void Modem3gppUssd::setNetworkNotification(const QString &networkNotification)
0065 {
0066     m_networkNotification = networkNotification;
0067 
0068     if (m_enabledNotifications) {
0069         QVariantMap map;
0070         map.insert(QLatin1String("NetworkNotification"), m_networkNotification);
0071         QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0072         message << QLatin1String("org.kde.fakemodem.Modem.Modem3gpp.Ussd") << map << QStringList();
0073         QDBusConnection::sessionBus().send(message);
0074     }
0075 }
0076 
0077 void Modem3gppUssd::setNetworkRequest(const QString &networkRequest)
0078 {
0079     m_networkRequest = networkRequest;
0080 
0081     if (m_enabledNotifications) {
0082         QVariantMap map;
0083         map.insert(QLatin1String("NetworkRequest"), m_networkRequest);
0084         QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0085         message << QLatin1String("org.kde.fakemodem.Modem.Modem3gpp.Ussd") << map << QStringList();
0086         QDBusConnection::sessionBus().send(message);
0087     }
0088 }
0089 
0090 void Modem3gppUssd::setState(uint state)
0091 {
0092     m_state = state;
0093 
0094     if (m_enabledNotifications) {
0095         QVariantMap map;
0096         map.insert(QLatin1String("State"), m_state);
0097         QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0098         message << QLatin1String("org.kde.fakemodem.Modem.Modem3gpp.Ussd") << map << QStringList();
0099         QDBusConnection::sessionBus().send(message);
0100     }
0101 }
0102 
0103 QVariantMap Modem3gppUssd::toMap() const
0104 {
0105     QVariantMap map;
0106     map.insert(QLatin1String(MM_MODEM_MODEM3GPP_USSD_PROPERTY_STATE), m_state);
0107     map.insert(QLatin1String(MM_MODEM_MODEM3GPP_USSD_PROPERTY_NETWORKNOTIFICATION), m_networkNotification);
0108     map.insert(QLatin1String(MM_MODEM_MODEM3GPP_USSD_PROPERTY_NETWORKREQUEST), m_networkRequest);
0109     return map;
0110 }
0111 
0112 #include "moc_modem3gppussd.cpp"