summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2010-09-28 13:09:39 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2010-09-28 13:09:39 +0100
commit939631bc1d5b80f4d5ba21936f05c028ce2751ae (patch)
treec27c9e1416fcc031e2c8b4f462b563bf5abc5ec0
parent06289953fbef7f5d04184ead091c73a508d5bd54 (diff)
downloadtelepathy-gabble-939631bc1d5b80f4d5ba21936f05c028ce2751ae.tar.gz
Use gabble_roster_handle_sends_us_presence, etc., outside roster.c
-rw-r--r--src/conn-presence.c6
-rw-r--r--src/im-channel.c14
-rw-r--r--src/presence-cache.c5
3 files changed, 10 insertions, 15 deletions
diff --git a/src/conn-presence.c b/src/conn-presence.c
index 20b93456c..be7fe652e 100644
--- a/src/conn-presence.c
+++ b/src/conn-presence.c
@@ -181,8 +181,7 @@ construct_contact_statuses_cb (GObject *obj,
}
else
{
- if (gabble_roster_handle_get_subscription (self->roster, handle)
- & GABBLE_ROSTER_SUBSCRIPTION_TO)
+ if (gabble_roster_handle_sends_presence_to_us (self->roster, handle))
status = GABBLE_PRESENCE_OFFLINE;
else
status = GABBLE_PRESENCE_UNKNOWN;
@@ -1042,8 +1041,7 @@ conn_presence_visible_to (GabbleConnection *self,
if (self->self_presence->status == GABBLE_PRESENCE_HIDDEN)
return FALSE;
- if ((gabble_roster_handle_get_subscription (self->roster, recipient)
- & GABBLE_ROSTER_SUBSCRIPTION_FROM) == 0)
+ if (!gabble_roster_handle_gets_presence_from_us (self->roster, recipient))
return FALSE;
/* FIXME: other reasons they might not be able to see our presence? */
diff --git a/src/im-channel.c b/src/im-channel.c
index 258f3d2b3..30c152352 100644
--- a/src/im-channel.c
+++ b/src/im-channel.c
@@ -135,8 +135,7 @@ gabble_im_channel_constructed (GObject *obj)
priv->peer_jid = g_strdup (tp_handle_inspect (contact_handles, target));
- if (gabble_roster_handle_get_subscription (conn->roster, target)
- & GABBLE_ROSTER_SUBSCRIPTION_FROM)
+ if (gabble_roster_handle_gets_presence_from_us (conn->roster, target))
priv->send_nick = FALSE;
else
priv->send_nick = TRUE;
@@ -234,20 +233,17 @@ gabble_im_channel_dispose (GObject *object)
GabbleConnection *conn =
GABBLE_CONNECTION (tp_base_channel_get_connection (base));
TpHandle target = tp_base_channel_get_target_handle (base);
- GabblePresence *presence;
- GabbleRosterSubscription subscription;
if (priv->dispose_has_run)
return;
priv->dispose_has_run = TRUE;
- subscription = gabble_roster_handle_get_subscription (conn->roster, target);
-
- presence = gabble_presence_cache_get (conn->presence_cache, target);
-
- if ((GABBLE_ROSTER_SUBSCRIPTION_TO & subscription) == 0)
+ if (!gabble_roster_handle_sends_presence_to_us (conn->roster, target))
{
+ GabblePresence *presence = gabble_presence_cache_get (
+ conn->presence_cache, target);
+
if (NULL != presence)
{
presence->keep_unavailable = FALSE;
diff --git a/src/presence-cache.c b/src/presence-cache.c
index ec4e7fc21..86598254e 100644
--- a/src/presence-cache.c
+++ b/src/presence-cache.c
@@ -1624,8 +1624,9 @@ gabble_presence_parse_presence_message (GabblePresenceCache *cache,
break;
case LM_MESSAGE_SUB_TYPE_UNAVAILABLE:
- if (gabble_roster_handle_get_subscription (priv->conn->roster, handle)
- & GABBLE_ROSTER_SUBSCRIPTION_FROM)
+ /* FIXME: this should probably check for 'to', not 'from' */
+ if (gabble_roster_handle_gets_presence_from_us (priv->conn->roster,
+ handle))
presence_id = GABBLE_PRESENCE_OFFLINE;
else
presence_id = GABBLE_PRESENCE_UNKNOWN;