[Telepathy-commits] [telepathy-haze/master] connection-aliasing: factor out get_alias()

Simon McVittie simon.mcvittie at collabora.co.uk
Mon Mar 23 02:44:07 PDT 2009


---
 src/connection-aliasing.c |   70 +++++++++++++++++++++++++-------------------
 1 files changed, 40 insertions(+), 30 deletions(-)

diff --git a/src/connection-aliasing.c b/src/connection-aliasing.c
index cb3c818..b1b5295 100644
--- a/src/connection-aliasing.c
+++ b/src/connection-aliasing.c
@@ -60,13 +60,51 @@ haze_connection_get_alias_flags (TpSvcConnectionInterfaceAliasing *self,
             context, flags);
 }
 
+static const gchar *
+get_alias (HazeConnection *self,
+           TpHandle handle)
+{
+    TpBaseConnection *base = TP_BASE_CONNECTION (self);
+    TpHandleRepoIface *contact_handles =
+        tp_base_connection_get_handles (base, TP_HANDLE_TYPE_CONTACT);
+    const gchar *bname = tp_handle_inspect (contact_handles, handle);
+    const gchar *alias;
+
+    if (handle == base->self_handle)
+    {
+        alias = purple_connection_get_display_name (self->account->gc);
+
+        if (alias == NULL)
+        {
+            DEBUG ("self (%s) has no display_name", bname);
+            alias = bname;
+        }
+    }
+    else
+    {
+        PurpleBuddy *buddy = purple_find_buddy (self->account, bname);
+
+        if (buddy != NULL)
+        {
+            alias = purple_buddy_get_alias (buddy);
+        }
+        else
+        {
+            DEBUG ("%s not on blist", bname);
+            alias = bname;
+        }
+    }
+    DEBUG ("%s has alias \"%s\"", bname, alias);
+    return alias;
+}
+
 static void
 haze_connection_request_aliases (TpSvcConnectionInterfaceAliasing *self,
                                  const GArray *contacts,
                                  DBusGMethodInvocation *context)
 {
     HazeConnection *conn = HAZE_CONNECTION (self);
-    TpBaseConnection *base = TP_BASE_CONNECTION (self);
+    TpBaseConnection *base = TP_BASE_CONNECTION (conn);
     TpHandleRepoIface *contact_handles =
         tp_base_connection_get_handles (base, TP_HANDLE_TYPE_CONTACT);
     guint i;
@@ -83,36 +121,8 @@ haze_connection_request_aliases (TpSvcConnectionInterfaceAliasing *self,
     for (i = 0; i < contacts->len; i++)
     {
         TpHandle handle = g_array_index (contacts, TpHandle, i);
-        const gchar *bname = tp_handle_inspect (contact_handles, handle);
-        PurpleBuddy *buddy;
-        const gchar *alias;
-
-        if (handle == base->self_handle)
-        {
-            alias = purple_connection_get_display_name (conn->account->gc);
-            if (!alias)
-            {
-                DEBUG ("self (%s) has no display_name", bname);
-                alias = bname;
-            }
-        }
-        else
-        {
-            buddy = purple_find_buddy (conn->account, bname);
-
-            if (buddy)
-            {
-                alias = purple_buddy_get_alias (buddy);
-            }
-            else
-            {
-                DEBUG ("%s not on blist", bname);
-                alias = bname;
-            }
-        }
-        DEBUG ("%s has alias \"%s\"", bname, alias);
 
-        aliases[i] = alias;
+        aliases[i] = get_alias (conn, handle);
     }
 
     if (error)
-- 
1.5.6.5




More information about the telepathy-commits mailing list