diff libpurple/protocols/oscar/family_buddy.c @ 29829:11cb7f2bb6e8

Add a PURPLE_STATUS_MOOD primitive and change ICQ to use it.
author Richard Laager <rlaager@wiktel.com>
date Mon, 17 Nov 2008 00:43:59 +0000
parents 365b90fa23cf
children 5391094529c6
line wrap: on
line diff
--- a/libpurple/protocols/oscar/family_buddy.c	Sun Nov 16 19:17:27 2008 +0000
+++ b/libpurple/protocols/oscar/family_buddy.c	Mon Nov 17 00:43:59 2008 +0000
@@ -225,9 +225,17 @@
 		aim_locate_autofetch_away_message(od, userinfo.sn);
 
 	if (snac->subtype == SNAC_SUBTYPE_BUDDY_ONCOMING &&
-			userinfo.capabilities & OSCAR_CAPABILITY_XTRAZ && userinfo.customicon > 0)
-		icq_im_xstatus_request(od, userinfo.sn);
+	    userinfo.capabilities & OSCAR_CAPABILITY_XTRAZ) {
+		PurpleAccount *account = purple_connection_get_account(od->gc);
+		PurpleBuddy *buddy = purple_find_buddy(account, userinfo.sn);
 
+		if (buddy) {
+			PurplePresence *presence = purple_buddy_get_presence(buddy);
+
+			if (purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_MOOD))
+				icq_im_xstatus_request(od, userinfo.sn);
+		}
+	}
 	aim_info_free(&userinfo);
 
 	return ret;