diff --git a/changelog.d/8365.misc b/changelog.d/8365.misc
new file mode 100644
index 0000000000..ef9bbdca04
--- /dev/null
+++ b/changelog.d/8365.misc
@@ -0,0 +1 @@
+Matrix-Ids are sometimes shown in notice events instead of display names
diff --git a/library/ui-strings/src/main/res/values/strings.xml b/library/ui-strings/src/main/res/values/strings.xml
index 8325b19b93..1a1546459e 100644
--- a/library/ui-strings/src/main/res/values/strings.xml
+++ b/library/ui-strings/src/main/res/values/strings.xml
@@ -39,7 +39,9 @@
You changed your avatar
%1$s set their display name to %2$s
You set your display name to %1$s
- %1$s changed their display name from %2$s to %3$s
+
+ %1$s changed their display name from %2$s to %3$s
+ %1$s changed their display name to %2$s
You changed your display name from %1$s to %2$s
%1$s removed their display name (it was %2$s)
You removed your display name (it was %1$s)
diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/format/NoticeEventFormatter.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/format/NoticeEventFormatter.kt
index a306dd6b2f..62945195c8 100644
--- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/format/NoticeEventFormatter.kt
+++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/format/NoticeEventFormatter.kt
@@ -124,6 +124,7 @@ class NoticeEventFormatter @Inject constructor(
private fun formatRoomPowerLevels(event: Event, disambiguatedDisplayName: String): CharSequence? {
val powerLevelsContent: PowerLevelsContent = event.content.toModel() ?: return null
val previousPowerLevelsContent: PowerLevelsContent = event.resolvedPrevContent().toModel() ?: return null
+ val roomService = activeSessionDataSource.currentValue?.orNull()?.roomService()
val userIds = HashSet()
userIds.addAll(powerLevelsContent.users.orEmpty().keys)
userIds.addAll(previousPowerLevelsContent.users.orEmpty().keys)
@@ -134,7 +135,8 @@ class NoticeEventFormatter @Inject constructor(
if (from != to) {
val fromStr = roleFormatter.format(from)
val toStr = roleFormatter.format(to)
- val diff = sp.getString(R.string.notice_power_level_diff, userId, fromStr, toStr)
+ val displayName = event.roomId?.let { roomService?.getRoomMember(userId, it)?.displayName } ?: userId
+ val diff = sp.getString(R.string.notice_power_level_diff, displayName, fromStr, toStr)
diffs.add(diff)
}
}
@@ -644,7 +646,7 @@ class NoticeEventFormatter @Inject constructor(
if (event.isSentByCurrentUser()) {
sp.getString(R.string.notice_display_name_changed_from_by_you, prevEventContent?.displayName, eventContent?.displayName)
} else {
- sp.getString(R.string.notice_display_name_changed_from, event.senderId, prevEventContent?.displayName, eventContent?.displayName)
+ sp.getString(R.string.notice_display_name_changed_to, prevEventContent?.displayName, eventContent?.displayName)
}
}
displayText.append(displayNameText)