From b90c1b8ca7ca0636df87770a13254cac73b76ffc Mon Sep 17 00:00:00 2001 From: Krille Date: Wed, 31 May 2023 12:05:36 +0200 Subject: [PATCH] fix: Do not display prevContent displayname and avatar for joined users --- lib/src/user.dart | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) 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