Fix potential bugs in direct chat portal info updating

This commit is contained in:
Tulir Asokan 2022-07-05 11:02:54 +03:00
parent 9a6670eb93
commit 95aa6c01a6

View file

@ -246,7 +246,6 @@ func reuploadAvatar(intent *appservice.IntentAPI, url string) (id.ContentURI, er
}
func (puppet *Puppet) UpdateAvatar(source *User) bool {
oldAvatarID := puppet.Avatar
changed := source.updateAvatar(puppet.JID, &puppet.Avatar, &puppet.AvatarURL, &puppet.AvatarSet, puppet.log, puppet.DefaultIntent())
if !changed || puppet.Avatar == "unauthorized" {
return changed
@ -255,7 +254,6 @@ func (puppet *Puppet) UpdateAvatar(source *User) bool {
if err != nil {
puppet.log.Warnln("Failed to set avatar:", err)
} else {
puppet.log.Debugln("Updated avatar", oldAvatarID, "->", puppet.Avatar)
puppet.AvatarSet = true
}
go puppet.updatePortalAvatar()
@ -294,28 +292,28 @@ func (puppet *Puppet) updatePortalMeta(meta func(portal *Portal)) {
func (puppet *Puppet) updatePortalAvatar() {
puppet.updatePortalMeta(func(portal *Portal) {
if portal.Avatar == puppet.Avatar && portal.AvatarURL == puppet.AvatarURL && portal.AvatarSet {
return
}
portal.AvatarURL = puppet.AvatarURL
portal.Avatar = puppet.Avatar
portal.AvatarSet = false
defer portal.Update(nil)
if len(portal.MXID) > 0 {
_, err := portal.MainIntent().SetRoomAvatar(portal.MXID, puppet.AvatarURL)
if err != nil {
portal.log.Warnln("Failed to set avatar:", err)
} else {
portal.AvatarSet = true
portal.UpdateBridgeInfo()
}
}
portal.AvatarURL = puppet.AvatarURL
portal.Avatar = puppet.Avatar
portal.Update(nil)
})
}
func (puppet *Puppet) updatePortalName() {
puppet.updatePortalMeta(func(portal *Portal) {
if len(portal.MXID) > 0 {
_, err := portal.MainIntent().SetRoomName(portal.MXID, puppet.Displayname)
if err != nil {
portal.log.Warnln("Failed to set name:", err)
}
}
portal.Name = puppet.Displayname
portal.Update(nil)
portal.UpdateName(puppet.Displayname, types.EmptyJID, true)
})
}