libpurple/protocols/facebook/facebook.c

branch
facebook
changeset 37323
8cf22d7f1c83
parent 37317
143a4d8db15c
child 37324
0519eee7aebf
equal deleted inserted replaced
37322:75a1ebeb269a 37323:8cf22d7f1c83
367 FbApiThread *thrd; 367 FbApiThread *thrd;
368 PurpleRoomlist *list; 368 PurpleRoomlist *list;
369 PurpleRoomlistRoom *room; 369 PurpleRoomlistRoom *room;
370 370
371 list = fb_data_get_roomlist(fata); 371 list = fb_data_get_roomlist(fata);
372
373 if (G_UNLIKELY(list == NULL)) {
374 return;
375 }
376
372 gstr = g_string_new(NULL); 377 gstr = g_string_new(NULL);
373 378
374 for (l = thrds; l != NULL; l = l->next) { 379 for (l = thrds; l != NULL; l = l->next) {
375 thrd = l->data; 380 thrd = l->data;
376 FB_ID_TO_STR(thrd->tid, tid); 381 FB_ID_TO_STR(thrd->tid, tid);
392 purple_roomlist_room_add_field(list, room, gstr->str); 397 purple_roomlist_room_add_field(list, room, gstr->str);
393 purple_roomlist_room_add(list, room); 398 purple_roomlist_room_add(list, room);
394 } 399 }
395 400
396 purple_roomlist_set_in_progress(list, FALSE); 401 purple_roomlist_set_in_progress(list, FALSE);
402 fb_data_set_roomlist(fata, NULL);
397 g_string_free(gstr, TRUE); 403 g_string_free(gstr, TRUE);
398 } 404 }
399 405
400 static void 406 static void
401 fb_cb_api_typing(FbApi *api, FbApiTyping *typg, gpointer data) 407 fb_cb_api_typing(FbApi *api, FbApiTyping *typg, gpointer data)
850 PurpleAccount *acct; 856 PurpleAccount *acct;
851 PurpleRoomlist *list; 857 PurpleRoomlist *list;
852 PurpleRoomlistField *fld; 858 PurpleRoomlistField *fld;
853 859
854 fata = purple_connection_get_protocol_data(gc); 860 fata = purple_connection_get_protocol_data(gc);
861 list = fb_data_get_roomlist(fata);
862 g_return_val_if_fail(list == NULL, NULL);
863
855 api = fb_data_get_api(fata); 864 api = fb_data_get_api(fata);
856 acct = purple_connection_get_account(gc); 865 acct = purple_connection_get_account(gc);
857 list = purple_roomlist_new(acct); 866 list = purple_roomlist_new(acct);
858 fb_data_set_roomlist(fata, list); 867 fb_data_set_roomlist(fata, list);
859 868
866 flds = g_list_prepend(flds, fld); 875 flds = g_list_prepend(flds, fld);
867 876
868 flds = g_list_reverse(flds); 877 flds = g_list_reverse(flds);
869 purple_roomlist_set_fields(list, flds); 878 purple_roomlist_set_fields(list, flds);
870 879
880 purple_roomlist_set_in_progress(list, TRUE);
871 fb_api_thread_list(api); 881 fb_api_thread_list(api);
872 return list; 882 return list;
873 } 883 }
874 884
875 static void 885 static void

mercurial