Skip to content

Commit

Permalink
Merge pull request #1879 from famedly/krille/better-room-avatar-name-…
Browse files Browse the repository at this point in the history
…for-invites

refactor: Better avatar and names for invites
  • Loading branch information
td-famedly authored Jul 17, 2024
2 parents 0ac0ef6 + 2e51b45 commit 2b0fbd2
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 16 deletions.
26 changes: 10 additions & 16 deletions lib/src/room.dart
Original file line number Diff line number Diff line change
Expand Up @@ -263,11 +263,11 @@ class Room {
if (membership == Membership.invite) {
final ownMember = unsafeGetUserFromMemoryOrFallback(client.userID!);

unsafeGetUserFromMemoryOrFallback(ownMember.senderId)
.calcDisplayname(i18n: i18n);
if (ownMember.senderId != ownMember.stateKey) {
return unsafeGetUserFromMemoryOrFallback(ownMember.senderId)
.calcDisplayname(i18n: i18n);
return i18n.invitedBy(
unsafeGetUserFromMemoryOrFallback(ownMember.senderId)
.calcDisplayname(i18n: i18n),
);
}
}
if (membership == Membership.leave) {
Expand All @@ -291,25 +291,19 @@ class Room {
/// that you have the room members, call and await `Room.loadHeroUsers()`
/// before.
Uri? get avatar {
// Check content of `m.room.avatar`
final avatarUrl =
getState(EventTypes.RoomAvatar)?.content.tryGet<String>('url');
if (avatarUrl != null) {
return Uri.tryParse(avatarUrl);
}

final heroes = summary.mHeroes;
if (heroes != null && heroes.length == 1) {
final hero = getState(EventTypes.RoomMember, heroes.first);
if (hero != null) {
return hero.asUser(this).avatarUrl;
}
}
if (isDirectChat) {
final user = directChatMatrixID;
if (user != null) {
return unsafeGetUserFromMemoryOrFallback(user).avatarUrl;
}
// Room has no avatar and is not a direct chat
final directChatMatrixID = this.directChatMatrixID;
if (directChatMatrixID != null) {
return unsafeGetUserFromMemoryOrFallback(directChatMatrixID).avatarUrl;
}

return null;
}

Expand Down
3 changes: 3 additions & 0 deletions lib/src/utils/matrix_default_localizations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,9 @@ class MatrixDefaultLocalizations extends MatrixLocalizations {
String youInvitedBy(String senderName) =>
'You have been invited by $senderName';

@override
String invitedBy(String senderName) => 'Invited by $senderName';

@override
String youInvitedUser(String targetName) => 'You invited $targetName';

Expand Down
2 changes: 2 additions & 0 deletions lib/src/utils/matrix_localizations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ abstract class MatrixLocalizations {

String youInvitedBy(String senderName);

String invitedBy(String senderName);

String youInvitedUser(String targetName);

String youUnbannedUser(String targetName);
Expand Down

0 comments on commit 2b0fbd2

Please sign in to comment.