aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-contact.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy/empathy-contact.c')
-rw-r--r--libempathy/empathy-contact.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/libempathy/empathy-contact.c b/libempathy/empathy-contact.c
index a440ef23b..feba1c0b7 100644
--- a/libempathy/empathy-contact.c
+++ b/libempathy/empathy-contact.c
@@ -27,6 +27,9 @@
#include <telepathy-glib/account-manager.h>
#include <telepathy-glib/util.h>
+#ifdef ENABEL_TPL
+#include <telepathy-logger/contact.h>
+#endif /* ENABLE_TPL */
#include "empathy-contact.h"
#include "empathy-utils.h"
@@ -408,6 +411,33 @@ empathy_contact_new (TpContact *tp_contact)
NULL);
}
+#ifdef ENABLE_TPL
+EmpathyContact *
+empathy_contact_from_tpl_contact (TpAccount *account,
+ TplContact *tpl_contact)
+{
+ EmpathyContact *retval;
+ gboolean is_user;
+
+ g_return_val_if_fail (TPL_IS_CONTACT (tpl_contact), NULL);
+
+ is_user = (TPL_CONTACT_USER == tpl_contact_get_contact_type (tpl_contact));
+
+ retval = g_object_new (EMPATHY_TYPE_CONTACT,
+ "id", tpl_contact_get_alias (tpl_contact),
+ "name", tpl_contact_get_identifier (tpl_contact),
+ "account", account,
+ "is-user", is_user,
+ NULL);
+
+ if (!EMP_STR_EMPTY (tpl_contact_get_avatar_token (tpl_contact)))
+ empathy_contact_load_avatar_cache (retval,
+ tpl_contact_get_avatar_token (tpl_contact));
+
+ return retval;
+}
+#endif /* ENABLE_TPL */
+
EmpathyContact *
empathy_contact_new_for_log (TpAccount *account,
const gchar *id,