[next] telepathy-haze: Adapt for simplified presence mixin

Simon McVittie smcv at kemper.freedesktop.org
Thu Apr 10 06:01:17 PDT 2014


Module: telepathy-haze
Branch: next
Commit: fb22b7039d26bfcb92e6ffa8d924ffde86bef58e
URL:    http://cgit.freedesktop.org/telepathy/telepathy-haze/commit/?id=fb22b7039d26bfcb92e6ffa8d924ffde86bef58e

Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date:   Wed Apr  9 20:04:46 2014 +0100

Adapt for simplified presence mixin

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77191

---

 src/connection-presence.c |   43 ++++++++++++-------------------------------
 1 file changed, 12 insertions(+), 31 deletions(-)

diff --git a/src/connection-presence.c b/src/connection-presence.c
index 35b3820..2b1ea2b 100644
--- a/src/connection-presence.c
+++ b/src/connection-presence.c
@@ -27,11 +27,6 @@
 #include <telepathy-glib/telepathy-glib.h>
 #include <telepathy-glib/telepathy-glib-dbus.h>
 
-static const TpPresenceStatusOptionalArgumentSpec arg_specs[] = {
-    { "message", "s" },
-    { NULL, NULL }
-};
-
 typedef enum {
     HAZE_STATUS_AVAILABLE = 0,
     HAZE_STATUS_BUSY,
@@ -46,18 +41,14 @@ typedef enum {
 
 /* Indexed by HazeStatusIndex */
 static const TpPresenceStatusSpec statuses[] = {
-    { "available", TP_CONNECTION_PRESENCE_TYPE_AVAILABLE, TRUE,
-        arg_specs, NULL, NULL },
-    { "busy", TP_CONNECTION_PRESENCE_TYPE_BUSY, TRUE,
-        arg_specs, NULL, NULL },
-    { "away", TP_CONNECTION_PRESENCE_TYPE_AWAY, TRUE,
-        arg_specs, NULL, NULL },
-    { "xa", TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY, TRUE,
-        arg_specs, NULL, NULL },
-    { "hidden", TP_CONNECTION_PRESENCE_TYPE_HIDDEN, TRUE, NULL, NULL, NULL },
-    { "offline", TP_CONNECTION_PRESENCE_TYPE_OFFLINE, FALSE, NULL, NULL, NULL },
-    { "unknown", TP_CONNECTION_PRESENCE_TYPE_UNKNOWN, FALSE, NULL, NULL, NULL },
-    { NULL, TP_CONNECTION_PRESENCE_TYPE_UNSET, FALSE, NULL, NULL, NULL }
+    { "available", TP_CONNECTION_PRESENCE_TYPE_AVAILABLE, TRUE, TRUE },
+    { "busy", TP_CONNECTION_PRESENCE_TYPE_BUSY, TRUE, TRUE },
+    { "away", TP_CONNECTION_PRESENCE_TYPE_AWAY, TRUE, TRUE },
+    { "xa", TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY, TRUE, TRUE },
+    { "hidden", TP_CONNECTION_PRESENCE_TYPE_HIDDEN, TRUE, FALSE },
+    { "offline", TP_CONNECTION_PRESENCE_TYPE_OFFLINE, FALSE, FALSE },
+    { "unknown", TP_CONNECTION_PRESENCE_TYPE_UNKNOWN, FALSE, FALSE },
+    { NULL }
 };
 
 /* Indexed by HazeStatusIndex */
@@ -86,11 +77,9 @@ _get_tp_status (PurpleStatus *p_status)
 {
     PurpleStatusType *type;
     PurpleStatusPrimitive prim;
-    GHashTable *arguments = g_hash_table_new_full (g_str_hash, g_str_equal,
-        NULL, (GDestroyNotify) tp_g_value_slice_free);
     guint status_ix = -1;
     const gchar *xhtml_message;
-    gchar *message;
+    gchar *message = NULL;
     TpPresenceStatus *tp_status;
 
     if (p_status == NULL)
@@ -115,18 +104,12 @@ _get_tp_status (PurpleStatus *p_status)
         xhtml_message = purple_status_get_attr_string (p_status, "message");
         if (xhtml_message)
         {
-            GValue *message_v = g_slice_new0 (GValue);
-
             message = purple_markup_strip_html (xhtml_message);
-            g_value_init (message_v, G_TYPE_STRING);
-            g_value_set_string (message_v, message);
-            g_hash_table_insert (arguments, "message", message_v);
-            g_free (message);
         }
     }
 
-    tp_status = tp_presence_status_new (status_ix, arguments);
-    g_hash_table_destroy (arguments);
+    tp_status = tp_presence_status_new (status_ix, message);
+    g_free (message);
     return tp_status;
 }
 
@@ -281,9 +264,7 @@ _set_own_status (GObject *obj,
     if (status != NULL)
       {
         status_id = _get_purple_status_id (self, status->index);
-
-        if (status->optional_arguments != NULL)
-          message = tp_asv_get_string (status->optional_arguments, "message");
+        message = status->message;
       }
 
     if (status_id == NULL)



More information about the telepathy-commits mailing list