From 53998ab8b091c2830bc8b4d801099795dcf80c1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Sun, 9 Sep 2012 23:23:12 +0000 Subject: Facebook: Fixed changing status in Miranda after status change on web. git-svn-id: http://svn.miranda-ng.org/main/trunk@1553 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/FacebookRM/json.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'protocols') diff --git a/protocols/FacebookRM/json.cpp b/protocols/FacebookRM/json.cpp index b9bf8915a8..e79c6966cd 100644 --- a/protocols/FacebookRM/json.cpp +++ b/protocols/FacebookRM/json.cpp @@ -514,11 +514,17 @@ int facebook_json_parser::parse_messages( void* data, std::vector< facebook_mess else CallService(MS_PROTO_CONTACTISTYPING, (WPARAM)hContact, (LPARAM)PROTOTYPE_CONTACTTYPING_OFF); } - else if ( type.Value( ) == "visibility" ) // change of chat status + else if ( type.Value( ) == "privacy_changed") { - const Boolean visibility = objMember["visibility"]; - proto->Log(" Requested chat switch to %s", visibility ? "Online" : "Offline"); - proto->SetStatus( visibility ? ID_STATUS_ONLINE : ID_STATUS_INVISIBLE ); + const String& event_type = objMember["event"]; + const Object& event_data = objMember["data"]; + + if ( event_type.Value( ) == "visibility_update" ) + { // change of chat status + const Boolean visibility = event_data["visibility"]; + proto->Log(" Requested chat switch to %s", visibility ? "Online" : "Offline"); + proto->SetStatus( visibility ? ID_STATUS_ONLINE : ID_STATUS_INVISIBLE ); + } } else continue; -- cgit v1.2.3