From: Guillaume Desmottes Date: Wed, 2 Nov 2011 09:49:01 +0000 (+0100) Subject: remove old blocking API X-Git-Url: https://git.0d.be/?p=empathy.git;a=commitdiff_plain;h=a7429bd7acc0359d327c8d0f8042dd536dfc1df2 remove old blocking API https://bugzilla.gnome.org/show_bug.cgi?id=661805 --- diff --git a/libempathy/empathy-contact-list.c b/libempathy/empathy-contact-list.c index 9e99ba46..38d0a446 100644 --- a/libempathy/empathy-contact-list.c +++ b/libempathy/empathy-contact-list.c @@ -236,27 +236,3 @@ empathy_contact_list_get_flags (EmpathyContactList *list) return 0; } } - -void -empathy_contact_list_set_blocked (EmpathyContactList *list, - EmpathyContact *contact, - gboolean blocked, - gboolean abusive) -{ - EmpathyContactListIface *iface = EMPATHY_CONTACT_LIST_GET_IFACE (list); - - if (iface->set_blocked != NULL) - iface->set_blocked (list, contact, blocked, abusive); -} - -gboolean -empathy_contact_list_get_blocked (EmpathyContactList *list, - EmpathyContact *contact) -{ - EmpathyContactListIface *iface = EMPATHY_CONTACT_LIST_GET_IFACE (list); - - if (iface->get_blocked != NULL) - return iface->get_blocked (list, contact); - else - return FALSE; -} diff --git a/libempathy/empathy-contact-list.h b/libempathy/empathy-contact-list.h index 0e1d6a85..f1ed3e8e 100644 --- a/libempathy/empathy-contact-list.h +++ b/libempathy/empathy-contact-list.h @@ -39,9 +39,7 @@ typedef enum { EMPATHY_CONTACT_LIST_CAN_REMOVE = 1 << 1, EMPATHY_CONTACT_LIST_CAN_ALIAS = 1 << 2, EMPATHY_CONTACT_LIST_CAN_GROUP = 1 << 3, - EMPATHY_CONTACT_LIST_CAN_BLOCK = 1 << 4, - EMPATHY_CONTACT_LIST_CAN_REPORT_ABUSIVE = 1 << 5, - EMPATHY_CONTACT_LIST_MESSAGE_ADD = 1 << 6, + EMPATHY_CONTACT_LIST_MESSAGE_ADD = 1 << 4, } EmpathyContactListFlags; typedef struct _EmpathyContactListIface EmpathyContactListIface; @@ -74,12 +72,6 @@ struct _EmpathyContactListIface { const gchar *group); EmpathyContactListFlags (*get_flags) (EmpathyContactList *list); - void (*set_blocked) (EmpathyContactList *list, - EmpathyContact *contact, - gboolean blocked, - gboolean abusive); - gboolean (*get_blocked) (EmpathyContactList *list, - EmpathyContact *contact); }; GType empathy_contact_list_get_type (void) G_GNUC_CONST; @@ -109,14 +101,6 @@ void empathy_contact_list_remove_group (EmpathyContactList *list, EmpathyContactListFlags empathy_contact_list_get_flags (EmpathyContactList *list); -void empathy_contact_list_set_blocked (EmpathyContactList *list, - EmpathyContact *contact, - gboolean blocked, - gboolean abusive); -gboolean empathy_contact_list_get_blocked (EmpathyContactList *list, - EmpathyContact *contact); - - G_END_DECLS #endif /* __EMPATHY_CONTACT_LIST_H__ */ diff --git a/libempathy/empathy-contact-manager.c b/libempathy/empathy-contact-manager.c index 8db9a5a0..88012bf3 100644 --- a/libempathy/empathy-contact-manager.c +++ b/libempathy/empathy-contact-manager.c @@ -562,47 +562,6 @@ contact_manager_remove_group (EmpathyContactList *manager, (gpointer) group); } -static void -contact_manager_set_blocked (EmpathyContactList *manager, - EmpathyContact *contact, - gboolean blocked, - gboolean abusive) -{ - EmpathyContactManagerPriv *priv = GET_PRIV (manager); - EmpathyContactList *list; - TpConnection *connection; - - g_return_if_fail (EMPATHY_IS_CONTACT_MANAGER (manager)); - - connection = empathy_contact_get_connection (contact); - list = g_hash_table_lookup (priv->lists, connection); - - if (list != NULL) { - empathy_contact_list_set_blocked (list, contact, - blocked, abusive); - } -} - -static gboolean -contact_manager_get_blocked (EmpathyContactList *manager, - EmpathyContact *contact) -{ - EmpathyContactManagerPriv *priv = GET_PRIV (manager); - EmpathyContactList *list; - TpConnection *connection; - - g_return_val_if_fail (EMPATHY_IS_CONTACT_MANAGER (manager), FALSE); - - connection = empathy_contact_get_connection (contact); - list = g_hash_table_lookup (priv->lists, connection); - - if (list != NULL) { - return empathy_contact_list_get_blocked (list, contact); - } else { - return FALSE; - } -} - static void contact_manager_iface_init (EmpathyContactListIface *iface) { @@ -616,8 +575,6 @@ contact_manager_iface_init (EmpathyContactListIface *iface) iface->remove_from_group = contact_manager_remove_from_group; iface->rename_group = contact_manager_rename_group; iface->remove_group = contact_manager_remove_group; - iface->set_blocked = contact_manager_set_blocked; - iface->get_blocked = contact_manager_get_blocked; } EmpathyContactListFlags diff --git a/libempathy/empathy-tp-contact-list.c b/libempathy/empathy-tp-contact-list.c index 1cd2ba4c..bf639e4c 100644 --- a/libempathy/empathy-tp-contact-list.c +++ b/libempathy/empathy-tp-contact-list.c @@ -48,7 +48,6 @@ typedef struct { TpChannel *publish; TpChannel *subscribe; TpChannel *stored; - TpChannel *deny; /* contact handle (TpHandle) => reffed (EmpathyContact *) * * Union of: @@ -731,10 +730,6 @@ tp_contact_list_finalize (GObject *object) g_object_unref (priv->stored); } - if (priv->deny) { - g_object_unref (priv->deny); - } - if (priv->connection) { g_object_unref (priv->connection); } @@ -786,11 +781,6 @@ got_list_channel (EmpathyTpContactList *list, g_signal_connect (priv->subscribe, "group-members-changed", G_CALLBACK (tp_contact_list_subscribe_group_members_changed_cb), list); - } else if (!tp_strdiff (id, "deny")) { - if (priv->deny != NULL) - return; - DEBUG ("Got 'deny' channel"); - priv->deny = g_object_ref (channel); } } @@ -816,39 +806,6 @@ list_ensure_channel_cb (TpConnection *conn, g_object_unref (channel); } -static void -list_get_contact_blocking_capabilities_cb (TpProxy *conn, - const GValue *value, - const GError *in_error, - gpointer user_data, - GObject *weak_object) -{ - EmpathyTpContactList *list = EMPATHY_TP_CONTACT_LIST (weak_object); - EmpathyTpContactListPriv *priv = GET_PRIV (list); - TpContactBlockingCapabilities caps; - - if (in_error != NULL) { - DEBUG ("Get(Blocking, ContactBlockingCapabilities) on %s failed: %s", - tp_proxy_get_object_path (conn), - in_error->message); - return; - } - - if (!G_VALUE_HOLDS_UINT (value)) { - DEBUG ("Get(Blocking, ContactBlockingCapabilities) on %s returned a %s, not a uint", - tp_proxy_get_object_path (conn), - G_VALUE_TYPE_NAME (value)); - return; - } - - caps = g_value_get_uint (value); - - if (caps & TP_CONTACT_BLOCKING_CAPABILITY_CAN_REPORT_ABUSIVE) { - DEBUG ("Connection can report abusive contacts"); - priv->flags |= EMPATHY_CONTACT_LIST_CAN_REPORT_ABUSIVE; - } -} - static void iterate_on_channels (EmpathyTpContactList *list, const GPtrArray *channels) @@ -957,25 +914,8 @@ conn_ready_cb (TpConnection *connection, tp_cli_connection_interface_requests_call_ensure_channel (priv->connection, G_MAXINT, request, list_ensure_channel_cb, list, NULL, G_OBJECT (list)); - /* Request the 'deny' list */ - tp_asv_set_static_string (request, TP_PROP_CHANNEL_TARGET_ID, "deny"); - tp_cli_connection_interface_requests_call_ensure_channel (priv->connection, - G_MAXINT, request, list_ensure_channel_cb, list, NULL, G_OBJECT (list)); - g_hash_table_unref (request); - /* Find out if we support reporting abusive contacts -- - * this is done via the new Conn.I.ContactBlocking interface */ - if (tp_proxy_has_interface_by_id (priv->connection, - TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_BLOCKING)) { - DEBUG ("Have Conn.I.ContactBlocking"); - - tp_cli_dbus_properties_call_get (priv->connection, -1, - TP_IFACE_CONNECTION_INTERFACE_CONTACT_BLOCKING, - "ContactBlockingCapabilities", - list_get_contact_blocking_capabilities_cb, - NULL, NULL, G_OBJECT (list)); - } out: g_object_unref (list); } @@ -1154,10 +1094,13 @@ tp_contact_list_add (EmpathyContactList *list, } } - if (priv->deny) { - tp_cli_channel_interface_group_call_remove_members ( - priv->deny, -1, &handles, message, - NULL, NULL, NULL, NULL); + /* We want to unblock the contact */ + if (tp_proxy_has_interface_by_id (priv->connection, + TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_BLOCKING)) { + TpContact *tp_contact = empathy_contact_get_tp_contact (contact); + + if (tp_contact != NULL) + tp_contact_unblock_async (tp_contact, NULL, NULL); } } @@ -1370,55 +1313,9 @@ tp_contact_list_get_flags (EmpathyContactList *list) } } - if (priv->deny != NULL) - flags |= EMPATHY_CONTACT_LIST_CAN_BLOCK; - return flags; } -static void -tp_contact_list_set_blocked (EmpathyContactList *list, - EmpathyContact *contact, - gboolean blocked, - gboolean abusive) -{ - EmpathyTpContactListPriv *priv = GET_PRIV (list); - TpHandle handle = empathy_contact_get_handle (contact); - GArray handles = { (char *) &handle, 1 }; - - g_return_if_fail (TP_IS_CHANNEL (priv->deny)); - - if (blocked && abusive) { - /* we have to do this via the new interface */ - g_return_if_fail (priv->flags & - EMPATHY_CONTACT_LIST_CAN_REPORT_ABUSIVE); - - tp_cli_connection_interface_contact_blocking_call_block_contacts ( - priv->connection, -1, - &handles, TRUE, NULL, NULL, NULL, NULL); - } else if (blocked) { - tp_cli_channel_interface_group_call_add_members ( - priv->deny, -1, - &handles, NULL, NULL, NULL, NULL, NULL); - } else { - tp_cli_channel_interface_group_call_remove_members ( - priv->deny, -1, - &handles, NULL, NULL, NULL, NULL, NULL); - } -} - -static gboolean -tp_contact_list_get_blocked (EmpathyContactList *list, - EmpathyContact *contact) -{ - EmpathyTpContactListPriv *priv = GET_PRIV (list); - - g_return_val_if_fail (TP_IS_CHANNEL (priv->deny), FALSE); - - return tp_intset_is_member (tp_channel_group_get_members (priv->deny), - empathy_contact_get_handle (contact)); -} - static void tp_contact_list_iface_init (EmpathyContactListIface *iface) { @@ -1433,8 +1330,6 @@ tp_contact_list_iface_init (EmpathyContactListIface *iface) iface->rename_group = tp_contact_list_rename_group; iface->remove_group = tp_contact_list_remove_group; iface->get_flags = tp_contact_list_get_flags; - iface->set_blocked = tp_contact_list_set_blocked; - iface->get_blocked = tp_contact_list_get_blocked; } void