Use extension MatrixUser.getAvatarData and fix compilation issue.

This commit is contained in:
Benoit Marty
2024-06-20 16:04:12 +02:00
parent 84f42537b8
commit 9f7f0b9acb
6 changed files with 21 additions and 42 deletions

View File

@@ -86,6 +86,7 @@ import io.element.android.libraries.matrix.api.room.MatrixRoomMembersState
import io.element.android.libraries.matrix.api.room.MessageEventType
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailType
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.matrix.ui.room.canCall
import io.element.android.libraries.matrix.ui.room.canRedactOtherAsState
import io.element.android.libraries.matrix.ui.room.canRedactOwnAsState
@@ -257,12 +258,7 @@ class MessagesPresenter @AssistedInject constructor(
private fun MatrixRoomInfo.heroes(): List<AvatarData> {
return heroes.map { user ->
AvatarData(
id = user.userId.value,
name = user.displayName,
url = user.avatarUrl,
size = AvatarSize.TimelineRoom
)
user.getAvatarData(size = AvatarSize.TimelineRoom)
}
}

View File

@@ -37,7 +37,9 @@ import io.element.android.libraries.designsystem.theme.components.ListItem
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.ui.strings.CommonStrings
import kotlinx.collections.immutable.toPersistentList
/**
* A view that allows a user to edit the default notification setting for rooms. This can be set separately
@@ -117,13 +119,8 @@ fun EditDefaultNotificationSettingView(
CompositeAvatar(
avatarData = avatarData,
heroes = summary.details.heroes.map { user ->
AvatarData(
id = user.userId.value,
name = user.displayName,
url = user.avatarUrl,
size = AvatarSize.CustomRoomNotificationSetting,
)
}
user.getAvatarData(size = AvatarSize.CustomRoomNotificationSetting)
}.toPersistentList()
)
},
onClick = {

View File

@@ -81,6 +81,7 @@ import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
import io.element.android.libraries.matrix.api.room.getBestName
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.testtags.TestTags
import io.element.android.libraries.testtags.testTag
import io.element.android.libraries.ui.strings.CommonStrings
@@ -339,12 +340,7 @@ private fun RoomHeaderSection(
CompositeAvatar(
avatarData = AvatarData(roomId.value, roomName, avatarUrl, AvatarSize.RoomHeader),
heroes = heroes.map { user ->
AvatarData(
id = user.userId.value,
name = user.displayName,
url = user.avatarUrl,
size = AvatarSize.RoomHeader
)
user.getAvatarData(size = AvatarSize.RoomHeader)
}.toPersistentList(),
modifier = Modifier
.clickable(enabled = avatarUrl != null) { openAvatarPreview(avatarUrl!!) }

View File

@@ -26,6 +26,7 @@ import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
import io.element.android.libraries.matrix.api.roomlist.RoomSummary
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.matrix.ui.model.toInviteSender
import kotlinx.collections.immutable.persistentListOf
import kotlinx.collections.immutable.toImmutableList
@@ -94,13 +95,8 @@ class RoomListRoomSummaryFactory @Inject constructor(
} else {
RoomSummaryDisplayType.ROOM
},
heroes = roomSummary.details.heroes.map {
AvatarData(
id = it.userId.value,
name = it.displayName,
url = it.avatarUrl,
size = AvatarSize.RoomListItem,
)
heroes = roomSummary.details.heroes.map { user ->
user.getAvatarData(size = AvatarSize.RoomListItem)
}.toImmutableList(),
)
}

View File

@@ -45,7 +45,9 @@ import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.Surface
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.ui.strings.CommonStrings
import kotlinx.collections.immutable.toImmutableList
@Composable
fun SelectedRoom(
@@ -67,14 +69,9 @@ fun SelectedRoom(
roomSummary.avatarUrl,
AvatarSize.SelectedRoom,
),
heroes = roomSummary.heroes.map {
AvatarData(
id = it.userId.value,
name = it.displayName,
url = it.avatarUrl,
size = AvatarSize.SelectedRoom
)
}
heroes = roomSummary.heroes.map { user ->
user.getAvatarData(size = AvatarSize.SelectedRoom)
}.toImmutableList()
)
Text(
// If name is null, we do not have space to render "No room name", so just use `#` here.

View File

@@ -59,9 +59,11 @@ import io.element.android.libraries.designsystem.theme.components.TopAppBar
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails
import io.element.android.libraries.matrix.ui.components.SelectedRoom
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.roomselect.api.RoomSelectMode
import io.element.android.libraries.ui.strings.CommonStrings
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toPersistentList
@OptIn(ExperimentalMaterial3Api::class)
@Composable
@@ -228,14 +230,9 @@ private fun RoomSummaryView(
url = summary.avatarUrl,
size = AvatarSize.RoomSelectRoomListItem,
),
heroes = summary.heroes.map {
AvatarData(
it.userId.value,
it.displayName,
it.avatarUrl,
AvatarSize.RoomSelectRoomListItem,
)
}
heroes = summary.heroes.map { user ->
user.getAvatarData(size = AvatarSize.RoomSelectRoomListItem)
}.toPersistentList()
)
Column(
modifier = Modifier