Do not render roomId if the room has no canonical alias #1970
This commit is contained in:
parent
aa077baacd
commit
e150c359e9
2 changed files with 21 additions and 16 deletions
|
|
@ -17,12 +17,12 @@
|
||||||
package io.element.android.libraries.roomselect.impl
|
package io.element.android.libraries.roomselect.impl
|
||||||
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.libraries.roomselect.api.RoomSelectMode
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
|
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
|
||||||
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.RoomMember
|
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||||
import io.element.android.libraries.matrix.api.room.message.RoomMessage
|
import io.element.android.libraries.matrix.api.room.message.RoomMessage
|
||||||
import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails
|
import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails
|
||||||
|
import io.element.android.libraries.roomselect.api.RoomSelectMode
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
|
|
||||||
|
|
@ -47,7 +47,7 @@ open class RoomSelectStateProvider : PreviewParameterProvider<RoomSelectState> {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun aRoomSelectState(
|
private fun aRoomSelectState(
|
||||||
resultState: SearchBarResultState<ImmutableList<RoomSummaryDetails>> = SearchBarResultState.NotSearching(),
|
resultState: SearchBarResultState<ImmutableList<RoomSummaryDetails>> = SearchBarResultState.NotSearching(),
|
||||||
query: String = "",
|
query: String = "",
|
||||||
isSearchActive: Boolean = false,
|
isSearchActive: Boolean = false,
|
||||||
|
|
@ -61,12 +61,16 @@ fun aRoomSelectState(
|
||||||
eventSink = {}
|
eventSink = {}
|
||||||
)
|
)
|
||||||
|
|
||||||
internal fun aForwardMessagesRoomList() = persistentListOf(
|
private fun aForwardMessagesRoomList() = persistentListOf(
|
||||||
aRoomDetailsState(),
|
aRoomDetailsState(),
|
||||||
aRoomDetailsState(roomId = RoomId("!room2:domain"), canonicalAlias = "#element-x-room:matrix.org"),
|
aRoomDetailsState(
|
||||||
|
roomId = RoomId("!room2:domain"),
|
||||||
|
name = "Room with alias",
|
||||||
|
canonicalAlias = "#alias:example.org",
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
fun aRoomDetailsState(
|
private fun aRoomDetailsState(
|
||||||
roomId: RoomId = RoomId("!room:domain"),
|
roomId: RoomId = RoomId("!room:domain"),
|
||||||
name: String = "roomName",
|
name: String = "roomName",
|
||||||
canonicalAlias: String? = null,
|
canonicalAlias: String? = null,
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,6 @@ import androidx.compose.ui.text.style.TextOverflow
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.compound.theme.ElementTheme
|
import io.element.android.compound.theme.ElementTheme
|
||||||
import io.element.android.libraries.roomselect.api.RoomSelectMode
|
|
||||||
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
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.AvatarSize
|
||||||
|
|
@ -62,6 +61,7 @@ import io.element.android.libraries.designsystem.theme.roomListRoomName
|
||||||
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.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
|
||||||
|
|
||||||
|
|
@ -221,10 +221,9 @@ private fun RoomSummaryView(
|
||||||
.heightIn(56.dp),
|
.heightIn(56.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically
|
verticalAlignment = Alignment.CenterVertically
|
||||||
) {
|
) {
|
||||||
val roomAlias = summary.canonicalAlias ?: summary.roomId.value
|
|
||||||
Avatar(
|
Avatar(
|
||||||
avatarData = AvatarData(
|
avatarData = AvatarData(
|
||||||
id = roomAlias,
|
id = summary.roomId.value,
|
||||||
name = summary.name,
|
name = summary.name,
|
||||||
url = summary.avatarURLString,
|
url = summary.avatarURLString,
|
||||||
size = AvatarSize.ForwardRoomListItem,
|
size = AvatarSize.ForwardRoomListItem,
|
||||||
|
|
@ -243,14 +242,16 @@ private fun RoomSummaryView(
|
||||||
maxLines = 1,
|
maxLines = 1,
|
||||||
overflow = TextOverflow.Ellipsis
|
overflow = TextOverflow.Ellipsis
|
||||||
)
|
)
|
||||||
// Id
|
// Alias
|
||||||
Text(
|
summary.canonicalAlias?.let { alias ->
|
||||||
text = roomAlias,
|
Text(
|
||||||
color = MaterialTheme.roomListRoomMessage(),
|
text = alias,
|
||||||
style = ElementTheme.typography.fontBodySmRegular,
|
color = MaterialTheme.roomListRoomMessage(),
|
||||||
maxLines = 1,
|
style = ElementTheme.typography.fontBodySmRegular,
|
||||||
overflow = TextOverflow.Ellipsis
|
maxLines = 1,
|
||||||
)
|
overflow = TextOverflow.Ellipsis
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
RadioButton(selected = isSelected, onClick = { onSelection(summary) })
|
RadioButton(selected = isSelected, onClick = { onSelection(summary) })
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue