Restore last status string when connecting

This commit is contained in:
Thorben Günther
2021-03-11 22:40:19 +01:00
parent aae252e1b5
commit 0fc3343d75
4 changed files with 23 additions and 5 deletions

View File

@@ -844,8 +844,6 @@ accounts_set_last_status(const char* const account_name, const char* const value
if (accounts_account_exists(account_name)) {
if (value) {
g_key_file_set_string(accounts, account_name, "presence.laststatus", value);
} else {
g_key_file_remove_key(accounts, account_name, "presence.laststatus", NULL);
}
_save_accounts();
}
@@ -952,6 +950,17 @@ accounts_get_login_presence(const char* const account_name)
return result;
}
char*
accounts_get_login_status(const char* const account_name)
{
gchar* setting = g_key_file_get_string(accounts, account_name, "presence.login", NULL);
gchar* status = NULL;
if (g_strcmp0(setting, "last") == 0) {
status = accounts_get_last_status(account_name);
}
return status;
}
static void
_save_accounts(void)
{

View File

@@ -76,6 +76,7 @@ void accounts_set_login_presence(const char* const account_name, const char* con
resource_presence_t accounts_get_login_presence(const char* const account_name);
char* accounts_get_last_status(const char* const account_name);
resource_presence_t accounts_get_last_presence(const char* const account_name);
char* accounts_get_login_status(const char* const account_name);
void accounts_set_priority_online(const char* const account_name, const gint value);
void accounts_set_priority_chat(const char* const account_name, const gint value);
void accounts_set_priority_away(const char* const account_name, const gint value);