Now avatars are properly autogenerated, reduced vCard spam

This commit is contained in:
Blue 2024-01-31 20:22:49 -03:00
parent 93c5be412e
commit 0be2648849
Signed by untrusted user: blue
GPG key ID: 9B203B252A63EE38
9 changed files with 76 additions and 92 deletions

View file

@ -367,19 +367,23 @@ void Core::Account::onPresenceReceived(const QXmppPresence& p_presence) {
vh->handlePresenceOfMyAccountChange(p_presence);
} else {
RosterItem* item = rh->getRosterItem(jid);
if (item != nullptr)
item->handlePresence(p_presence);
if (item != nullptr) {
if (item->isMuc()) //MUC presence is handled by inner muc events
return;
else
item->handlePresence(p_presence);
}
}
switch (p_presence.type()) {
case QXmppPresence::Error:
qDebug() << "An error reported by presence from" << id << p_presence.error().text();
break;
case QXmppPresence::Available:{
case QXmppPresence::Available: {
QDateTime lastInteraction = p_presence.lastUserInteraction();
if (!lastInteraction.isValid()) {
if (!lastInteraction.isValid())
lastInteraction = QDateTime::currentDateTimeUtc();
}
emit addPresence(jid, resource, {
{"lastActivity", lastInteraction},
{"availability", p_presence.availableStatusType()}, //TODO check and handle invisible
@ -392,8 +396,7 @@ void Core::Account::onPresenceReceived(const QXmppPresence& p_presence) {
)
}
});
}
break;
} break;
case QXmppPresence::Unavailable:
emit removePresence(jid, resource);
break;