fix: Do not display prevContent displayname and avatar for joined users

This commit is contained in:
Krille 2023-05-31 12:05:36 +02:00
parent b27222106d
commit b90c1b8ca7
No known key found for this signature in database
1 changed files with 8 additions and 9 deletions

View File

@ -70,7 +70,9 @@ class User extends Event {
/// The displayname of the user if the user has set one. /// The displayname of the user if the user has set one.
String? get displayName => String? get displayName =>
content.tryGet<String>('displayname') ?? content.tryGet<String>('displayname') ??
prevContent?.tryGet<String>('displayname'); (membership == Membership.join
? null
: prevContent?.tryGet<String>('displayname'));
/// Returns the power level of this user. /// Returns the power level of this user.
int get powerLevel => room.getPowerLevelByUserId(id); int get powerLevel => room.getPowerLevelByUserId(id);
@ -89,14 +91,11 @@ class User extends Event {
/// The avatar if the user has one. /// The avatar if the user has one.
Uri? get avatarUrl { Uri? get avatarUrl {
final prevContent = this.prevContent; final uri = content.tryGet<String>('avatar_url') ??
return content.containsKey('avatar_url') (membership == Membership.join
? (content['avatar_url'] is String ? null
? Uri.tryParse(content['avatar_url']) : prevContent?.tryGet<String>('avatar_url'));
: null) return uri == null ? null : Uri.tryParse(uri);
: (prevContent != null && prevContent['avatar_url'] is String
? Uri.tryParse(prevContent['avatar_url'])
: null);
} }
/// Returns the displayname or the local part of the Matrix ID if the user /// Returns the displayname or the local part of the Matrix ID if the user