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)