mirror of
https://github.com/profanity-im/profanity.git
synced 2025-02-02 15:08:15 -05:00
Improve sv_ev_roster_received() last activity check
We don't need to do all the timing stuff if last activity is disabled anyways.
This commit is contained in:
parent
5d711639b0
commit
25501a5d8a
@ -153,34 +153,32 @@ sv_ev_roster_received(void)
|
|||||||
// send initial presence
|
// send initial presence
|
||||||
resource_presence_t conn_presence = accounts_get_login_presence(account_name);
|
resource_presence_t conn_presence = accounts_get_login_presence(account_name);
|
||||||
char *last_activity_str = accounts_get_last_activity(account_name);
|
char *last_activity_str = accounts_get_last_activity(account_name);
|
||||||
if (last_activity_str) {
|
if (prefs_get_boolean(PREF_LASTACTIVITY) && last_activity_str) {
|
||||||
GDateTime *nowdt = g_date_time_new_now_utc();
|
|
||||||
|
|
||||||
GTimeVal lasttv;
|
GTimeVal lasttv;
|
||||||
|
GDateTime *nowdt = g_date_time_new_now_utc();
|
||||||
gboolean res = g_time_val_from_iso8601(last_activity_str, &lasttv);
|
gboolean res = g_time_val_from_iso8601(last_activity_str, &lasttv);
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
GDateTime *lastdt = g_date_time_new_from_timeval_utc(&lasttv);
|
GDateTime *lastdt = g_date_time_new_from_timeval_utc(&lasttv);
|
||||||
GTimeSpan diff_micros = g_date_time_difference(nowdt, lastdt);
|
GTimeSpan diff_micros = g_date_time_difference(nowdt, lastdt);
|
||||||
int diff_secs = (diff_micros / 1000) / 1000;
|
int diff_secs = (diff_micros / 1000) / 1000;
|
||||||
if (prefs_get_boolean(PREF_LASTACTIVITY)) {
|
|
||||||
connection_set_presence_msg(NULL);
|
connection_set_presence_msg(NULL);
|
||||||
cl_ev_presence_send(conn_presence, diff_secs);
|
cl_ev_presence_send(conn_presence, diff_secs);
|
||||||
|
|
||||||
|
g_date_time_unref(lastdt);
|
||||||
} else {
|
} else {
|
||||||
connection_set_presence_msg(NULL);
|
connection_set_presence_msg(NULL);
|
||||||
cl_ev_presence_send(conn_presence, 0);
|
cl_ev_presence_send(conn_presence, 0);
|
||||||
}
|
}
|
||||||
g_date_time_unref(lastdt);
|
g_date_time_unref(nowdt);
|
||||||
} else {
|
} else {
|
||||||
connection_set_presence_msg(NULL);
|
connection_set_presence_msg(NULL);
|
||||||
cl_ev_presence_send(conn_presence, 0);
|
cl_ev_presence_send(conn_presence, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(last_activity_str);
|
free(last_activity_str);
|
||||||
g_date_time_unref(nowdt);
|
|
||||||
} else {
|
|
||||||
connection_set_presence_msg(NULL);
|
|
||||||
cl_ev_presence_send(conn_presence, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *fulljid = connection_get_fulljid();
|
const char *fulljid = connection_get_fulljid();
|
||||||
plugins_on_connect(account_name, fulljid);
|
plugins_on_connect(account_name, fulljid);
|
||||||
|
Loading…
Reference in New Issue
Block a user