Use ImmutableList in Composable.

This commit is contained in:
Benoit Marty
2024-06-20 15:53:42 +02:00
committed by Benoit Marty
parent 2ee3763890
commit 84f42537b8
3 changed files with 15 additions and 12 deletions

View File

@@ -443,7 +443,7 @@ private fun MessagesViewComposerBottomSheetContents(
private fun MessagesViewTopBar(
roomName: String?,
roomAvatar: AvatarData?,
heroes: List<AvatarData>,
heroes: ImmutableList<AvatarData>,
callState: RoomCallState,
onRoomDetailsClick: () -> Unit,
onJoinCallClick: () -> Unit,
@@ -503,7 +503,7 @@ private fun CallMenuItem(
private fun RoomAvatarAndNameRow(
roomName: String,
roomAvatar: AvatarData,
heroes: List<AvatarData>,
heroes: ImmutableList<AvatarData>,
modifier: Modifier = Modifier
) {
Row(

View File

@@ -26,7 +26,6 @@ import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
@@ -85,6 +84,8 @@ import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.testtags.TestTags
import io.element.android.libraries.testtags.testTag
import io.element.android.libraries.ui.strings.CommonStrings
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toPersistentList
@Composable
fun RoomDetailsView(
@@ -326,7 +327,7 @@ private fun RoomHeaderSection(
roomAlias: RoomAlias?,
isEncrypted: Boolean,
isPublic: Boolean,
heroes: List<MatrixUser> = emptyList(),
heroes: ImmutableList<MatrixUser>,
openAvatarPreview: (url: String) -> Unit,
) {
Column(
@@ -344,7 +345,7 @@ private fun RoomHeaderSection(
url = user.avatarUrl,
size = AvatarSize.RoomHeader
)
},
}.toPersistentList(),
modifier = Modifier
.clickable(enabled = avatarUrl != null) { openAvatarPreview(avatarUrl!!) }
.testTag(TestTags.roomDetailAvatar)

View File

@@ -30,6 +30,8 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import io.element.android.libraries.designsystem.preview.ElementThemedPreview
import io.element.android.libraries.designsystem.preview.PreviewGroup
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toPersistentList
import java.util.Collections
import kotlin.math.PI
import kotlin.math.cos
@@ -38,7 +40,7 @@ import kotlin.math.sin
@Composable
fun CompositeAvatar(
avatarData: AvatarData,
heroes: List<AvatarData>,
heroes: ImmutableList<AvatarData>,
modifier: Modifier = Modifier,
contentDescription: String? = null,
) {
@@ -122,27 +124,27 @@ internal fun CompositeAvatarPreview() = ElementThemedPreview {
) {
CompositeAvatar(
avatarData = mainAvatar,
heroes = List(0) { aHeroAvatarData(it) },
heroes = List(0) { aHeroAvatarData(it) }.toPersistentList(),
)
CompositeAvatar(
avatarData = mainAvatar,
heroes = List(1) { aHeroAvatarData(it) },
heroes = List(1) { aHeroAvatarData(it) }.toPersistentList(),
)
CompositeAvatar(
avatarData = mainAvatar,
heroes = List(2) { aHeroAvatarData(it) },
heroes = List(2) { aHeroAvatarData(it) }.toPersistentList(),
)
CompositeAvatar(
avatarData = mainAvatar,
heroes = List(3) { aHeroAvatarData(it) },
heroes = List(3) { aHeroAvatarData(it) }.toPersistentList(),
)
CompositeAvatar(
avatarData = mainAvatar,
heroes = List(4) { aHeroAvatarData(it) },
heroes = List(4) { aHeroAvatarData(it) }.toPersistentList(),
)
CompositeAvatar(
avatarData = mainAvatar,
heroes = List(5) { aHeroAvatarData(it) },
heroes = List(5) { aHeroAvatarData(it) }.toPersistentList(),
)
}
}