qtmobility/src/messaging/eventloggerengine_maemo.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
    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;
   283         }
   308         }
   284     }
   309     }
   285 
   310 
   286     if (matchingFilters.count() > 0) {
   311     if (matchingFilters.count() > 0) {
   287             ipMessageStorePrivate->messageNotification(notificationType,
   312             ipMessageStorePrivate->messageNotification(notificationType,
   288                                                        QMessageId(QString::number(eventId)),
   313                                                        QMessageId(QString("el")+QString::number(eventId)),
   289                                                        matchingFilters);
   314                                                        matchingFilters);
   290         }
   315         }
   291 
   316 
   292 }
   317 }
   293 
   318