From 82ac302843b01c80723462b8ed63d1c9ab44c985 Mon Sep 17 00:00:00 2001 From: Maxime Naturel Date: Thu, 10 Feb 2022 17:50:48 +0100 Subject: [PATCH] Fixing avatar name when there is no room picture --- .../org/matrix/android/sdk/api/util/MatrixItem.kt | 11 ++++++++--- .../member/AutocompleteMemberController.kt | 2 -- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/util/MatrixItem.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/util/MatrixItem.kt index 9ad1e42513..1f3a94b2ad 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/util/MatrixItem.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/util/MatrixItem.kt @@ -45,7 +45,8 @@ sealed class MatrixItem( data class EveryoneInRoomItem(override val id: String, override val displayName: String? = null, - override val avatarUrl: String? = null) : + override val avatarUrl: String? = null, + val roomDisplayName: String? = null) : MatrixItem(id, displayName, avatarUrl) { init { if (BuildConfig.DEBUG) checkId() @@ -131,7 +132,11 @@ sealed class MatrixItem( } fun firstLetterOfDisplayName(): String { - // TODO retrieve first letter of room name when EveryoneInRoomItem + val displayName = when (this) { + // use the room display name for the notify everyone item + is EveryoneInRoomItem -> roomDisplayName + else -> displayName + } return (displayName?.takeIf { it.isNotBlank() } ?: id) .let { dn -> var startIndex = 0 @@ -185,7 +190,7 @@ fun RoomSummary.toMatrixItem() = if (roomType == RoomType.SPACE) { fun RoomSummary.toRoomAliasMatrixItem() = MatrixItem.RoomAliasItem(canonicalAlias ?: roomId, displayName, avatarUrl) -fun RoomSummary.toEveryoneInRoomMatrixItem() = MatrixItem.EveryoneInRoomItem(roomId, MatrixItem.NOTIFY_EVERYONE, avatarUrl) +fun RoomSummary.toEveryoneInRoomMatrixItem() = MatrixItem.EveryoneInRoomItem(roomId, MatrixItem.NOTIFY_EVERYONE, avatarUrl, displayName) // If no name is available, use room alias as Riot-Web does fun PublicRoom.toMatrixItem() = MatrixItem.RoomItem(roomId, name ?: getPrimaryAlias() ?: "", avatarUrl) diff --git a/vector/src/main/java/im/vector/app/features/autocomplete/member/AutocompleteMemberController.kt b/vector/src/main/java/im/vector/app/features/autocomplete/member/AutocompleteMemberController.kt index 0684067ba8..2132cc2f1d 100644 --- a/vector/src/main/java/im/vector/app/features/autocomplete/member/AutocompleteMemberController.kt +++ b/vector/src/main/java/im/vector/app/features/autocomplete/member/AutocompleteMemberController.kt @@ -81,8 +81,6 @@ class AutocompleteMemberController @Inject constructor(private val context: Cont id(room.roomId) matrixItem(room.toEveryoneInRoomMatrixItem()) subName(host.context.getString(R.string.room_message_notify_everyone)) - // TODO fix usage of first letter of room name when avatarUrl is empty - // TODO test avatar with a room which has a picture avatarRenderer(host.avatarRenderer) clickListener { host.listener?.onItemClick(everyone) } }