/soc/2015/jgeboski/facebook: 36e822e078c8: facebook: only set bu...

James Geboski <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 36e822e078c861ec56b03343b39ceb0a0fac98fb
Author:	 James Geboski <[email protected]>
Date:	 2015-06-05 22:38 -0400
Branch:	 facebook
URL: https://hg.pidgin.im/soc/2015/jgeboski/facebook/rev/36e822e078c8

Description:

facebook: only set buddy icons, not account icons

diffstat:

 libpurple/protocols/facebook/facebook.c |  43 +++++++++++++-------------------
 1 files changed, 18 insertions(+), 25 deletions(-)

diffs (88 lines):

diff --git a/libpurple/protocols/facebook/facebook.c b/libpurple/protocols/facebook/facebook.c
--- a/libpurple/protocols/facebook/facebook.c
+++ b/libpurple/protocols/facebook/facebook.c
@@ -166,17 +166,18 @@ static void
 fb_cb_icon_fetch(PurpleHttpConnection *con, PurpleHttpResponse *res,
                  gpointer data)
 {
+	const gchar *name;
 	const gchar *str;
-	const gchar *name = data;
 	FbApi *api;
 	GError *err;
 	gsize size;
 	guchar *idata;
 	PurpleAccount *acct;
+	PurpleBuddy *bdy = data;
 	PurpleConnection *gc;
 
-	gc = purple_http_conn_get_purple_connection(con);
-	acct = purple_connection_get_account(gc);
+	acct = purple_buddy_get_account(bdy);
+	gc = purple_account_get_connection(acct);
 	api = purple_connection_get_protocol_data(gc);
 
 	if (!fb_http_error_chk(res, &err)) {
@@ -185,14 +186,10 @@ fb_cb_icon_fetch(PurpleHttpConnection *c
 		return;
 	}
 
+	name = purple_buddy_get_name(bdy);
 	str = purple_http_response_get_data(res, &size);
+
 	idata = g_memdup(str, size);
-
-	if (G_UNLIKELY(name == NULL)) {
-		purple_buddy_icons_set_account_icon(acct, idata, size);
-		return;
-	}
-
 	purple_buddy_icons_set_for_user(acct, name, idata, size, NULL);
 }
 
@@ -200,7 +197,6 @@ static void
 fb_cb_api_contacts(FbApi *api, GSList *users, gpointer data)
 {
 	const gchar *alias;
-	const gchar *name;
 	FbApiUser *user;
 	FbId muid;
 	gchar uid[FB_ID_STRMAX];
@@ -225,25 +221,22 @@ fb_cb_api_contacts(FbApi *api, GSList *u
 		FB_ID_TO_STR(user->uid, uid);
 
 		if (G_UNLIKELY(user->uid == muid)) {
-			if (G_UNLIKELY(alias == NULL)) {
-				purple_account_set_private_alias(acct,
-				                                 user->name);
+			if (G_UNLIKELY(alias != NULL)) {
+				continue;
 			}
 
-			name = NULL;
-		} else {
-			bdy = purple_blist_find_buddy(acct, uid);
-
-			if (bdy == NULL) {
-				bdy = purple_buddy_new(acct, uid, user->name);
-				purple_blist_add_buddy(bdy, NULL, grp, NULL);
-			}
-
-			name = purple_buddy_get_name(bdy);
+			purple_account_set_private_alias(acct, user->name);
+			continue;
 		}
 
-		purple_http_get(gc, fb_cb_icon_fetch, (gchar *) name,
-		                user->icon);
+		bdy = purple_blist_find_buddy(acct, uid);
+
+		if (bdy == NULL) {
+			bdy = purple_buddy_new(acct, uid, user->name);
+			purple_blist_add_buddy(bdy, NULL, grp, NULL);
+		}
+
+		purple_http_get(gc, fb_cb_icon_fetch, bdy, user->icon);
 	}
 
 	purple_connection_update_progress(gc, _("Connecting"), 3, 4);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.