diff options
author | Philip Withnall <philip.withnall@collabora.co.uk> | 2011-06-14 15:21:29 +0100 |
---|---|---|
committer | Philip Withnall <philip@tecnocode.co.uk> | 2011-06-22 11:59:15 +0100 |
commit | fb8474d72d9afae514522c243503e6d928642131 (patch) | |
tree | 899a2518b9581b6ba109ed8dd781c8a4efdefecb /folks | |
parent | 3c5ebf360d0dd934928683f6d1ee41c6ba106e91 (diff) |
Bug 648071 — Add support for presence status from Telepathy
Add a presence_status property to PresenceDetails to expose the detailed
presence status string that Telepathy exposes.
Closes: bgo#648071
Diffstat (limited to 'folks')
-rw-r--r-- | folks/individual.vala | 14 | ||||
-rw-r--r-- | folks/presence-details.vala | 12 |
2 files changed, 26 insertions, 0 deletions
diff --git a/folks/individual.vala b/folks/individual.vala index f4a1bcf..e6f998d 100644 --- a/folks/individual.vala +++ b/folks/individual.vala @@ -123,6 +123,13 @@ public class Folks.Individual : Object, /** * {@inheritDoc} + * + * @since 0.5.UNRELEASED + */ + public string presence_status { get; private set; } + + /** + * {@inheritDoc} */ public string presence_message { get; private set; } @@ -794,6 +801,7 @@ public class Folks.Individual : Object, private void _update_presence () { var presence_message = ""; + var presence_status = ""; var presence_type = Folks.PresenceType.UNSET; /* Choose the most available presence from our personas */ @@ -808,12 +816,15 @@ public class Folks.Individual : Object, { presence_type = presence.presence_type; presence_message = presence.presence_message; + presence_status = presence.presence_status; } } } if (presence_message == null) presence_message = ""; + if (presence_status == null) + presence_status = ""; /* only notify if the value has changed */ if (this.presence_message != presence_message) @@ -821,6 +832,9 @@ public class Folks.Individual : Object, if (this.presence_type != presence_type) this.presence_type = presence_type; + + if (this.presence_status != presence_status) + this.presence_status = presence_status; } private void _update_is_favourite () diff --git a/folks/presence-details.vala b/folks/presence-details.vala index acd4ac1..a23ecc7 100644 --- a/folks/presence-details.vala +++ b/folks/presence-details.vala @@ -99,6 +99,18 @@ public interface Folks.PresenceDetails : Object */ public abstract string presence_message { get; set; default = ""; } + /** + * The contact's detailed presence status. + * + * This is a more detailed representation of the contact's presence than + * {@link PresenceDetails.presence_type}. It may be empty, or one of a + * well-known set of strings, as defined in the Telepathy specification: + * {@link http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#description} + * + * @since 0.5.UNRELEASED + */ + public abstract string presence_status { get; set; default = ""; } + /* Rank the presence types for comparison purposes, with higher numbers * meaning more available */ private static int _type_availability (PresenceType type) |