[empathy/next: 64/79] tp_chat_build_message: use new TpMessage APIs from 0.99.8



commit 87836943378ddc37b6c8b6f1bfae4d8b836a6c65
Author: Simon McVittie <simon mcvittie collabora co uk>
Date:   Tue Mar 25 19:06:59 2014 +0000

    tp_chat_build_message: use new TpMessage APIs from 0.99.8

 libempathy/empathy-tp-chat.c |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 deletions(-)
---
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index f646a23..8f3f491 100644
--- a/libempathy/empathy-tp-chat.c
+++ b/libempathy/empathy-tp-chat.c
@@ -301,20 +301,20 @@ handle_delivery_report (EmpathyTpChat *self,
     TpMessage *message)
 {
   TpDeliveryStatus delivery_status;
-  const GHashTable *header;
+  GVariant *header;
   TpChannelTextSendError delivery_error;
   gboolean valid;
-  GPtrArray *echo;
+  GVariant *echo = NULL;
   const gchar *message_body = NULL;
   const gchar *delivery_dbus_error;
   const gchar *delivery_token = NULL;
 
-  header = tp_message_peek (message, 0);
+  header = tp_message_dup_part (message, 0);
   if (header == NULL)
     goto out;
 
-  delivery_token = tp_asv_get_string (header, "delivery-token");
-  delivery_status = tp_asv_get_uint32 (header, "delivery-status", &valid);
+  delivery_token = tp_vardict_get_string (header, "delivery-token");
+  delivery_status = tp_vardict_get_uint32 (header, "delivery-status", &valid);
 
   if (!valid)
     {
@@ -340,23 +340,24 @@ handle_delivery_report (EmpathyTpChat *self,
       goto out;
     }
 
-  delivery_error = tp_asv_get_uint32 (header, "delivery-error", &valid);
+  delivery_error = tp_vardict_get_uint32 (header, "delivery-error", &valid);
   if (!valid)
     delivery_error = TP_CHANNEL_TEXT_SEND_ERROR_UNKNOWN;
 
-  delivery_dbus_error = tp_asv_get_string (header, "delivery-dbus-error");
+  delivery_dbus_error = tp_vardict_get_string (header, "delivery-dbus-error");
 
   /* TODO: ideally we should use tp-glib API giving us the echoed message as a
    * TpMessage. (fdo #35884) */
-  echo = tp_asv_get_boxed (header, "delivery-echo",
-    TP_ARRAY_TYPE_MESSAGE_PART_LIST);
-  if (echo != NULL && echo->len >= 2)
+  if (!g_variant_lookup (header, "delivery-echo", "&aa{sv}", &echo))
+    echo = NULL;
+
+  if (echo != NULL && g_variant_n_children (echo) >= 2)
     {
-      const GHashTable *echo_body;
+      GVariant *echo_body;
 
-      echo_body = g_ptr_array_index (echo, 1);
-      if (echo_body != NULL)
-        message_body = tp_asv_get_string (echo_body, "content");
+      echo_body = g_variant_get_child_value (echo, 1);
+      message_body = tp_vardict_get_string (echo_body, "content");
+      g_variant_unref (echo_body);
     }
 
   tp_chat_set_delivery_status (self, delivery_token,
@@ -365,6 +366,12 @@ handle_delivery_report (EmpathyTpChat *self,
       delivery_error, delivery_dbus_error);
 
 out:
+  if (echo != NULL)
+    g_variant_unref (echo);
+
+  if (header != NULL)
+    g_variant_unref (header);
+
   tp_text_channel_ack_message_async (TP_TEXT_CHANNEL (self),
     message, NULL, NULL);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]