Use extension MatrixUser.getAvatarData and fix compilation issue.

This commit is contained in:
Benoit Marty 2024-06-20 16:04:12 +02:00
parent a2ff1dc933
commit 33c76dfd2d
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.api.room.MessageEventType
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo 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.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.canCall
import io.element.android.libraries.matrix.ui.room.canRedactOtherAsState import io.element.android.libraries.matrix.ui.room.canRedactOtherAsState
import io.element.android.libraries.matrix.ui.room.canRedactOwnAsState import io.element.android.libraries.matrix.ui.room.canRedactOwnAsState
@ -257,12 +258,7 @@ class MessagesPresenter @AssistedInject constructor(
private fun MatrixRoomInfo.heroes(): List<AvatarData> { private fun MatrixRoomInfo.heroes(): List<AvatarData> {
return heroes.map { user -> return heroes.map { user ->
AvatarData( user.getAvatarData(size = AvatarSize.TimelineRoom)
id = user.userId.value,
name = user.displayName,
url = user.avatarUrl,
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.designsystem.theme.components.Text
import io.element.android.libraries.matrix.api.core.RoomId 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.RoomNotificationMode
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.ui.strings.CommonStrings 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 * 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( CompositeAvatar(
avatarData = avatarData, avatarData = avatarData,
heroes = summary.details.heroes.map { user -> heroes = summary.details.heroes.map { user ->
AvatarData( user.getAvatarData(size = AvatarSize.CustomRoomNotificationSetting)
id = user.userId.value, }.toPersistentList()
name = user.displayName,
url = user.avatarUrl,
size = AvatarSize.CustomRoomNotificationSetting,
)
}
) )
}, },
onClick = { 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.RoomNotificationMode
import io.element.android.libraries.matrix.api.room.getBestName import io.element.android.libraries.matrix.api.room.getBestName
import io.element.android.libraries.matrix.api.user.MatrixUser 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.TestTags
import io.element.android.libraries.testtags.testTag import io.element.android.libraries.testtags.testTag
import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.libraries.ui.strings.CommonStrings
@ -339,12 +340,7 @@ private fun RoomHeaderSection(
CompositeAvatar( CompositeAvatar(
avatarData = AvatarData(roomId.value, roomName, avatarUrl, AvatarSize.RoomHeader), avatarData = AvatarData(roomId.value, roomName, avatarUrl, AvatarSize.RoomHeader),
heroes = heroes.map { user -> heroes = heroes.map { user ->
AvatarData( user.getAvatarData(size = AvatarSize.RoomHeader)
id = user.userId.value,
name = user.displayName,
url = user.avatarUrl,
size = AvatarSize.RoomHeader
)
}.toPersistentList(), }.toPersistentList(),
modifier = Modifier modifier = Modifier
.clickable(enabled = avatarUrl != null) { openAvatarPreview(avatarUrl!!) } .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.core.RoomId
import io.element.android.libraries.matrix.api.room.CurrentUserMembership import io.element.android.libraries.matrix.api.room.CurrentUserMembership
import io.element.android.libraries.matrix.api.roomlist.RoomSummary 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 io.element.android.libraries.matrix.ui.model.toInviteSender
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList
@ -94,13 +95,8 @@ class RoomListRoomSummaryFactory @Inject constructor(
} else { } else {
RoomSummaryDisplayType.ROOM RoomSummaryDisplayType.ROOM
}, },
heroes = roomSummary.details.heroes.map { heroes = roomSummary.details.heroes.map { user ->
AvatarData( user.getAvatarData(size = AvatarSize.RoomListItem)
id = it.userId.value,
name = it.displayName,
url = it.avatarUrl,
size = AvatarSize.RoomListItem,
)
}.toImmutableList(), }.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.Surface
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails 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 io.element.android.libraries.ui.strings.CommonStrings
import kotlinx.collections.immutable.toImmutableList
@Composable @Composable
fun SelectedRoom( fun SelectedRoom(
@ -67,14 +69,9 @@ fun SelectedRoom(
roomSummary.avatarUrl, roomSummary.avatarUrl,
AvatarSize.SelectedRoom, AvatarSize.SelectedRoom,
), ),
heroes = roomSummary.heroes.map { heroes = roomSummary.heroes.map { user ->
AvatarData( user.getAvatarData(size = AvatarSize.SelectedRoom)
id = it.userId.value, }.toImmutableList()
name = it.displayName,
url = it.avatarUrl,
size = AvatarSize.SelectedRoom
)
}
) )
Text( Text(
// If name is null, we do not have space to render "No room name", so just use `#` here. // 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.core.RoomId
import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails 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.components.SelectedRoom
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.roomselect.api.RoomSelectMode import io.element.android.libraries.roomselect.api.RoomSelectMode
import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.libraries.ui.strings.CommonStrings
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toPersistentList
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
@ -228,14 +230,9 @@ private fun RoomSummaryView(
url = summary.avatarUrl, url = summary.avatarUrl,
size = AvatarSize.RoomSelectRoomListItem, size = AvatarSize.RoomSelectRoomListItem,
), ),
heroes = summary.heroes.map { heroes = summary.heroes.map { user ->
AvatarData( user.getAvatarData(size = AvatarSize.RoomSelectRoomListItem)
it.userId.value, }.toPersistentList()
it.displayName,
it.avatarUrl,
AvatarSize.RoomSelectRoomListItem,
)
}
) )
Column( Column(
modifier = Modifier modifier = Modifier