| 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 |