]> www.infradead.org Git - pidgin-chime.git/commitdiff
Separate out chime_conversation_send_typing()
authorDavid Woodhouse <dwmw@amazon.co.uk>
Wed, 9 Aug 2017 21:51:34 +0000 (22:51 +0100)
committerDavid Woodhouse <dwmw@amazon.co.uk>
Wed, 9 Aug 2017 21:51:34 +0000 (22:51 +0100)
chime-conversation.c
chime-conversation.h
conversations.c

index 321caffae25d21f4ea922b015852c770da5867b5..e5051d52db42ce0077a5fd194faf711f0649d88b 100644 (file)
@@ -767,3 +767,35 @@ void chime_connection_foreach_conversation(ChimeConnection *cxn, ChimeConversati
 
        chime_object_collection_foreach_object(cxn, &priv->conversations, (ChimeObjectCB)cb, cbdata);
 }
+
+void chime_conversation_send_typing(ChimeConnection *cxn, ChimeConversation *conv,
+                                   gboolean typing)
+{
+       ChimeConnectionPrivate *priv = CHIME_CONNECTION_GET_PRIVATE (cxn);
+       JsonBuilder *jb = json_builder_new();
+
+       jb = json_builder_begin_object(jb);
+       jb = json_builder_set_member_name(jb, "channel");
+       jb = json_builder_add_string_value(jb, conv->channel);
+       jb = json_builder_set_member_name(jb, "data");
+       jb = json_builder_begin_object(jb);
+       jb = json_builder_set_member_name(jb, "klass");
+       jb = json_builder_add_string_value(jb, "TypingIndicator");
+       jb = json_builder_set_member_name(jb, "state");
+       jb = json_builder_add_boolean_value(jb, typing);
+       jb = json_builder_end_object(jb);
+       jb = json_builder_set_member_name(jb, "except");
+       jb = json_builder_begin_array(jb);
+       jb = json_builder_add_string_value(jb, priv->ws_key);
+       jb = json_builder_end_array(jb);
+       jb = json_builder_set_member_name(jb, "type");
+       jb = json_builder_add_string_value(jb, "publish");
+       jb = json_builder_end_object(jb);
+
+       JsonNode *node = json_builder_get_root(jb);
+       chime_connection_jugg_send(cxn, node);
+
+       json_node_unref(node);
+       g_object_unref(jb);
+
+}
index 2638f6ddbd08bf81b1ac11a516fd23ece5304e97..c2e05802b303369416d3fe5b9780aeec89e73540 100644 (file)
@@ -54,6 +54,9 @@ typedef void (*ChimeConversationCB) (ChimeConnection *, ChimeConversation *, gpo
 void chime_connection_foreach_conversation(ChimeConnection *cxn, ChimeConversationCB cb,
                                   gpointer cbdata);
 
+void chime_conversation_send_typing(ChimeConnection *cxn, ChimeConversation *conv,
+                                   gboolean typing);
+
 G_END_DECLS
 
 #endif /* __CHIME_CONVERSATION_H__ */
index 6a91865fd526adcae629bd0087f815b369ef7ee9..2086116f1a01f78b22080b87abd9df13b7f89d32 100644 (file)
@@ -272,30 +272,7 @@ unsigned int chime_send_typing(PurpleConnection *conn, const char *name, PurpleT
        if (!imd)
                return 0;
 
-       JsonBuilder *jb = json_builder_new();
-       jb = json_builder_begin_object(jb);
-       jb = json_builder_set_member_name(jb, "channel");
-       jb = json_builder_add_string_value(jb, chime_conversation_get_channel(imd->conv));
-       jb = json_builder_set_member_name(jb, "data");
-       jb = json_builder_begin_object(jb);
-       jb = json_builder_set_member_name(jb, "klass");
-       jb = json_builder_add_string_value(jb, "TypingIndicator");
-       jb = json_builder_set_member_name(jb, "state");
-       jb = json_builder_add_boolean_value(jb, state == PURPLE_TYPING);
-       jb = json_builder_end_object(jb);
-       jb = json_builder_set_member_name(jb, "except");
-       jb = json_builder_begin_array(jb);
-       jb = json_builder_add_string_value(jb, priv->ws_key);
-       jb = json_builder_end_array(jb);
-       jb = json_builder_set_member_name(jb, "type");
-       jb = json_builder_add_string_value(jb, "publish");
-       jb = json_builder_end_object(jb);
-
-       JsonNode *node = json_builder_get_root(jb);
-       chime_connection_jugg_send(cxn, node);
-
-       json_node_unref(node);
-       g_object_unref(jb);
+       chime_conversation_send_typing(cxn, imd->conv, state == PURPLE_TYPING);
 
        return 0;
 }