diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2008-04-11 21:10:56 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2008-04-11 21:10:56 +0800 |
commit | 1a51b6b626098bb0b94d6e5a4bbf055b833b45db (patch) | |
tree | ad4bbd5329c1278cba690872b963a0114b355330 /libempathy | |
parent | 419d09c664b17192447a027c5f5da66a8853120f (diff) | |
download | gsoc2013-empathy-1a51b6b626098bb0b94d6e5a4bbf055b833b45db.tar gsoc2013-empathy-1a51b6b626098bb0b94d6e5a4bbf055b833b45db.tar.gz gsoc2013-empathy-1a51b6b626098bb0b94d6e5a4bbf055b833b45db.tar.bz2 gsoc2013-empathy-1a51b6b626098bb0b94d6e5a4bbf055b833b45db.tar.lz gsoc2013-empathy-1a51b6b626098bb0b94d6e5a4bbf055b833b45db.tar.xz gsoc2013-empathy-1a51b6b626098bb0b94d6e5a4bbf055b833b45db.tar.zst gsoc2013-empathy-1a51b6b626098bb0b94d6e5a4bbf055b833b45db.zip |
Add empathy_tp_group_get_invitation
svn path=/trunk/; revision=903
Diffstat (limited to 'libempathy')
-rw-r--r-- | libempathy/empathy-tp-group.c | 34 | ||||
-rw-r--r-- | libempathy/empathy-tp-group.h | 2 |
2 files changed, 36 insertions, 0 deletions
diff --git a/libempathy/empathy-tp-group.c b/libempathy/empathy-tp-group.c index 0558bcb28..ef6697de4 100644 --- a/libempathy/empathy-tp-group.c +++ b/libempathy/empathy-tp-group.c @@ -954,4 +954,38 @@ empathy_tp_group_is_ready (EmpathyTpGroup *group) return priv->ready; } +EmpathyPendingInfo * +empathy_tp_group_get_invitation (EmpathyTpGroup *group, + EmpathyContact **remote_contact) +{ + EmpathyTpGroupPriv *priv = GET_PRIV (group); + EmpathyContact *contact = NULL; + EmpathyPendingInfo *invitation = NULL; + GList *l; + + g_return_val_if_fail (EMPATHY_IS_TP_GROUP (group), FALSE); + g_return_val_if_fail (priv->ready, NULL); + + for (l = priv->local_pendings; l; l = l->next) { + EmpathyPendingInfo *info = l->data; + + if (empathy_contact_is_user (info->member)) { + invitation = info; + break; + } + } + + if (invitation && priv->members && !priv->members->next) { + contact = priv->members->data; + } + if (!invitation && priv->remote_pendings && !priv->remote_pendings->next) { + contact = priv->remote_pendings->data; + } + + if (remote_contact) { + *remote_contact = contact; + } + + return invitation; +} diff --git a/libempathy/empathy-tp-group.h b/libempathy/empathy-tp-group.h index 9309c94af..63473b48e 100644 --- a/libempathy/empathy-tp-group.h +++ b/libempathy/empathy-tp-group.h @@ -81,6 +81,8 @@ EmpathyContact * empathy_tp_group_get_self_contact (EmpathyTpGroup *gr gboolean empathy_tp_group_is_member (EmpathyTpGroup *group, EmpathyContact *contact); gboolean empathy_tp_group_is_ready (EmpathyTpGroup *group); +EmpathyPendingInfo *empathy_tp_group_get_invitation (EmpathyTpGroup *group, + EmpathyContact **remote_contact); EmpathyPendingInfo *empathy_pending_info_new (EmpathyContact *member, EmpathyContact *actor, const gchar *message); |