From 02224ea7bbb89b0cbebfe1fb645f7ff1ea8f9a52 Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 2 Oct 2012 00:03:53 +0100 Subject: [PATCH] Added status handler code to profanity module --- src/jabber.c | 16 ++++------------ src/profanity.c | 20 ++++++++++++++++++++ src/profanity.h | 2 ++ 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/jabber.c b/src/jabber.c index b057e637..16131fb0 100644 --- a/src/jabber.c +++ b/src/jabber.c @@ -490,19 +490,11 @@ _jabber_presence_handler(xmpp_conn_t * const conn, status_str = NULL; if (strcmp(short_jid, short_from) !=0) { - if (type == NULL) {// online - gboolean result = contact_list_add(short_from, show_str, status_str); - if (result) { - win_contact_online(short_from, show_str, status_str); - } - } else {// offline - gboolean result = contact_list_remove(short_from); - if (result) { - win_contact_offline(short_from, show_str, status_str); - } + if (type == NULL) { + prof_handle_contact_online(short_from, show_str, status_str); + } else { + prof_handle_contact_offline(short_from, show_str, status_str); } - - win_page_off(); } return 1; diff --git a/src/profanity.c b/src/profanity.c index ff0e5518..01be4289 100644 --- a/src/profanity.c +++ b/src/profanity.c @@ -227,6 +227,26 @@ prof_handle_failed_login(void) log_info("disconnected"); } +void +prof_handle_contact_online(char *contact, char *show, char *status) +{ + gboolean result = contact_list_add(contact, show, status); + if (result) { + win_contact_online(contact, show, status); + } + win_page_off(); +} + +void +prof_handle_contact_offline(char *contact, char *show, char *status) +{ + gboolean result = contact_list_remove(contact); + if (result) { + win_contact_offline(contact, show, status); + } + win_page_off(); +} + static void _create_config_directory() { diff --git a/src/profanity.h b/src/profanity.h index e6d79d3e..af6b3e11 100644 --- a/src/profanity.h +++ b/src/profanity.h @@ -29,6 +29,8 @@ void prof_handle_login_success(const char *jid); void prof_handle_lost_connection(void); void prof_handle_failed_login(void); void prof_handle_typing(char *from); +void prof_handle_contact_online(char *contact, char *show, char *status); +void prof_handle_contact_offline(char *contact, char *show, char *status); void prof_handle_incoming_message(char *from, char *message); void profanity_shutdown_init(void); void profanity_shutdown(void);