From 4ad68f3d27feb1307e76c0cf25617a0bcf9de507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Sun, 10 Jun 2012 21:18:00 +0000 Subject: FacebookRM sync git-svn-id: http://svn.miranda-ng.org/main/trunk@385 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/FacebookRM/avatars.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'protocols/FacebookRM/avatars.cpp') diff --git a/protocols/FacebookRM/avatars.cpp b/protocols/FacebookRM/avatars.cpp index a316d9fe68..6b7e735c29 100644 --- a/protocols/FacebookRM/avatars.cpp +++ b/protocols/FacebookRM/avatars.cpp @@ -180,11 +180,19 @@ int FacebookProto::GetAvatarInfo(WPARAM wParam, LPARAM lParam) if (!lParam) return GAIR_NOAVATAR; - PROTO_AVATAR_INFORMATION* AI = ( PROTO_AVATAR_INFORMATION* )lParam; + PROTO_AVATAR_INFORMATION* AI = (PROTO_AVATAR_INFORMATION*)lParam; if (GetDbAvatarInfo(*AI, NULL)) { - if (_access(AI->filename, 0) || (wParam & GAIF_FORCE)) + bool fileExist = _access(AI->filename, 0) == 0; + + bool needLoad; + if (AI->hContact) + needLoad = (wParam & GAIF_FORCE) && (!fileExist || DBGetContactSettingByte(AI->hContact, "ContactPhoto", "NeedUpdate", 0)); + else + needLoad = (wParam & GAIF_FORCE) || !fileExist; + + if (needLoad) { LOG("***** Starting avatar request thread for %s", AI->filename); ScopedLock s( avatar_lock_ ); @@ -196,12 +204,11 @@ int FacebookProto::GetAvatarInfo(WPARAM wParam, LPARAM lParam) if (is_empty) ForkThread(&FacebookProto::UpdateAvatarWorker, this, NULL); } - return GAIR_WAITFOR; } + else if (fileExist) + return GAIR_SUCCESS; - LOG("***** Giving AvatarInfo: %s", AI->filename); - return GAIR_SUCCESS; } return GAIR_NOAVATAR; } -- cgit v1.2.3