86 const char *local_uid,const char *remote_uid,const char *remote_ebook_uid, |
86 const char *local_uid,const char *remote_uid,const char *remote_ebook_uid, |
87 const char *group_uid,const char *service) |
87 const char *group_uid,const char *service) |
88 { |
88 { |
89 Q_UNUSED(local_uid); Q_UNUSED(remote_uid);Q_UNUSED(remote_ebook_uid); |
89 Q_UNUSED(local_uid); Q_UNUSED(remote_uid);Q_UNUSED(remote_ebook_uid); |
90 Q_UNUSED(group_uid);Q_UNUSED(service); |
90 Q_UNUSED(group_uid);Q_UNUSED(service); |
91 QString eventIds=QString::number(event_id); |
91 QString eventIds=QString("el")+QString::number(event_id); |
92 QMessageId id(eventIds); |
92 QMessageId id(eventIds); |
93 |
93 |
94 |
94 |
95 notification(event_id,service,QMessageStorePrivate::Added); |
95 notification(event_id,service,QMessageStorePrivate::Added); |
96 } |
96 } |
143 QMessageAddressList messageAddresslist; |
143 QMessageAddressList messageAddresslist; |
144 messageAddresslist.append(QMessageAddress(QMessageAddress::Phone, QString(ev.fld_local_uid))); |
144 messageAddresslist.append(QMessageAddress(QMessageAddress::Phone, QString(ev.fld_local_uid))); |
145 message.setTo(messageAddresslist); |
145 message.setTo(messageAddresslist); |
146 message.setBody(QString(ev.fld_free_text)); |
146 message.setBody(QString(ev.fld_free_text)); |
147 QMessagePrivate* privateMessage = QMessagePrivate::implementation(message); |
147 QMessagePrivate* privateMessage = QMessagePrivate::implementation(message); |
148 privateMessage->_id = QMessageId(QString::number(ev.fld_id)); |
148 privateMessage->_id = QMessageId(QString("el")+QString::number(ev.fld_id)); |
149 privateMessage->_modified = false; |
149 privateMessage->_modified = false; |
150 // qDebug() << "id:" << message.id().toString() << "From:" << message.from().addressee() << "Text:" << message.textContent(); |
150 // qDebug() << "id:" << message.id().toString() << "From:" << message.from().addressee() << "Text:" << message.textContent(); |
151 return message; |
151 return message; |
152 |
152 |
153 } |
153 } |
154 |
154 void EventLoggerEngine::addEvent(QMessage &message) |
|
155 { |
|
156 qDebug() << "EventLoggerEngine::addEvent()\n"; |
|
157 RTComElEvent *ev = rtcom_el_event_new(); |
|
158 |
|
159 if (message.type()==QMessage::Sms) { |
|
160 RTCOM_EL_EVENT_SET_FIELD(ev,service,(gchar *)"RTCOM_EL_SERVICE_SMS"); |
|
161 } |
|
162 else if (message.type()==QMessage::InstantMessage) { |
|
163 RTCOM_EL_EVENT_SET_FIELD(ev,service,(gchar *)"RTCOM_EL_SERVICE_CHAT"); |
|
164 RTCOM_EL_EVENT_SET_FIELD(ev,remote_uid,(gchar *)message.from().addressee().toStdString().c_str()); |
|
165 RTCOM_EL_EVENT_SET_FIELD(ev,group_uid,(gchar *)message.from().addressee().toStdString().c_str()); |
|
166 } |
|
167 else return; // Invalid messge type |
|
168 |
|
169 RTCOM_EL_EVENT_SET_FIELD(ev,event_type,(gchar *)"RTCOM_EL_EVENTTYPE_SMS_INBOUND"); |
|
170 RTCOM_EL_EVENT_SET_FIELD(ev,local_uid,(gchar *)"ring/tel/ring"); |
|
171 RTCOM_EL_EVENT_SET_FIELD(ev,local_name,(gchar *)"<SelfHandle>"); |
|
172 RTCOM_EL_EVENT_SET_FIELD(ev,remote_uid,(gchar *)message.from().addressee().toStdString().c_str()); |
|
173 RTCOM_EL_EVENT_SET_FIELD(ev,group_uid,(gchar *)message.from().addressee().toStdString().c_str()); |
|
174 RTCOM_EL_EVENT_SET_FIELD(ev,start_time,time(NULL)); |
|
175 RTCOM_EL_EVENT_SET_FIELD(ev,remote_ebook_uid,(gchar *)"1"); |
|
176 RTCOM_EL_EVENT_SET_FIELD(ev,free_text,(gchar *)message.textContent().toStdString().c_str()); |
|
177 rtcom_el_add_event(el,ev,NULL); |
|
178 rtcom_el_event_free(ev); |
|
179 } |
155 |
180 |
156 bool EventLoggerEngine::deleteMessage(const QMessageId& id) |
181 bool EventLoggerEngine::deleteMessage(const QMessageId& id) |
157 { |
182 { |
158 int status=rtcom_el_delete_event(el,id.toString().toInt(),NULL); |
183 int status=rtcom_el_delete_event(el,id.toString().remove("el").toInt(),NULL); |
159 return status==0; |
184 return status==0; |
160 } |
185 } |
161 |
186 |
162 QMessage EventLoggerEngine::message(const QMessageId& id) |
187 QMessage EventLoggerEngine::message(const QMessageId& id) |
163 { |
188 { |
167 // qDebug() << "EventLoggerEngine::getMessage id=" << id.toString(); |
192 // qDebug() << "EventLoggerEngine::getMessage id=" << id.toString(); |
168 |
193 |
169 RTComElEvent ev; |
194 RTComElEvent ev; |
170 bzero(&ev,sizeof(ev)); |
195 bzero(&ev,sizeof(ev)); |
171 RTComElQuery *q=rtcom_el_query_new(el); |
196 RTComElQuery *q=rtcom_el_query_new(el); |
172 rtcom_el_query_prepare(q,"id",id.toString().toInt(),RTCOM_EL_OP_EQUAL,NULL); |
197 rtcom_el_query_prepare(q,"id",id.toString().remove("el").toInt(),RTCOM_EL_OP_EQUAL,NULL); |
173 RTComElIter *iter=rtcom_el_get_events(el,q); |
198 RTComElIter *iter=rtcom_el_get_events(el,q); |
174 g_object_unref(q); |
199 g_object_unref(q); |
175 if(iter && rtcom_el_iter_first(iter)) |
200 if(iter && rtcom_el_iter_first(iter)) |
176 { |
201 { |
177 gboolean res=rtcom_el_iter_get_full(iter,&ev); |
202 gboolean res=rtcom_el_iter_get_full(iter,&ev); |
267 } else { |
292 } else { |
268 msg.setType(QMessage::NoType); // Other type, as eample voice calll |
293 msg.setType(QMessage::NoType); // Other type, as eample voice calll |
269 } |
294 } |
270 } |
295 } |
271 else if (!messageRetrieved) { |
296 else if (!messageRetrieved) { |
272 msg = this->message(QMessageId(QString::number(eventId))); |
297 msg = this->message(QMessageId(QString("el")+QString::number(eventId))); |
273 if (msg.type() == QMessage::NoType) { |
298 if (msg.type() == QMessage::NoType) { |
274 matchingFilters.clear(); |
299 matchingFilters.clear(); |
275 break; |
300 break; |
276 } else { |
301 } else { |
277 messageRetrieved = true; |
302 messageRetrieved = true; |