Fixing avatar name when there is no room picture
This commit is contained in:
parent
38317e6033
commit
82ac302843
|
@ -45,7 +45,8 @@ sealed class MatrixItem(
|
||||||
|
|
||||||
data class EveryoneInRoomItem(override val id: String,
|
data class EveryoneInRoomItem(override val id: String,
|
||||||
override val displayName: String? = null,
|
override val displayName: String? = null,
|
||||||
override val avatarUrl: String? = null) :
|
override val avatarUrl: String? = null,
|
||||||
|
val roomDisplayName: String? = null) :
|
||||||
MatrixItem(id, displayName, avatarUrl) {
|
MatrixItem(id, displayName, avatarUrl) {
|
||||||
init {
|
init {
|
||||||
if (BuildConfig.DEBUG) checkId()
|
if (BuildConfig.DEBUG) checkId()
|
||||||
|
@ -131,7 +132,11 @@ sealed class MatrixItem(
|
||||||
}
|
}
|
||||||
|
|
||||||
fun firstLetterOfDisplayName(): String {
|
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)
|
return (displayName?.takeIf { it.isNotBlank() } ?: id)
|
||||||
.let { dn ->
|
.let { dn ->
|
||||||
var startIndex = 0
|
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.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
|
// If no name is available, use room alias as Riot-Web does
|
||||||
fun PublicRoom.toMatrixItem() = MatrixItem.RoomItem(roomId, name ?: getPrimaryAlias() ?: "", avatarUrl)
|
fun PublicRoom.toMatrixItem() = MatrixItem.RoomItem(roomId, name ?: getPrimaryAlias() ?: "", avatarUrl)
|
||||||
|
|
|
@ -81,8 +81,6 @@ class AutocompleteMemberController @Inject constructor(private val context: Cont
|
||||||
id(room.roomId)
|
id(room.roomId)
|
||||||
matrixItem(room.toEveryoneInRoomMatrixItem())
|
matrixItem(room.toEveryoneInRoomMatrixItem())
|
||||||
subName(host.context.getString(R.string.room_message_notify_everyone))
|
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)
|
avatarRenderer(host.avatarRenderer)
|
||||||
clickListener { host.listener?.onItemClick(everyone) }
|
clickListener { host.listener?.onItemClick(everyone) }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue