fixed global avatar updation in the dialog

This commit is contained in:
Jedi18 2021-02-02 17:46:02 +05:30
parent cd3f719e43
commit 2ff3c0c97e
2 changed files with 28 additions and 11 deletions

View file

@ -24,6 +24,7 @@ UserProfile::UserProfile(QString roomid,
, model(parent)
{
fetchDeviceList(this->userid_);
globalAvatarUrl = "";
connect(cache::client(),
&Cache::verificationStatusChanged,
@ -56,16 +57,9 @@ UserProfile::UserProfile(QString roomid,
&UserProfile::setGlobalUsername,
Qt::QueuedConnection);
http::client()->get_profile(
userid_.toStdString(),
[this](const mtx::responses::Profile &res, mtx::http::RequestErr err) {
if (err) {
nhlog::net()->warn("failed to retrieve own profile info");
return;
if (isGlobalUserProfile()) {
getGlobalProfileData();
}
emit globalUsernameRetrieved(QString::fromStdString(res.display_name));
});
}
QHash<int, QByteArray>
@ -125,7 +119,10 @@ UserProfile::displayName()
QString
UserProfile::avatarUrl()
{
return cache::avatarUrl(roomid_, userid_);
return (isGlobalUserProfile() && globalAvatarUrl != "")
? globalAvatarUrl
: cache::avatarUrl(roomid_, userid_);
;
}
bool
@ -353,6 +350,7 @@ UserProfile::changeAvatar()
isLoading_ = false;
emit loadingChanged();
getGlobalProfileData();
});
} else {
// change room username
@ -394,3 +392,20 @@ UserProfile::isLoading() const
{
return isLoading_;
}
void
UserProfile::getGlobalProfileData()
{
http::client()->get_profile(
userid_.toStdString(),
[this](const mtx::responses::Profile &res, mtx::http::RequestErr err) {
if (err) {
nhlog::net()->warn("failed to retrieve own profile info");
return;
}
emit globalUsernameRetrieved(QString::fromStdString(res.display_name));
globalAvatarUrl = QString::fromStdString(res.avatar_url);
emit avatarUrlChanged();
});
}

View file

@ -134,10 +134,12 @@ protected slots:
private:
void updateRoomMemberState(mtx::events::state::Member member);
void getGlobalProfileData();
private:
QString roomid_, userid_;
QString globalUsername;
QString globalAvatarUrl;
DeviceInfoModel deviceList_;
bool isUserVerified = false;
bool hasMasterKey = false;