]> git.0d.be Git - empathy.git/blobdiff - libempathy/empathy-message.c
Merge branch 'sasl'
[empathy.git] / libempathy / empathy-message.c
index 85d5cbc588bf107e5cce92eef8057e2d71b03540..ca3b020ac9f793d1d8a73231f3e38a2c3c66b83f 100644 (file)
 #include <string.h>
 
 #include <telepathy-glib/util.h>
-#ifdef ENABLE_TPL
 #include <telepathy-glib/account.h>
 #include <telepathy-glib/account-manager.h>
 
-#include <telepathy-logger/contact.h>
-#include <telepathy-logger/log-entry.h>
-#include <telepathy-logger/log-entry-text.h>
-#endif /* ENABLE_TPL */
+#include <telepathy-logger/entity.h>
+#include <telepathy-logger/entry.h>
+#include <telepathy-logger/entry-text.h>
 
 #include "empathy-message.h"
 #include "empathy-utils.h"
@@ -260,18 +258,18 @@ empathy_message_new (const gchar *body)
                             NULL);
 }
 
-#ifdef ENABLE_TPL
 EmpathyMessage *
-empathy_message_from_tpl_log_entry (TplLogEntry *logentry)
+empathy_message_from_tpl_log_entry (TplEntry *logentry)
 {
        EmpathyMessage *retval = NULL;
        TpAccountManager *acc_man = NULL;
        TpAccount *account = NULL;
-       TplContact *receiver = NULL;
-       TplContact *sender = NULL;
+       TplEntity *receiver = NULL;
+       TplEntity *sender = NULL;
        gchar *body= NULL;
+       EmpathyContact *contact;
 
-       g_return_val_if_fail (TPL_IS_LOG_ENTRY (logentry), NULL);
+       g_return_val_if_fail (TPL_IS_ENTRY (logentry), NULL);
 
        acc_man = tp_account_manager_dup ();
        /* FIXME Currently Empathy shows in the log viewer only valid accounts, so it
@@ -279,51 +277,55 @@ empathy_message_from_tpl_log_entry (TplLogEntry *logentry)
         * When #610455 will be fixed, calling tp_account_manager_ensure_account ()
         * might add a not existing account to the AM. tp_account_new () probably
         * will be the best way to handle it.
-        * Note: When creating an EmpathyContact from a TplContact instance, the
+        * Note: When creating an EmpathyContact from a TplEntity instance, the
         * TpAccount is passed *only* to let EmpathyContact be able to retrieve the
         * avatar (contact_get_avatar_filename () need a TpAccount).
         * If the way EmpathyContact stores the avatar is changes, it might not be
         * needed anymore any TpAccount passing and the following call will be
         * useless */
        account = tp_account_manager_ensure_account (acc_man,
-                       tpl_log_entry_get_account_path (logentry));
+                       tpl_entry_get_account_path (logentry));
        g_object_unref (acc_man);
 
-       /* TODO Currently only TplLogEntryText exists as subclass of TplLogEntry, in
-        * future more TplLogEntry will exist and EmpathyMessage should probably
+       /* TODO Currently only TplLogEntryText exists as subclass of TplEntry, in
+        * future more TplEntry will exist and EmpathyMessage should probably
         * be enhanced to support other types of log entries (ie TplLogEntryCall).
         *
         * For now we just check (simply) that we are dealing with the only supported type,
         * then there will be a if/then/else or switch handling all the supported
         * cases.
         */
-       if (!TPL_IS_LOG_ENTRY_TEXT (logentry))
+       if (!TPL_IS_ENTRY_TEXT (logentry))
                return NULL;
 
-       body = g_strdup (tpl_log_entry_text_get_message (
-                               TPL_LOG_ENTRY_TEXT (logentry)));
-       receiver = tpl_log_entry_text_get_receiver (TPL_LOG_ENTRY_TEXT (logentry));
-       sender = tpl_log_entry_text_get_sender (TPL_LOG_ENTRY_TEXT (logentry));
+       body = g_strdup (tpl_entry_text_get_message (
+                               TPL_ENTRY_TEXT (logentry)));
+       receiver = tpl_entry_get_receiver (logentry);
+       sender = tpl_entry_get_sender (logentry);
 
        retval = empathy_message_new (body);
-       if (receiver != NULL)
-               empathy_message_set_receiver (retval,
-                               empathy_contact_from_tpl_contact (account, receiver));
-       if (sender != NULL)
-               empathy_message_set_sender (retval,
-                               empathy_contact_from_tpl_contact (account, sender));
+       if (receiver != NULL) {
+               contact = empathy_contact_from_tpl_contact (account, receiver);
+               empathy_message_set_receiver (retval, contact);
+               g_object_unref (contact);
+       }
+
+       if (sender != NULL) {
+               contact = empathy_contact_from_tpl_contact (account, sender);
+               empathy_message_set_sender (retval, contact);
+               g_object_unref (contact);
+       }
 
        empathy_message_set_timestamp (retval,
-                       tpl_log_entry_get_timestamp (logentry));
+                       tpl_entry_get_timestamp (logentry));
        empathy_message_set_id (retval,
-                       tpl_log_entry_text_get_log_id (TPL_LOG_ENTRY_TEXT (logentry)));
-       empathy_message_set_is_backlog (retval, FALSE);
+                       tpl_entry_text_get_pending_msg_id (TPL_ENTRY_TEXT (logentry)));
+       empathy_message_set_is_backlog (retval, TRUE);
 
        g_free (body);
 
        return retval;
 }
-#endif /* ENABLE_TPL */
 
 TpChannelTextMessageType
 empathy_message_get_tptype (EmpathyMessage *message)
@@ -534,7 +536,7 @@ empathy_message_should_highlight (EmpathyMessage *message)
                return FALSE;
        }
 
-       to = empathy_contact_get_name (contact);
+       to = empathy_contact_get_alias (contact);
        if (!to) {
                return FALSE;
        }
@@ -607,6 +609,9 @@ empathy_message_type_to_str (TpChannelTextMessageType type)
                return "notice";
        case TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY:
                return "auto-reply";
+       case TP_CHANNEL_TEXT_MESSAGE_TYPE_DELIVERY_REPORT:
+               return "delivery-report";
+       case TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL:
        default:
                return "normal";
        }