diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/edit/EditDefaultNotificationSettingView.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/edit/EditDefaultNotificationSettingView.kt index 3222add2fe..c69970bd3f 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/edit/EditDefaultNotificationSettingView.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/edit/EditDefaultNotificationSettingView.kt @@ -25,7 +25,6 @@ import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.tooling.preview.PreviewParameter import io.element.android.features.preferences.impl.R import io.element.android.libraries.designsystem.components.async.AsyncActionView -import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.designsystem.components.avatar.CompositeAvatar import io.element.android.libraries.designsystem.components.list.ListItemContent @@ -98,12 +97,6 @@ fun EditDefaultNotificationSettingView( RoomNotificationMode.MUTE -> stringResource(id = CommonStrings.common_mute) null -> "" } - val avatarData = AvatarData( - id = summary.identifier(), - name = summary.details.name, - url = summary.details.avatarUrl, - size = AvatarSize.CustomRoomNotificationSetting, - ) ListItem( headlineContent = { val roomName = summary.details.name @@ -117,7 +110,7 @@ fun EditDefaultNotificationSettingView( }, leadingContent = ListItemContent.Custom { CompositeAvatar( - avatarData = avatarData, + avatarData = summary.details.getAvatarData(size = AvatarSize.CustomRoomNotificationSetting), heroes = summary.details.heroes.map { user -> user.getAvatarData(size = AvatarSize.CustomRoomNotificationSetting) }.toPersistentList() diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt index 82e9c1d503..9e1f50b69c 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt @@ -64,12 +64,7 @@ class RoomListRoomSummaryFactory @Inject constructor( fun create(roomSummary: RoomSummary.Filled): RoomListRoomSummary { val roomIdentifier = roomSummary.identifier() - val avatarData = AvatarData( - id = roomIdentifier, - name = roomSummary.details.name, - url = roomSummary.details.avatarUrl, - size = AvatarSize.RoomListItem, - ) + val avatarData = roomSummary.details.getAvatarData(size = AvatarSize.RoomListItem) return RoomListRoomSummary( id = roomIdentifier, roomId = RoomId(roomIdentifier), diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/SelectedRoom.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/SelectedRoom.kt index 96711e159f..f34b071379 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/SelectedRoom.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/SelectedRoom.kt @@ -36,7 +36,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.tokens.generated.CompoundIcons -import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.designsystem.components.avatar.CompositeAvatar import io.element.android.libraries.designsystem.preview.ElementPreview @@ -63,12 +62,7 @@ fun SelectedRoom( horizontalAlignment = Alignment.CenterHorizontally, ) { CompositeAvatar( - avatarData = AvatarData( - roomSummary.roomId.value, - roomSummary.name, - roomSummary.avatarUrl, - AvatarSize.SelectedRoom, - ), + avatarData = roomSummary.getAvatarData(size = AvatarSize.SelectedRoom), heroes = roomSummary.heroes.map { user -> user.getAvatarData(size = AvatarSize.SelectedRoom) }.toImmutableList() diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/RoomSummaryExtension.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/RoomSummaryExtension.kt new file mode 100644 index 0000000000..dd86d375f3 --- /dev/null +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/RoomSummaryExtension.kt @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.matrix.ui.model + +import io.element.android.libraries.designsystem.components.avatar.AvatarData +import io.element.android.libraries.designsystem.components.avatar.AvatarSize +import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails + +fun RoomSummaryDetails.getAvatarData(size: AvatarSize) = AvatarData( + id = roomId.value, + name = name, + url = avatarUrl, + size = size, +) diff --git a/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt b/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt index 0dc86525f7..7ade4f759d 100644 --- a/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt +++ b/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt @@ -41,7 +41,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme -import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.designsystem.components.avatar.CompositeAvatar import io.element.android.libraries.designsystem.components.button.BackButton @@ -224,12 +223,7 @@ private fun RoomSummaryView( verticalAlignment = Alignment.CenterVertically ) { CompositeAvatar( - avatarData = AvatarData( - id = summary.roomId.value, - name = summary.name, - url = summary.avatarUrl, - size = AvatarSize.RoomSelectRoomListItem, - ), + avatarData = summary.getAvatarData(size = AvatarSize.RoomSelectRoomListItem), heroes = summary.heroes.map { user -> user.getAvatarData(size = AvatarSize.RoomSelectRoomListItem) }.toPersistentList()