#include <extensions/extensions.h>
#include "empathy-contact-manager.h"
-#include "empathy-contact-monitor.h"
#include "empathy-contact-list.h"
#include "empathy-utils.h"
#define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyContactManager)
typedef struct {
+ /* Owned (TpConnection *) => Owned (TpContactList *)
+ The contact list associated with each connected connection */
GHashTable *lists;
TpAccountManager *account_manager;
- EmpathyContactMonitor *contact_monitor;
TpProxy *logger;
/* account object path (gchar *) => GHashTable containing favorite contacts
* (contact ID (gchar *) => TRUE) */
EmpathyContactManager *manager)
{
if (valid) {
- empathy_signal_connect_weak (account, "status-changed",
+ tp_g_signal_connect_object (account, "status-changed",
G_CALLBACK (contact_manager_status_changed_cb),
- G_OBJECT (manager));
+ manager, 0);
}
}
g_hash_table_destroy (priv->favourites);
g_object_unref (priv->account_manager);
-
- if (priv->contact_monitor) {
- g_object_unref (priv->contact_monitor);
- }
}
static GObject *
NULL, NULL, manager);
}
- empathy_signal_connect_weak (account, "status-changed",
+ tp_g_signal_connect_object (account, "status-changed",
G_CALLBACK (contact_manager_status_changed_cb),
- G_OBJECT (manager));
+ manager, 0);
}
g_list_free (accounts);
- empathy_signal_connect_weak (account_manager, "account-validity-changed",
+ tp_g_signal_connect_object (account_manager, "account-validity-changed",
G_CALLBACK (contact_manager_validity_changed_cb),
- G_OBJECT (manager));
+ manager, 0);
}
static EmpathyContact *
g_hash_table_unref);
priv->account_manager = tp_account_manager_dup ();
- priv->contact_monitor = NULL;
tp_account_manager_prepare_async (priv->account_manager, NULL,
account_manager_prepared_cb, manager);
return contacts;
}
-static EmpathyContactMonitor *
-contact_manager_get_monitor (EmpathyContactList *manager)
-{
- EmpathyContactManagerPriv *priv = GET_PRIV (manager);
-
- if (priv->contact_monitor == NULL) {
- priv->contact_monitor = empathy_contact_monitor_new_for_iface (manager);
- }
-
- return priv->contact_monitor;
-}
-
static void
contact_manager_get_pendings_foreach (TpConnection *connection,
EmpathyTpContactList *list,
iface->add = contact_manager_add;
iface->remove = contact_manager_remove;
iface->get_members = contact_manager_get_members;
- iface->get_monitor = contact_manager_get_monitor;
iface->get_pendings = contact_manager_get_pendings;
iface->get_all_groups = contact_manager_get_all_groups;
iface->get_groups = contact_manager_get_groups;