[next] telepathy-haze: contact list: implement is_blocked
Simon McVittie
smcv at kemper.freedesktop.org
Mon Jan 13 05:10:33 PST 2014
Module: telepathy-haze
Branch: next
Commit: 8289be18ff2cbd0e0d0cb72c4e7fb528635aca58
URL: http://cgit.freedesktop.org/telepathy/telepathy-haze/commit/?id=8289be18ff2cbd0e0d0cb72c4e7fb528635aca58
Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date: Wed Jan 8 15:36:20 2014 +0000
contact list: implement is_blocked
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=50093
Reviewed-by: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
---
src/contact-list.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/src/contact-list.c b/src/contact-list.c
index 7397c1d..ac19443 100644
--- a/src/contact-list.c
+++ b/src/contact-list.c
@@ -1213,6 +1213,28 @@ haze_contact_list_mutable_groups_init (
/* assume default: groups are stored persistently */
}
+static gboolean
+is_blocked (TpBaseContactList *cl,
+ TpHandle contact)
+{
+ HazeContactList *self = HAZE_CONTACT_LIST (cl);
+ PurpleAccount *account = self->priv->conn->account;
+ TpBaseConnection *base_conn = TP_BASE_CONNECTION (self->priv->conn);
+ TpHandleRepoIface *contact_repo = tp_base_connection_get_handles (base_conn,
+ TP_HANDLE_TYPE_CONTACT);
+ GSList *l;
+
+ for (l = account->deny; l != NULL; l = l->next)
+ {
+ TpHandle denied = tp_handle_ensure (contact_repo, l->data, NULL, NULL);
+
+ if (denied == contact)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
static TpHandleSet *
dup_blocked_contacts (TpBaseContactList *cl)
{
@@ -1295,6 +1317,7 @@ static void
haze_contact_list_blockable_init(
TpBlockableContactListInterface *vtable)
{
+ vtable->is_blocked = is_blocked;
vtable->dup_blocked_contacts = dup_blocked_contacts;
vtable->block_contacts_async = block_contacts_async;
vtable->unblock_contacts_async = unblock_contacts_async;
More information about the telepathy-commits
mailing list