aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@src.gnome.org>2008-04-11 21:10:56 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2008-04-11 21:10:56 +0800
commit1a51b6b626098bb0b94d6e5a4bbf055b833b45db (patch)
treead4bbd5329c1278cba690872b963a0114b355330 /libempathy
parent419d09c664b17192447a027c5f5da66a8853120f (diff)
downloadgsoc2013-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.c34
-rw-r--r--libempathy/empathy-tp-group.h2
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);