Browse Source

Use ImmutableList in Composable.

pull/3058/head
Benoit Marty 3 months ago committed by Benoit Marty
parent
commit
a2ff1dc933
  1. 4
      features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt
  2. 7
      features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsView.kt
  3. 16
      libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/CompositeAvatar.kt

4
features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt

@ -443,7 +443,7 @@ private fun MessagesViewComposerBottomSheetContents( @@ -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( @@ -503,7 +503,7 @@ private fun CallMenuItem(
private fun RoomAvatarAndNameRow(
roomName: String,
roomAvatar: AvatarData,
heroes: List<AvatarData>,
heroes: ImmutableList<AvatarData>,
modifier: Modifier = Modifier
) {
Row(

7
features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsView.kt

@ -26,7 +26,6 @@ import androidx.compose.foundation.layout.consumeWindowInsets @@ -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 @@ -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( @@ -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( @@ -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)

16
libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/CompositeAvatar.kt

@ -30,6 +30,8 @@ import androidx.compose.ui.tooling.preview.Preview @@ -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 @@ -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 { @@ -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(),
)
}
}

Loading…
Cancel
Save