diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2014-05-21 16:27:24 +0200 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2014-05-26 14:49:03 +0200 |
commit | 6c96913070e27a869d586961107824f0367ecb8f (patch) | |
tree | c80245fe65a2ee918f8a49cf20217d90276bf9ff | |
parent | 54d1c543c8addaacc8349300dba649301c47660e (diff) | |
download | telepathy-glib-6c96913070e27a869d586961107824f0367ecb8f.tar.gz |
pass TpBlockableContactList to blocking methods
https://bugs.freedesktop.org/show_bug.cgi?id=77772
-rw-r--r-- | examples/cm/contactlist/contact-list.c | 6 | ||||
-rw-r--r-- | telepathy-glib/base-contact-list.c | 87 | ||||
-rw-r--r-- | telepathy-glib/base-contact-list.h | 20 |
3 files changed, 61 insertions, 52 deletions
diff --git a/examples/cm/contactlist/contact-list.c b/examples/cm/contactlist/contact-list.c index a52fcbea1..2f7f9d89f 100644 --- a/examples/cm/contactlist/contact-list.c +++ b/examples/cm/contactlist/contact-list.c @@ -1491,8 +1491,7 @@ example_contact_list_block_contacts_with_abuse_async ( } } - tp_base_contact_list_contact_blocking_changed ( - TP_BASE_CONTACT_LIST (contact_list), changed); + tp_base_contact_list_contact_blocking_changed (contact_list, changed); tp_handle_set_destroy (changed); tp_simple_async_report_success_in_idle ((GObject *) self, callback, user_data, example_contact_list_block_contacts_with_abuse_async); @@ -1522,8 +1521,7 @@ example_contact_list_unblock_contacts_async ( } } - tp_base_contact_list_contact_blocking_changed ( - TP_BASE_CONTACT_LIST (contact_list), changed); + tp_base_contact_list_contact_blocking_changed (contact_list, changed); tp_handle_set_destroy (changed); tp_simple_async_report_success_in_idle ((GObject *) self, callback, user_data, example_contact_list_unblock_contacts_async); diff --git a/telepathy-glib/base-contact-list.c b/telepathy-glib/base-contact-list.c index 6dfc10471..e8c95e4b2 100644 --- a/telepathy-glib/base-contact-list.c +++ b/telepathy-glib/base-contact-list.c @@ -1093,9 +1093,10 @@ tp_base_contact_list_set_list_received (TpBaseContactList *self) if (tp_base_contact_list_can_block (self)) { + TpBlockableContactList *blockable = TP_BLOCKABLE_CONTACT_LIST (self); TpHandleSet *blocked; - blocked = tp_base_contact_list_dup_blocked_contacts (self); + blocked = tp_base_contact_list_dup_blocked_contacts (blockable); if (DEBUGGING) { @@ -1105,7 +1106,7 @@ tp_base_contact_list_set_list_received (TpBaseContactList *self) g_free (tmp); } - tp_base_contact_list_contact_blocking_changed (self, blocked); + tp_base_contact_list_contact_blocking_changed (blockable, blocked); if (self->priv->contact_blocking_skeleton != NULL && self->priv->blocked_contact_requests.length > 0) @@ -1369,17 +1370,21 @@ tp_base_contact_list_one_contact_removed (TpBaseContactList *self, * Since: 0.13.0 */ void -tp_base_contact_list_contact_blocking_changed (TpBaseContactList *self, +tp_base_contact_list_contact_blocking_changed ( + TpBlockableContactList *blockable, TpHandleSet *changed) { + TpBaseContactList *self; TpHandleSet *now_blocked; GVariantBuilder blocked_contacts, unblocked_contacts; TpIntsetFastIter iter; TpHandle handle; - g_return_if_fail (TP_IS_BASE_CONTACT_LIST (self)); + g_return_if_fail (TP_IS_BASE_CONTACT_LIST (blockable)); g_return_if_fail (changed != NULL); + self = (TpBaseContactList *) blockable; + /* don't do anything if we're disconnecting, or if we haven't had the * initial contact list yet */ if (tp_base_contact_list_get_state (self, NULL) != @@ -1390,7 +1395,7 @@ tp_base_contact_list_contact_blocking_changed (TpBaseContactList *self, g_return_if_fail (tp_base_contact_list_can_block (self)); - now_blocked = tp_base_contact_list_dup_blocked_contacts (self); + now_blocked = tp_base_contact_list_dup_blocked_contacts (blockable); g_variant_builder_init (&blocked_contacts, G_VARIANT_TYPE ("a{us}")); g_variant_builder_init (&unblocked_contacts, G_VARIANT_TYPE ("a{us}")); @@ -2329,7 +2334,7 @@ tp_base_contact_list_can_block (TpBaseContactList *self) * Since: 0.99.6 */ gboolean -tp_base_contact_list_is_blocked (TpBaseContactList *self, +tp_base_contact_list_is_blocked (TpBlockableContactList *self, TpHandle contact) { TpBlockableContactListInterface *iface = @@ -2337,10 +2342,11 @@ tp_base_contact_list_is_blocked (TpBaseContactList *self, g_return_val_if_fail (iface != NULL, FALSE); g_return_val_if_fail (iface->is_blocked != NULL, FALSE); - g_return_val_if_fail (tp_base_contact_list_get_state (self, NULL) == - TP_CONTACT_LIST_STATE_SUCCESS, FALSE); + g_return_val_if_fail (tp_base_contact_list_get_state ( + TP_BASE_CONTACT_LIST (self), NULL) == TP_CONTACT_LIST_STATE_SUCCESS, + FALSE); - return iface->is_blocked (TP_BLOCKABLE_CONTACT_LIST (self), contact); + return iface->is_blocked (self, contact); } /** @@ -2362,17 +2368,18 @@ tp_base_contact_list_is_blocked (TpBaseContactList *self, * Since: 0.13.0 */ TpHandleSet * -tp_base_contact_list_dup_blocked_contacts (TpBaseContactList *self) +tp_base_contact_list_dup_blocked_contacts (TpBlockableContactList *self) { TpBlockableContactListInterface *iface = TP_BLOCKABLE_CONTACT_LIST_GET_INTERFACE (self); g_return_val_if_fail (iface != NULL, NULL); g_return_val_if_fail (iface->dup_blocked_contacts != NULL, NULL); - g_return_val_if_fail (tp_base_contact_list_get_state (self, NULL) == - TP_CONTACT_LIST_STATE_SUCCESS, NULL); + g_return_val_if_fail (tp_base_contact_list_get_state ( + TP_BASE_CONTACT_LIST (self), NULL) == TP_CONTACT_LIST_STATE_SUCCESS, + NULL); - return iface->dup_blocked_contacts (TP_BLOCKABLE_CONTACT_LIST (self)); + return iface->dup_blocked_contacts (self); } /** @@ -2402,7 +2409,7 @@ tp_base_contact_list_dup_blocked_contacts (TpBaseContactList *self) * Since: 0.13.0 */ void -tp_base_contact_list_block_contacts_async (TpBaseContactList *self, +tp_base_contact_list_block_contacts_async (TpBlockableContactList *self, TpHandleSet *contacts, GAsyncReadyCallback callback, gpointer user_data) @@ -2441,7 +2448,8 @@ tp_base_contact_list_block_contacts_async (TpBaseContactList *self, * Since: 0.15.1 */ void -tp_base_contact_list_block_contacts_with_abuse_async (TpBaseContactList *self, +tp_base_contact_list_block_contacts_with_abuse_async ( + TpBlockableContactList *self, TpHandleSet *contacts, gboolean report_abusive, GAsyncReadyCallback callback, @@ -2453,12 +2461,10 @@ tp_base_contact_list_block_contacts_with_abuse_async (TpBaseContactList *self, g_return_if_fail (blockable_iface != NULL); if (blockable_iface->block_contacts_async != NULL) - blockable_iface->block_contacts_async (TP_BLOCKABLE_CONTACT_LIST (self), - contacts, callback, user_data); + blockable_iface->block_contacts_async (self, contacts, callback, user_data); else if (blockable_iface->block_contacts_with_abuse_async != NULL) - blockable_iface->block_contacts_with_abuse_async ( - TP_BLOCKABLE_CONTACT_LIST (self), contacts, report_abusive, callback, - user_data); + blockable_iface->block_contacts_with_abuse_async (self, contacts, + report_abusive, callback, user_data); else g_critical ("neither block_contacts_async nor " "block_contacts_with_abuse_async is implemented"); @@ -2487,7 +2493,7 @@ tp_base_contact_list_block_contacts_with_abuse_async (TpBaseContactList *self, * Since: 0.13.0 */ gboolean -tp_base_contact_list_block_contacts_finish (TpBaseContactList *self, +tp_base_contact_list_block_contacts_finish (TpBlockableContactList *self, GAsyncResult *result, GError **error) { @@ -2498,7 +2504,7 @@ tp_base_contact_list_block_contacts_finish (TpBaseContactList *self, g_return_val_if_fail (blockable_iface->block_contacts_finish != NULL, FALSE); return blockable_iface->block_contacts_finish ( - TP_BLOCKABLE_CONTACT_LIST (self), result, error); + self, result, error); } /** @@ -2524,7 +2530,8 @@ tp_base_contact_list_block_contacts_finish (TpBaseContactList *self, * Since: 0.15.1 */ gboolean -tp_base_contact_list_block_contacts_with_abuse_finish (TpBaseContactList *self, +tp_base_contact_list_block_contacts_with_abuse_finish ( + TpBlockableContactList *self, GAsyncResult *result, GError **error) { @@ -2535,7 +2542,7 @@ tp_base_contact_list_block_contacts_with_abuse_finish (TpBaseContactList *self, g_return_val_if_fail (blockable_iface->block_contacts_finish != NULL, FALSE); return blockable_iface->block_contacts_finish ( - TP_BLOCKABLE_CONTACT_LIST (self), result, error); + self, result, error); } /** @@ -2560,7 +2567,7 @@ tp_base_contact_list_block_contacts_with_abuse_finish (TpBaseContactList *self, * Since: 0.13.0 */ void -tp_base_contact_list_unblock_contacts_async (TpBaseContactList *self, +tp_base_contact_list_unblock_contacts_async (TpBlockableContactList *self, TpHandleSet *contacts, GAsyncReadyCallback callback, gpointer user_data) @@ -2571,8 +2578,7 @@ tp_base_contact_list_unblock_contacts_async (TpBaseContactList *self, g_return_if_fail (blockable_iface != NULL); g_return_if_fail (blockable_iface->unblock_contacts_async != NULL); - blockable_iface->unblock_contacts_async (TP_BLOCKABLE_CONTACT_LIST (self), - contacts, callback, user_data); + blockable_iface->unblock_contacts_async (self, contacts, callback, user_data); } /** @@ -2598,7 +2604,7 @@ tp_base_contact_list_unblock_contacts_async (TpBaseContactList *self, * Since: 0.13.0 */ gboolean -tp_base_contact_list_unblock_contacts_finish (TpBaseContactList *self, +tp_base_contact_list_unblock_contacts_finish (TpBlockableContactList *self, GAsyncResult *result, GError **error) { @@ -2609,8 +2615,7 @@ tp_base_contact_list_unblock_contacts_finish (TpBaseContactList *self, g_return_val_if_fail (blockable_iface->unblock_contacts_finish != NULL, FALSE); - return blockable_iface->unblock_contacts_finish ( - TP_BLOCKABLE_CONTACT_LIST (self), result, error); + return blockable_iface->unblock_contacts_finish (self, result, error); } /** @@ -4425,7 +4430,8 @@ tp_base_contact_list_fill_contact_attributes (TpBaseContactList *self, { g_variant_dict_insert (attributes, TP_TOKEN_CONNECTION_INTERFACE_CONTACT_BLOCKING1_BLOCKED, - "b", tp_base_contact_list_is_blocked (self, contact)); + "b", tp_base_contact_list_is_blocked ( + TP_BLOCKABLE_CONTACT_LIST (self), contact)); } /* else just omit the attributes */ @@ -4953,7 +4959,8 @@ tp_base_contact_list_mixin_request_blocked_contacts ( case TP_CONTACT_LIST_STATE_SUCCESS: { - TpHandleSet *blocked = tp_base_contact_list_dup_blocked_contacts (self); + TpHandleSet *blocked = tp_base_contact_list_dup_blocked_contacts ( + TP_BLOCKABLE_CONTACT_LIST (self)); _tp_gdbus_connection_interface_contact_blocking1_complete_request_blocked_contacts ( skeleton, context, tp_handle_set_to_identifier_map (blocked)); @@ -4985,8 +4992,8 @@ blocked_cb ( GDBusMethodInvocation *context = user_data; GError *error = NULL; - if (tp_base_contact_list_block_contacts_with_abuse_finish (self, result, - &error)) + if (tp_base_contact_list_block_contacts_with_abuse_finish ( + TP_BLOCKABLE_CONTACT_LIST (self), result, &error)) { _tp_gdbus_connection_interface_contact_blocking1_complete_block_contacts ( self->priv->contact_blocking_skeleton, context); @@ -5017,8 +5024,9 @@ tp_base_contact_list_mixin_block_contacts ( while (g_variant_iter_loop (&iter, "u", &contact)) tp_handle_set_add (contacts, contact); - tp_base_contact_list_block_contacts_with_abuse_async (self, contacts, - report_abusive, blocked_cb, context); + tp_base_contact_list_block_contacts_with_abuse_async ( + TP_BLOCKABLE_CONTACT_LIST (self), contacts, report_abusive, blocked_cb, + context); tp_handle_set_destroy (contacts); @@ -5035,7 +5043,8 @@ unblocked_cb ( GDBusMethodInvocation *context = user_data; GError *error = NULL; - if (tp_base_contact_list_unblock_contacts_finish (self, result, &error)) + if (tp_base_contact_list_unblock_contacts_finish ( + TP_BLOCKABLE_CONTACT_LIST (self), result, &error)) { _tp_gdbus_connection_interface_contact_blocking1_complete_unblock_contacts ( self->priv->contact_blocking_skeleton, context); @@ -5065,8 +5074,8 @@ tp_base_contact_list_mixin_unblock_contacts ( while (g_variant_iter_loop (&iter, "u", &contact)) tp_handle_set_add (contacts, contact); - tp_base_contact_list_unblock_contacts_async (self, contacts, unblocked_cb, - context); + tp_base_contact_list_unblock_contacts_async (TP_BLOCKABLE_CONTACT_LIST (self), + contacts, unblocked_cb, context); tp_handle_set_destroy (contacts); diff --git a/telepathy-glib/base-contact-list.h b/telepathy-glib/base-contact-list.h index 5190d0df9..92120f0b9 100644 --- a/telepathy-glib/base-contact-list.h +++ b/telepathy-glib/base-contact-list.h @@ -300,45 +300,47 @@ typedef struct _TpBlockableContactListInterface typedef struct _TpBlockableContactList TpBlockableContactList; void tp_base_contact_list_contact_blocking_changed ( - TpBaseContactList *self, + TpBlockableContactList *self, TpHandleSet *changed); gboolean tp_base_contact_list_can_block (TpBaseContactList *self); _TP_AVAILABLE_IN_1_0 -gboolean tp_base_contact_list_is_blocked (TpBaseContactList *self, +gboolean tp_base_contact_list_is_blocked (TpBlockableContactList *self, TpHandle contact); TpHandleSet *tp_base_contact_list_dup_blocked_contacts ( - TpBaseContactList *self); + TpBlockableContactList *self); -void tp_base_contact_list_block_contacts_async (TpBaseContactList *self, +void tp_base_contact_list_block_contacts_async (TpBlockableContactList *self, TpHandleSet *contacts, GAsyncReadyCallback callback, gpointer user_data); -gboolean tp_base_contact_list_block_contacts_finish (TpBaseContactList *self, +gboolean tp_base_contact_list_block_contacts_finish ( + TpBlockableContactList *self, GAsyncResult *result, GError **error); _TP_AVAILABLE_IN_0_16 void tp_base_contact_list_block_contacts_with_abuse_async ( - TpBaseContactList *self, + TpBlockableContactList *self, TpHandleSet *contacts, gboolean report_abusive, GAsyncReadyCallback callback, gpointer user_data); _TP_AVAILABLE_IN_0_16 gboolean tp_base_contact_list_block_contacts_with_abuse_finish ( - TpBaseContactList *self, + TpBlockableContactList *self, GAsyncResult *result, GError **error); -void tp_base_contact_list_unblock_contacts_async (TpBaseContactList *self, +void tp_base_contact_list_unblock_contacts_async (TpBlockableContactList *self, TpHandleSet *contacts, GAsyncReadyCallback callback, gpointer user_data); -gboolean tp_base_contact_list_unblock_contacts_finish (TpBaseContactList *self, +gboolean tp_base_contact_list_unblock_contacts_finish ( + TpBlockableContactList *self, GAsyncResult *result, GError **error); |