Remove status from cl_ev_presence_send

fixes #888
This commit is contained in:
James Booth
2017-01-15 23:59:31 +00:00
parent b64646979e
commit 2b7894ccff
16 changed files with 71 additions and 34 deletions

View File

@@ -125,7 +125,7 @@ caps_add_feature(char *feature)
// resend presence to update server's disco info data for this client
if (connection_get_status() == JABBER_CONNECTED) {
resource_presence_t last_presence = accounts_get_last_presence(session_get_account_name());
cl_ev_presence_send(last_presence, connection_get_presence_msg(), 0);
cl_ev_presence_send(last_presence, 0);
}
}
@@ -143,7 +143,7 @@ caps_remove_feature(char *feature)
// resend presence to update server's disco info data for this client
if (connection_get_status() == JABBER_CONNECTED) {
resource_presence_t last_presence = accounts_get_last_presence(session_get_account_name());
cl_ev_presence_send(last_presence, connection_get_presence_msg(), 0);
cl_ev_presence_send(last_presence, 0);
}
}

View File

@@ -46,7 +46,6 @@ jabber_conn_status_t connection_connect(const char *const fulljid, const char *c
void connection_disconnect(void);
void connection_set_disconnected(void);
void connection_set_presence_msg(const char *const message);
void connection_set_priority(const int priority);
void connection_set_priority(int priority);
void connection_set_disco_items(GSList *items);

View File

@@ -191,21 +191,20 @@ presence_reset_sub_request_search(void)
}
void
presence_send(const resource_presence_t presence_type, const char *const msg, const int idle, char *signed_status)
presence_send(const resource_presence_t presence_type, const int idle, char *signed_status)
{
if (connection_get_status() != JABBER_CONNECTED) {
log_warning("Error setting presence, not connected.");
return;
}
char *msg = connection_get_presence_msg();
if (msg) {
log_debug("Updating presence: %s, \"%s\"", string_from_resource_presence(presence_type), msg);
} else {
log_debug("Updating presence: %s", string_from_resource_presence(presence_type));
}
connection_set_presence_msg(msg);
const int pri = accounts_get_priority_for_presence_type(session_get_account_name(), presence_type);
connection_set_priority(pri);

View File

@@ -412,10 +412,11 @@ session_check_autoaway(void)
// send away presence with last activity
char *message = prefs_get_string(PREF_AUTOAWAY_MESSAGE);
connection_set_presence_msg(message);
if (prefs_get_boolean(PREF_LASTACTIVITY)) {
cl_ev_presence_send(RESOURCE_AWAY, message, idle_ms / 1000);
cl_ev_presence_send(RESOURCE_AWAY, idle_ms / 1000);
} else {
cl_ev_presence_send(RESOURCE_AWAY, message, 0);
cl_ev_presence_send(RESOURCE_AWAY, 0);
}
int pri = accounts_get_priority_for_presence_type(account, RESOURCE_AWAY);
@@ -432,7 +433,8 @@ session_check_autoaway(void)
activity_state = ACTIVITY_ST_IDLE;
// send current presence with last activity
cl_ev_presence_send(curr_presence, curr_status, idle_ms / 1000);
connection_set_presence_msg(curr_status);
cl_ev_presence_send(curr_presence, idle_ms / 1000);
}
}
break;
@@ -443,7 +445,8 @@ session_check_autoaway(void)
cons_show("No longer idle.");
// send current presence without last activity
cl_ev_presence_send(curr_presence, curr_status, 0);
connection_set_presence_msg(curr_status);
cl_ev_presence_send(curr_presence, 0);
}
break;
case ACTIVITY_ST_AWAY:
@@ -452,10 +455,11 @@ session_check_autoaway(void)
// send extended away presence with last activity
char *message = prefs_get_string(PREF_AUTOXA_MESSAGE);
connection_set_presence_msg(message);
if (prefs_get_boolean(PREF_LASTACTIVITY)) {
cl_ev_presence_send(RESOURCE_XA, message, idle_ms / 1000);
cl_ev_presence_send(RESOURCE_XA, idle_ms / 1000);
} else {
cl_ev_presence_send(RESOURCE_XA, message, 0);
cl_ev_presence_send(RESOURCE_XA, 0);
}
int pri = accounts_get_priority_for_presence_type(account, RESOURCE_XA);
@@ -473,7 +477,8 @@ session_check_autoaway(void)
cons_show("No longer idle.");
// send saved presence without last activity
cl_ev_presence_send(saved_presence, saved_status, 0);
connection_set_presence_msg(saved_status);
cl_ev_presence_send(saved_presence, 0);
contact_presence_t contact_pres = contact_presence_from_resource_presence(saved_presence);
title_bar_set_presence(contact_pres);
}
@@ -485,7 +490,8 @@ session_check_autoaway(void)
cons_show("No longer idle.");
// send saved presence without last activity
cl_ev_presence_send(saved_presence, saved_status, 0);
connection_set_presence_msg(saved_status);
cl_ev_presence_send(saved_presence, 0);
contact_presence_t contact_pres = contact_presence_from_resource_presence(saved_presence);
title_bar_set_presence(contact_pres);
}

View File

@@ -120,6 +120,7 @@ char* session_get_account_name(void);
jabber_conn_status_t connection_get_status(void);
char *connection_get_presence_msg(void);
void connection_set_presence_msg(const char *const message);
const char* connection_get_fulljid(void);
char* connection_create_uuid(void);
void connection_free_uuid(char *uuid);
@@ -153,7 +154,7 @@ char* presence_sub_request_find(const char *const search_str);
void presence_join_room(const char *const room, const char *const nick, const char *const passwd);
void presence_change_room_nick(const char *const room, const char *const nick);
void presence_leave_chat_room(const char *const room_jid);
void presence_send(resource_presence_t status, const char *const msg, int idle, char *signed_status);
void presence_send(resource_presence_t status, int idle, char *signed_status);
gboolean presence_sub_request_exists(const char *const bare_jid);
void iq_enable_carbons(void);