+ if (groups == nil)
+ groups = @[ @"General" ];
+
+ for (OFString *group in groups)
+ [self Jub_addRosterItem: rosterItem
+ group: group];
+}
+
+- (void)contact: (XMPPContact*)contact
+ didSendPresence: (XMPPPresence*)presence
+{
+ if ([presence.type isEqual: @"available"])
+ [presences addObject: [presence.from bareJID]];
+ else if ([presence.type isEqual: @"unavailable"])
+ [presences removeObject: [presence.from bareJID]];
+
+ g_idle_add_block(^{
+ gtk_tree_model_filter_refilter(roster_filter);
+ });