420012a68435fc0c81b929cc028de219446555ce
[nnokia.git] / smshandler.cpp
1 #include <QtDebug>
2 #include <QMessageService>
3 #include "smshandler.h"
4 #include "nshooter.h"
5
6 SmsHandler::SmsHandler(QObject *parent) :
7     QObject(parent)
8 {
9   nshooter = new NShooter(this);
10
11   msgManager = new QMessageManager(this);
12   QObject::connect(msgManager, SIGNAL(messageAdded(const QMessageId&, const QMessageManager::NotificationFilterIdSet&)),
13                    this, SLOT(slot_message_received(const QMessageId&, const QMessageManager::NotificationFilterIdSet&)));
14
15   msgManager->registerNotificationFilter(
16       QMessageFilter::byType(QMessage::Sms) &
17       QMessageFilter::byStandardFolder(QMessage::InboxFolder));
18
19   /*
20   timer = new QTimer(this);
21   timer->setInterval(20000);
22   timer->setSingleShot(false);
23   QObject::connect(timer, SIGNAL(timeout()), this, SLOT(slot_timer_activation()));
24   */
25   QObject::connect(nshooter, SIGNAL(fileReady(const QString &)),
26                    this, SLOT(slot_imageReady(const QString &)));
27 }
28
29 void SmsHandler::slot_message_received(const QMessageId & id, const QMessageManager::NotificationFilterIdSet & /*matchingFilterIds*/) {
30     qDebug() << "message received";
31
32     QMessage msg = msgManager->message(id);
33
34     remoteAddr = msg.from();
35     qDebug() << "from" << remoteAddr.addressee();
36
37     QString content = msg.textContent();
38     qDebug() << "content" << content;
39
40     if (!content.compare("go", Qt::CaseInsensitive)) {
41         qDebug() << "receive mms snapshoot request";
42
43         qDebug() << "deleting original message";
44         msgManager->removeMessage(id);
45
46         qDebug() << "starting shooter";
47         nshooter->go();
48     }
49
50
51 }
52
53 void SmsHandler::slot_imageReady(const QString &filename) {
54     qDebug() << "In slot imageReady";
55
56     qDebug() << "building mms";
57     QMessage response;
58     response.setType(QMessage::Mms);
59     response.setTo(remoteAddr);
60     qDebug() << "attaching image";
61     QStringList paths;
62     paths << filename;
63     response.appendAttachments(paths);
64
65     qDebug() << "sending message";
66     QMessageService *m_service = new QMessageService(this);
67     if (!m_service->send(response)) {
68         qDebug() << "send() failed.";
69     }
70     qDebug() << "message" << response.id().toString() << "queued";
71 }
72
73 /*
74 void SmsHandler::slot_timer_activation() {
75     // cam_shoot();
76     nshooter->go();
77 }
78 */