eion/purple-hangouts

481a6792f4d3
Parents 0eb0d30b9b5c
Children c87cdb027d36
Added an account option to "treat invisible users as offline"
Fixes issue #156
--- a/hangouts_events.c Mon Jan 29 09:01:29 2018 +1300
+++ b/hangouts_events.c Tue Feb 06 11:20:40 2018 +1300
@@ -405,6 +405,8 @@
status_id = purple_primitive_get_id_from_type(PURPLE_STATUS_AWAY);
} else if (available) {
status_id = purple_primitive_get_id_from_type(PURPLE_STATUS_EXTENDED_AWAY);
+ } else if (purple_account_get_bool(ha->account, "treat_invisible_as_offline", FALSE)) {
+ status_id = "gone";
} else {
// Hangouts contacts are never really unreachable, just invisible
status_id = purple_primitive_get_id_from_type(PURPLE_STATUS_INVISIBLE);
--- a/libhangouts.c Mon Jan 29 09:01:29 2018 +1300
+++ b/libhangouts.c Tue Feb 06 11:20:40 2018 +1300
@@ -87,6 +87,9 @@
option = purple_account_option_bool_new(N_("Un-Googlify URLs"), "unravel_google_url", FALSE);
account_options = g_list_append(account_options, option);
+ option = purple_account_option_bool_new(N_("Treat invisible users as offline"), "treat_invisible_as_offline", FALSE);
+ account_options = g_list_append(account_options, option);
+
return account_options;
}
@@ -477,6 +480,9 @@
status = purple_status_type_new_full(PURPLE_STATUS_OFFLINE, NULL, NULL, TRUE, TRUE, FALSE);
types = g_list_append(types, status);
+ status = purple_status_type_new_with_attrs(PURPLE_STATUS_OFFLINE, "gone", NULL, FALSE, FALSE, FALSE, "message", _("Mood"), purple_value_new(PURPLE_TYPE_STRING), NULL);
+ types = g_list_append(types, status);
+
status = purple_status_type_new_with_attrs(PURPLE_STATUS_INVISIBLE, NULL, NULL, FALSE, FALSE, FALSE, "message", _("Mood"), purple_value_new(PURPLE_TYPE_STRING), NULL);
types = g_list_append(types, status);