summaryrefslogtreecommitdiff
path: root/folks
diff options
context:
space:
mode:
authorPhilip Withnall <philip.withnall@collabora.co.uk>2011-06-14 15:21:29 +0100
committerPhilip Withnall <philip@tecnocode.co.uk>2011-06-22 11:59:15 +0100
commitfb8474d72d9afae514522c243503e6d928642131 (patch)
tree899a2518b9581b6ba109ed8dd781c8a4efdefecb /folks
parent3c5ebf360d0dd934928683f6d1ee41c6ba106e91 (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.vala14
-rw-r--r--folks/presence-details.vala12
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)