diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/sender/SenderInfo.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/sender/SenderInfo.kt index 1b4368e3da..9b73136fc3 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/sender/SenderInfo.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/sender/SenderInfo.kt @@ -16,6 +16,8 @@ package org.matrix.android.sdk.api.session.room.sender +import org.matrix.android.sdk.internal.util.replaceSpaceChars + data class SenderInfo( val userId: String, /** @@ -27,8 +29,9 @@ data class SenderInfo( ) { val disambiguatedDisplayName: String get() = when { - displayName.isNullOrBlank() -> userId - isUniqueDisplayName -> displayName - else -> "$displayName ($userId)" + displayName == null -> userId + displayName.replaceSpaceChars().isBlank() -> "$displayName ($userId)" + isUniqueDisplayName -> displayName + else -> "$displayName ($userId)" } } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/util/StringUtils.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/util/StringUtils.kt index ecfbe311f1..2fabca4be8 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/util/StringUtils.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/util/StringUtils.kt @@ -71,3 +71,10 @@ fun String.caseInsensitiveFind(subString: String): Boolean { return false } + +internal val spaceChars = "[\u00A0\u2000-\u200B\u2800\u3000]".toRegex() + +/** + * Strip all the UTF-8 chars which are actually spaces + */ +internal fun String.replaceSpaceChars() = replace(spaceChars, "") diff --git a/vector/src/main/java/im/vector/app/features/media/BaseAttachmentProvider.kt b/vector/src/main/java/im/vector/app/features/media/BaseAttachmentProvider.kt index 4ca93898cd..11b8832c94 100644 --- a/vector/src/main/java/im/vector/app/features/media/BaseAttachmentProvider.kt +++ b/vector/src/main/java/im/vector/app/features/media/BaseAttachmentProvider.kt @@ -83,7 +83,7 @@ abstract class BaseAttachmentProvider( val dateString = dateFormatter.format(timelineEvent.root.originServerTs, DateFormatKind.DEFAULT_DATE_AND_TIME) overlayView?.updateWith( counter = stringProvider.getString(R.string.attachment_viewer_item_x_of_y, position + 1, getItemCount()), - senderInfo = "${timelineEvent.senderInfo.displayName} $dateString" + senderInfo = "${timelineEvent.senderInfo.disambiguatedDisplayName} $dateString" ) overlayView?.views?.overlayVideoControlsGroup?.isVisible = timelineEvent.root.isVideoMessage() } else {