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