Use ImmutableList in Composable.
This commit is contained in:
parent
2ee3763890
commit
84f42537b8
3 changed files with 15 additions and 12 deletions
|
|
@ -443,7 +443,7 @@ private fun MessagesViewComposerBottomSheetContents(
|
||||||
private fun MessagesViewTopBar(
|
private fun MessagesViewTopBar(
|
||||||
roomName: String?,
|
roomName: String?,
|
||||||
roomAvatar: AvatarData?,
|
roomAvatar: AvatarData?,
|
||||||
heroes: List<AvatarData>,
|
heroes: ImmutableList<AvatarData>,
|
||||||
callState: RoomCallState,
|
callState: RoomCallState,
|
||||||
onRoomDetailsClick: () -> Unit,
|
onRoomDetailsClick: () -> Unit,
|
||||||
onJoinCallClick: () -> Unit,
|
onJoinCallClick: () -> Unit,
|
||||||
|
|
@ -503,7 +503,7 @@ private fun CallMenuItem(
|
||||||
private fun RoomAvatarAndNameRow(
|
private fun RoomAvatarAndNameRow(
|
||||||
roomName: String,
|
roomName: String,
|
||||||
roomAvatar: AvatarData,
|
roomAvatar: AvatarData,
|
||||||
heroes: List<AvatarData>,
|
heroes: ImmutableList<AvatarData>,
|
||||||
modifier: Modifier = Modifier
|
modifier: Modifier = Modifier
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ import androidx.compose.foundation.layout.consumeWindowInsets
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
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.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
|
||||||
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
|
import kotlinx.collections.immutable.toPersistentList
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun RoomDetailsView(
|
fun RoomDetailsView(
|
||||||
|
|
@ -326,7 +327,7 @@ private fun RoomHeaderSection(
|
||||||
roomAlias: RoomAlias?,
|
roomAlias: RoomAlias?,
|
||||||
isEncrypted: Boolean,
|
isEncrypted: Boolean,
|
||||||
isPublic: Boolean,
|
isPublic: Boolean,
|
||||||
heroes: List<MatrixUser> = emptyList(),
|
heroes: ImmutableList<MatrixUser>,
|
||||||
openAvatarPreview: (url: String) -> Unit,
|
openAvatarPreview: (url: String) -> Unit,
|
||||||
) {
|
) {
|
||||||
Column(
|
Column(
|
||||||
|
|
@ -344,7 +345,7 @@ private fun RoomHeaderSection(
|
||||||
url = user.avatarUrl,
|
url = user.avatarUrl,
|
||||||
size = AvatarSize.RoomHeader
|
size = AvatarSize.RoomHeader
|
||||||
)
|
)
|
||||||
},
|
}.toPersistentList(),
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.clickable(enabled = avatarUrl != null) { openAvatarPreview(avatarUrl!!) }
|
.clickable(enabled = avatarUrl != null) { openAvatarPreview(avatarUrl!!) }
|
||||||
.testTag(TestTags.roomDetailAvatar)
|
.testTag(TestTags.roomDetailAvatar)
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,8 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.preview.ElementThemedPreview
|
import io.element.android.libraries.designsystem.preview.ElementThemedPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewGroup
|
import io.element.android.libraries.designsystem.preview.PreviewGroup
|
||||||
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
|
import kotlinx.collections.immutable.toPersistentList
|
||||||
import java.util.Collections
|
import java.util.Collections
|
||||||
import kotlin.math.PI
|
import kotlin.math.PI
|
||||||
import kotlin.math.cos
|
import kotlin.math.cos
|
||||||
|
|
@ -38,7 +40,7 @@ import kotlin.math.sin
|
||||||
@Composable
|
@Composable
|
||||||
fun CompositeAvatar(
|
fun CompositeAvatar(
|
||||||
avatarData: AvatarData,
|
avatarData: AvatarData,
|
||||||
heroes: List<AvatarData>,
|
heroes: ImmutableList<AvatarData>,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
contentDescription: String? = null,
|
contentDescription: String? = null,
|
||||||
) {
|
) {
|
||||||
|
|
@ -122,27 +124,27 @@ internal fun CompositeAvatarPreview() = ElementThemedPreview {
|
||||||
) {
|
) {
|
||||||
CompositeAvatar(
|
CompositeAvatar(
|
||||||
avatarData = mainAvatar,
|
avatarData = mainAvatar,
|
||||||
heroes = List(0) { aHeroAvatarData(it) },
|
heroes = List(0) { aHeroAvatarData(it) }.toPersistentList(),
|
||||||
)
|
)
|
||||||
CompositeAvatar(
|
CompositeAvatar(
|
||||||
avatarData = mainAvatar,
|
avatarData = mainAvatar,
|
||||||
heroes = List(1) { aHeroAvatarData(it) },
|
heroes = List(1) { aHeroAvatarData(it) }.toPersistentList(),
|
||||||
)
|
)
|
||||||
CompositeAvatar(
|
CompositeAvatar(
|
||||||
avatarData = mainAvatar,
|
avatarData = mainAvatar,
|
||||||
heroes = List(2) { aHeroAvatarData(it) },
|
heroes = List(2) { aHeroAvatarData(it) }.toPersistentList(),
|
||||||
)
|
)
|
||||||
CompositeAvatar(
|
CompositeAvatar(
|
||||||
avatarData = mainAvatar,
|
avatarData = mainAvatar,
|
||||||
heroes = List(3) { aHeroAvatarData(it) },
|
heroes = List(3) { aHeroAvatarData(it) }.toPersistentList(),
|
||||||
)
|
)
|
||||||
CompositeAvatar(
|
CompositeAvatar(
|
||||||
avatarData = mainAvatar,
|
avatarData = mainAvatar,
|
||||||
heroes = List(4) { aHeroAvatarData(it) },
|
heroes = List(4) { aHeroAvatarData(it) }.toPersistentList(),
|
||||||
)
|
)
|
||||||
CompositeAvatar(
|
CompositeAvatar(
|
||||||
avatarData = mainAvatar,
|
avatarData = mainAvatar,
|
||||||
heroes = List(5) { aHeroAvatarData(it) },
|
heroes = List(5) { aHeroAvatarData(it) }.toPersistentList(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue