libpurple/protocols/facebook/facebook.c

branch
facebook
changeset 37308
27833e4fcb1f
parent 37306
7c454f51b56b
child 37309
556eea7a45da
equal deleted inserted replaced
37307:e1fa48ad1f89 37308:27833e4fcb1f
141 } 141 }
142 142
143 bdy = purple_blist_find_buddy(acct, uid); 143 bdy = purple_blist_find_buddy(acct, uid);
144 144
145 if (bdy == NULL) { 145 if (bdy == NULL) {
146 bdy = purple_buddy_new(acct, uid, user->name); 146 bdy = purple_buddy_new(acct, uid, NULL);
147 purple_blist_add_buddy(bdy, NULL, grp, NULL); 147 purple_blist_add_buddy(bdy, NULL, grp, NULL);
148 fb_data_icon_add(fata, bdy, user->icon,
149 fb_cb_data_icon);
150 continue;
151 } 148 }
152 149
150 purple_buddy_set_server_alias(bdy, user->name);
153 csum = purple_buddy_icons_get_checksum_for_user(bdy); 151 csum = purple_buddy_icons_get_checksum_for_user(bdy);
154 152
155 if (!purple_strequal(csum, user->csum)) { 153 if (!purple_strequal(csum, user->csum)) {
156 fb_data_icon_add(fata, bdy, user->icon, 154 fb_data_icon_add(fata, bdy, user->icon,
157 fb_cb_data_icon); 155 fb_cb_data_icon);
574 fb_list_icon(PurpleAccount *account, PurpleBuddy *buddy) 572 fb_list_icon(PurpleAccount *account, PurpleBuddy *buddy)
575 { 573 {
576 return "facebook"; 574 return "facebook";
577 } 575 }
578 576
577 static void
578 fb_client_tooltip_text(PurpleBuddy *buddy, PurpleNotifyUserInfo *info,
579 gboolean full)
580 {
581 const gchar *name;
582 PurplePresence *pres;
583 PurpleStatus *status;
584
585 pres = purple_buddy_get_presence(buddy);
586 status = purple_presence_get_active_status(pres);
587
588 if (!PURPLE_BUDDY_IS_ONLINE(buddy)) {
589 /* Prevent doubles statues for Offline buddies */
590 /* See: pidgin_get_tooltip_text() in gtkblist.c */
591 purple_notify_user_info_remove_last_item(info);
592 }
593
594 name = purple_status_get_name(status);
595 purple_notify_user_info_add_pair_plaintext(info, _("Status"), name);
596 }
597
579 static GList * 598 static GList *
580 fb_client_blist_node_menu(PurpleBlistNode *node) 599 fb_client_blist_node_menu(PurpleBlistNode *node)
581 { 600 {
582 FbData *fata; 601 FbData *fata;
583 GList *acts = NULL; 602 GList *acts = NULL;
956 } 975 }
957 976
958 static void 977 static void
959 facebook_protocol_client_iface_init(PurpleProtocolClientIface *iface) 978 facebook_protocol_client_iface_init(PurpleProtocolClientIface *iface)
960 { 979 {
980 iface->tooltip_text = fb_client_tooltip_text;
961 iface->blist_node_menu = fb_client_blist_node_menu; 981 iface->blist_node_menu = fb_client_blist_node_menu;
962 iface->offline_message = fb_client_offline_message; 982 iface->offline_message = fb_client_offline_message;
963 } 983 }
964 984
965 static void 985 static void

mercurial