summaryrefslogtreecommitdiff
path: root/protocols/FacebookRM/src/process.cpp
diff options
context:
space:
mode:
authorRobert Pösel <robyer@seznam.cz>2016-09-04 14:05:03 +0000
committerRobert Pösel <robyer@seznam.cz>2016-09-04 14:05:03 +0000
commit4529adfa0ed7e69ffc3729144cd07c9a482f150f (patch)
tree1e79ce5a12e94b889b67cfcb964db9cce72bc497 /protocols/FacebookRM/src/process.cpp
parent3dd0a1f40f3234973f41ed96d7d4890a560d95da (diff)
Facebook: Fix sometimes wrongly identified users as friends
Also fixes related problem when it was showing "user was removed from server list" popup even when user was never your friend (due to problem above). git-svn-id: http://svn.miranda-ng.org/main/trunk@17252 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/FacebookRM/src/process.cpp')
-rw-r--r--protocols/FacebookRM/src/process.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/protocols/FacebookRM/src/process.cpp b/protocols/FacebookRM/src/process.cpp
index a2b533cda9..c714c11419 100644
--- a/protocols/FacebookRM/src/process.cpp
+++ b/protocols/FacebookRM/src/process.cpp
@@ -138,20 +138,24 @@ void FacebookProto::ProcessFriendList(void*)
fbu->deleted = true;
}
else {
- // Contact was removed from "server-list", notify it
+ // Contact is not on "server-list", notify it was removed (if it was real friend before)
- // Wasn't we already been notified about this contact? And was this real friend?
- if (!getDword(hContact, FACEBOOK_KEY_DELETED, 0) && getByte(hContact, FACEBOOK_KEY_CONTACT_TYPE, 0) == CONTACT_FRIEND) {
- setDword(hContact, FACEBOOK_KEY_DELETED, ::time(NULL));
+ // Was this real friend before?
+ if (getByte(hContact, FACEBOOK_KEY_CONTACT_TYPE, CONTACT_NONE) == CONTACT_FRIEND) {
setByte(hContact, FACEBOOK_KEY_CONTACT_TYPE, CONTACT_NONE);
- // Notify it, if user wants to be notified
- if (getByte(FACEBOOK_KEY_EVENT_FRIENDSHIP_ENABLE, DEFAULT_EVENT_FRIENDSHIP_ENABLE)) {
- std::string url = FACEBOOK_URL_PROFILE + std::string(id);
- std::string contactname = getContactName(this, hContact, id);
+ // Wasn't we already been notified about this contact?
+ if (!getDword(hContact, FACEBOOK_KEY_DELETED, 0)) {
+ setDword(hContact, FACEBOOK_KEY_DELETED, ::time(NULL));
- ptrW szTitle(mir_utf8decodeW(contactname.c_str()));
- NotifyEvent(szTitle, TranslateT("Contact is no longer on server-list."), hContact, EVENT_FRIENDSHIP, &url);
+ // Notify it, if user wants to be notified
+ if (getByte(FACEBOOK_KEY_EVENT_FRIENDSHIP_ENABLE, DEFAULT_EVENT_FRIENDSHIP_ENABLE)) {
+ std::string url = FACEBOOK_URL_PROFILE + std::string(id);
+ std::string contactname = getContactName(this, hContact, id);
+
+ ptrW szTitle(mir_utf8decodeW(contactname.c_str()));
+ NotifyEvent(szTitle, TranslateT("Contact is no longer on server-list."), hContact, EVENT_FRIENDSHIP, &url);
+ }
}
}
}