diff --git a/include/transport/networkplugin.h b/include/transport/networkplugin.h index f94509e1..f31a556a 100644 --- a/include/transport/networkplugin.h +++ b/include/transport/networkplugin.h @@ -68,6 +68,7 @@ class NetworkPlugin { virtual void handleLogoutRequest(const std::string &user, const std::string &legacyName) = 0; virtual void handleMessageSendRequest(const std::string &user, const std::string &legacyName, const std::string &message) = 0; virtual void handleVCardRequest(const std::string &/*user*/, const std::string &/*legacyName*/, unsigned int /*id*/) {} + virtual void handleVCardUpdatedRequest(const std::string &/*user*/, const std::string &/*photo*/) {} virtual void handleJoinRoomRequest(const std::string &/*user*/, const std::string &/*room*/, const std::string &/*nickname*/, const std::string &/*pasword*/) {} virtual void handleLeaveRoomRequest(const std::string &/*user*/, const std::string &/*room*/) {} virtual void handleStatusChangeRequest(const std::string &/*user*/, int status, const std::string &statusMessage) {} diff --git a/src/networkplugin.cpp b/src/networkplugin.cpp index 11733cd1..a3d9ed16 100644 --- a/src/networkplugin.cpp +++ b/src/networkplugin.cpp @@ -311,7 +311,12 @@ void NetworkPlugin::handleVCardPayload(const std::string &data) { return; } - handleVCardRequest(payload.username(), payload.buddyname(), payload.id()); + if (payload.has_photo()) { + handleVCardUpdatedRequest(payload.username(), payload.photo()); + } + else if (!payload.buddyname().empty()) { + handleVCardRequest(payload.username(), payload.buddyname(), payload.id()); + } } void NetworkPlugin::handleBuddyChangedPayload(const std::string &data) {