/** * Copyright (C) 2013 Canonical, Ltd. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License version 3, as published by * the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY, * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . * * Authors: Tiago Salem Herrmann */ #ifndef OFONOTEXTCHANNEL_H #define OFONOTEXTCHANNEL_H #include #include #include #include #include #include "connection.h" class oFonoConnection; class oFonoTextChannel : public QObject { Q_OBJECT public: oFonoTextChannel(oFonoConnection *conn, QStringList phoneNumbers, bool flash = false, QObject *parent = 0); QString sendMessage(Tp::MessagePartList message, uint flags, Tp::DBusError* error); void messageReceived(const QString & message, uint handle, const QVariantMap &info); Tp::BaseChannelPtr baseChannel(); void messageAcknowledged(const QString &id); void mmsReceived(const QString &id, uint handle, const QVariantMap &properties); void deliveryReportReceived(const QString& messageId, uint handle, bool success); void sendDeliveryReport(const QString &messageId, uint handle, Tp::DeliveryStatus status); void addMembers(QStringList phoneNumbers); Tp::UIntList members(); void onAddMembers(const Tp::UIntList& handles, const QString& message, Tp::DBusError* error); void onRemoveMembers(const Tp::UIntList& handles, const QString& message, Tp::DBusError* error); private Q_SLOTS: void onMMSPropertyChanged(QString property, QVariant value); void onOfonoMessageStateChanged(QString status); void onProcessPendingDeliveryReport(); Q_SIGNALS: void messageRead(const QString &id); private: ~oFonoTextChannel(); Tp::BaseChannelPtr mBaseChannel; QStringList mPhoneNumbers; oFonoConnection *mConnection; Tp::BaseChannelMessagesInterfacePtr mMessagesIface; Tp::BaseChannelGroupInterfacePtr mGroupIface; Tp::BaseChannelSMSInterfacePtr mSMSIface; Tp::BaseChannelTextTypePtr mTextChannel; uint mMessageCounter; QMap mPendingDeliveryReportTemporarilyFailed; QMap mPendingDeliveryReportPermanentlyFailed; QMap mPendingDeliveryReportAccepted; QMap mPendingDeliveryReportDelivered; QMap mPendingDeliveryReportUnknown; Tp::UIntList mMembers; QMap mFilesToRemove; bool mFlash; }; #endif // OFONOTEXTCHANNEL_H