Merge pull request #1879 from famedly/krille/better-room-avatar-name-for-invites

refactor: Better avatar and names for invites
This commit is contained in:
td 2024-07-17 19:41:19 +05:30 committed by GitHub
commit 2b0fbd2268
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 15 additions and 16 deletions

View File

@ -263,11 +263,11 @@ class Room {
if (membership == Membership.invite) { if (membership == Membership.invite) {
final ownMember = unsafeGetUserFromMemoryOrFallback(client.userID!); final ownMember = unsafeGetUserFromMemoryOrFallback(client.userID!);
unsafeGetUserFromMemoryOrFallback(ownMember.senderId)
.calcDisplayname(i18n: i18n);
if (ownMember.senderId != ownMember.stateKey) { if (ownMember.senderId != ownMember.stateKey) {
return unsafeGetUserFromMemoryOrFallback(ownMember.senderId) return i18n.invitedBy(
.calcDisplayname(i18n: i18n); unsafeGetUserFromMemoryOrFallback(ownMember.senderId)
.calcDisplayname(i18n: i18n),
);
} }
} }
if (membership == Membership.leave) { if (membership == Membership.leave) {
@ -291,25 +291,19 @@ class Room {
/// that you have the room members, call and await `Room.loadHeroUsers()` /// that you have the room members, call and await `Room.loadHeroUsers()`
/// before. /// before.
Uri? get avatar { Uri? get avatar {
// Check content of `m.room.avatar`
final avatarUrl = final avatarUrl =
getState(EventTypes.RoomAvatar)?.content.tryGet<String>('url'); getState(EventTypes.RoomAvatar)?.content.tryGet<String>('url');
if (avatarUrl != null) { if (avatarUrl != null) {
return Uri.tryParse(avatarUrl); return Uri.tryParse(avatarUrl);
} }
final heroes = summary.mHeroes; // Room has no avatar and is not a direct chat
if (heroes != null && heroes.length == 1) { final directChatMatrixID = this.directChatMatrixID;
final hero = getState(EventTypes.RoomMember, heroes.first); if (directChatMatrixID != null) {
if (hero != null) { return unsafeGetUserFromMemoryOrFallback(directChatMatrixID).avatarUrl;
return hero.asUser(this).avatarUrl;
}
}
if (isDirectChat) {
final user = directChatMatrixID;
if (user != null) {
return unsafeGetUserFromMemoryOrFallback(user).avatarUrl;
}
} }
return null; return null;
} }

View File

@ -248,6 +248,9 @@ class MatrixDefaultLocalizations extends MatrixLocalizations {
String youInvitedBy(String senderName) => String youInvitedBy(String senderName) =>
'You have been invited by $senderName'; 'You have been invited by $senderName';
@override
String invitedBy(String senderName) => 'Invited by $senderName';
@override @override
String youInvitedUser(String targetName) => 'You invited $targetName'; String youInvitedUser(String targetName) => 'You invited $targetName';

View File

@ -62,6 +62,8 @@ abstract class MatrixLocalizations {
String youInvitedBy(String senderName); String youInvitedBy(String senderName);
String invitedBy(String senderName);
String youInvitedUser(String targetName); String youInvitedUser(String targetName);
String youUnbannedUser(String targetName); String youUnbannedUser(String targetName);