/soc/2015/jgeboski/facebook: 9248df941766: facebook: only set bu...

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

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.