Browse Source

Revert "Always offer avatars to friend who come online"

This reverts commit e30fb4d919.
pull/2701/head
tux3 10 years ago
parent
commit
8f06dfe254
No known key found for this signature in database
GPG Key ID: 7E086DD661263264
  1. 5
      src/net/avatarbroadcaster.cpp
  2. 5
      src/net/avatarbroadcaster.h

5
src/net/avatarbroadcaster.cpp

@ -24,6 +24,7 @@
#include <QDebug> #include <QDebug>
QByteArray AvatarBroadcaster::avatarData; QByteArray AvatarBroadcaster::avatarData;
QMap<uint32_t, bool> AvatarBroadcaster::friendsSentTo;
static QMetaObject::Connection autoBroadcastConn; static QMetaObject::Connection autoBroadcastConn;
static auto autoBroadcast = [](uint32_t friendId, Status) static auto autoBroadcast = [](uint32_t friendId, Status)
@ -34,6 +35,7 @@ static auto autoBroadcast = [](uint32_t friendId, Status)
void AvatarBroadcaster::setAvatar(QByteArray data) void AvatarBroadcaster::setAvatar(QByteArray data)
{ {
avatarData = data; avatarData = data;
friendsSentTo.clear();
QVector<uint32_t> friends = Core::getInstance()->getFriendList(); QVector<uint32_t> friends = Core::getInstance()->getFriendList();
for (uint32_t friendId : friends) for (uint32_t friendId : friends)
@ -42,9 +44,12 @@ void AvatarBroadcaster::setAvatar(QByteArray data)
void AvatarBroadcaster::sendAvatarTo(uint32_t friendId) void AvatarBroadcaster::sendAvatarTo(uint32_t friendId)
{ {
if (friendsSentTo.contains(friendId) && friendsSentTo[friendId])
return;
if (!Core::getInstance()->isFriendOnline(friendId)) if (!Core::getInstance()->isFriendOnline(friendId))
return; return;
Core::getInstance()->sendAvatarFile(friendId, avatarData); Core::getInstance()->sendAvatarFile(friendId, avatarData);
friendsSentTo[friendId] = true;
} }
void AvatarBroadcaster::enableAutoBroadcast(bool state) void AvatarBroadcaster::enableAutoBroadcast(bool state)

5
src/net/avatarbroadcaster.h

@ -24,7 +24,9 @@
#include <QByteArray> #include <QByteArray>
#include <QMap> #include <QMap>
/// Takes care of broadcasting avatar changes to our friends /// Takes care of broadcasting avatar changes to our friends in a smart way
/// Cache a copy of our current avatar and friends who have received it
/// so we don't spam avatar transfers to a friend who already has it.
class AvatarBroadcaster class AvatarBroadcaster
{ {
private: private:
@ -40,6 +42,7 @@ public:
private: private:
static QByteArray avatarData; static QByteArray avatarData;
static QMap<uint32_t, bool> friendsSentTo;
}; };
#endif // AVATARBROADCASTER_H #endif // AVATARBROADCASTER_H

Loading…
Cancel
Save