#include <folks/folks.h>
#include <libempathy/empathy-utils.h>
-#include <libempathy/empathy-contact-manager.h>
+#include <libempathy/empathy-connection-aggregator.h>
#include "empathy-groups-widget.h"
#include "empathy-ui-utils.h"
populate_data (EmpathyGroupsWidget *self)
{
EmpathyGroupsWidgetPriv *priv = GET_PRIV (self);
- EmpathyContactManager *manager;
+ EmpathyConnectionAggregator *aggregator;
GtkTreeIter iter;
GeeSet *member_groups;
GList *all_groups, *l;
/* Remove the old groups */
gtk_list_store_clear (priv->group_store);
- /* FIXME: We have to get the whole group list from EmpathyContactManager, as
- * libfolks hasn't grown API to get the whole group list yet. (bgo#627398) */
- manager = empathy_contact_manager_dup_singleton ();
- all_groups = empathy_contact_list_get_all_groups (
- EMPATHY_CONTACT_LIST (manager));
- g_object_unref (manager);
+ /* FIXME: We have to get the whole group list from
+ * EmpathyConnectionAggregator, as libfolks hasn't grown API to get the whole
+ * group list yet. (bgo#627398) */
+ aggregator = empathy_connection_aggregator_dup_singleton ();
+ all_groups = empathy_connection_aggregator_get_all_groups (aggregator);
+ g_object_unref (aggregator);
/* Get the list of groups that this #FolksGroupDetails is currently in */
member_groups = folks_group_details_get_groups (priv->group_details);
#include <telepathy-logger/log-manager.h>
+#include <libempathy/empathy-client-factory.h>
+#include <libempathy/empathy-connection-aggregator.h>
#include <libempathy/empathy-presence-manager.h>
#include <libempathy/empathy-utils.h>
#include <libempathy/empathy-chatroom-manager.h>
EmpathyConnectivity *connectivity;
GSettings *gsettings;
EmpathyNotificationsApprover *notifications_approver;
+ EmpathyConnectionAggregator *conn_aggregator;
#ifdef HAVE_GEOCLUE
EmpathyLocationManager *location_manager;
#endif
tp_clear_object (&self->ft_factory);
tp_clear_object (&self->gsettings);
tp_clear_object (&self->notifications_approver);
+ tp_clear_object (&self->conn_aggregator);
if (dispose != NULL)
dispose (object);
self->location_manager = empathy_location_manager_dup_singleton ();
#endif
+ self->conn_aggregator = empathy_connection_aggregator_dup_singleton ();
+
self->activated = FALSE;
self->ft_factory = NULL;
self->window = NULL;
}
+static void
+add_empathy_features (void)
+{
+ /* Add 'empathy' specific feature before doing any preparation */
+ EmpathyClientFactory *factory;
+
+ factory = empathy_client_factory_dup ();
+
+ tp_simple_client_factory_add_connection_features_varargs (
+ TP_SIMPLE_CLIENT_FACTORY (factory),
+ /* empathy_connection_aggregator_get_all_groups(), used by
+ * EmpathyGroupsWidget relies on it */
+ TP_CONNECTION_FEATURE_CONTACT_GROUPS,
+ NULL);
+
+ g_object_unref (factory);
+}
+
int
main (int argc, char *argv[])
{
gtk_init (&argc, &argv);
empathy_gtk_init ();
+ add_empathy_features ();
+
app = g_object_new (EMPATHY_TYPE_APP,
"application-id", EMPATHY_DBUS_NAME,
"flags", G_APPLICATION_HANDLES_COMMAND_LINE,