mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Merge pull request #6456 from element-hq/feature/bma/iterateOnSpaceHeader
Iterate on space header
This commit is contained in:
+4
-1
@@ -53,6 +53,9 @@ import io.element.android.libraries.matrix.ui.components.AvatarPickerView
|
|||||||
import io.element.android.libraries.permissions.api.PermissionsView
|
import io.element.android.libraries.permissions.api.PermissionsView
|
||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://www.figma.com/design/pDlJZGBsri47FNTXMnEdXB/Compound-Android-Templates?node-id=3182-36115&t=U1vS3px9HzlzWYd7-4
|
||||||
|
*/
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun EditUserProfileView(
|
fun EditUserProfileView(
|
||||||
@@ -125,7 +128,7 @@ fun EditUserProfileView(
|
|||||||
style = ElementTheme.typography.fontBodyLgRegular,
|
style = ElementTheme.typography.fontBodyLgRegular,
|
||||||
textAlign = TextAlign.Center,
|
textAlign = TextAlign.Center,
|
||||||
)
|
)
|
||||||
Spacer(modifier = Modifier.height(40.dp))
|
Spacer(modifier = Modifier.height(32.dp))
|
||||||
TextField(
|
TextField(
|
||||||
label = stringResource(R.string.screen_edit_profile_display_name),
|
label = stringResource(R.string.screen_edit_profile_display_name),
|
||||||
value = state.displayName,
|
value = state.displayName,
|
||||||
|
|||||||
+8
-2
@@ -51,6 +51,12 @@ import io.element.android.libraries.matrix.ui.components.AvatarPickerView
|
|||||||
import io.element.android.libraries.permissions.api.PermissionsView
|
import io.element.android.libraries.permissions.api.PermissionsView
|
||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For space:
|
||||||
|
* https://www.figma.com/design/pDlJZGBsri47FNTXMnEdXB/Compound-Android-Templates?node-id=2216-110711
|
||||||
|
* For room:
|
||||||
|
* https://www.figma.com/design/pDlJZGBsri47FNTXMnEdXB/Compound-Android-Templates?node-id=3187-47342
|
||||||
|
*/
|
||||||
@Composable
|
@Composable
|
||||||
fun RoomDetailsEditView(
|
fun RoomDetailsEditView(
|
||||||
state: RoomDetailsEditState,
|
state: RoomDetailsEditState,
|
||||||
@@ -102,11 +108,11 @@ fun RoomDetailsEditView(
|
|||||||
) {
|
) {
|
||||||
Spacer(modifier = Modifier.height(24.dp))
|
Spacer(modifier = Modifier.height(24.dp))
|
||||||
val avatarPickerState = remember(state.roomAvatarUrl, state.roomRawName) {
|
val avatarPickerState = remember(state.roomAvatarUrl, state.roomRawName) {
|
||||||
val size = AvatarSize.EditRoomDetails
|
val size = if (state.isSpace) AvatarSize.EditSpaceDetails else AvatarSize.EditRoomDetails
|
||||||
val type = if (state.isSpace) AvatarType.Space() else AvatarType.Room()
|
val type = if (state.isSpace) AvatarType.Space() else AvatarType.Room()
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData(id = state.roomId.value, name = state.roomRawName, size = size, url = state.roomAvatarUrl),
|
avatarData = AvatarData(id = state.roomId.value, name = state.roomRawName, size = size, url = state.roomAvatarUrl),
|
||||||
type = type
|
type = type,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
|
|||||||
+2
-1
@@ -46,7 +46,8 @@ enum class AvatarSize(val dp: Dp) {
|
|||||||
RoomInviteItem(52.dp),
|
RoomInviteItem(52.dp),
|
||||||
InviteSender(16.dp),
|
InviteSender(16.dp),
|
||||||
|
|
||||||
EditRoomDetails(68.dp),
|
EditRoomDetails(64.dp),
|
||||||
|
EditSpaceDetails(96.dp),
|
||||||
RoomListManageUser(96.dp),
|
RoomListManageUser(96.dp),
|
||||||
|
|
||||||
NotificationsOptIn(32.dp),
|
NotificationsOptIn(32.dp),
|
||||||
|
|||||||
+53
-99
@@ -61,8 +61,16 @@ 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
|
||||||
|
|
||||||
|
private val editIconContainerSize = 30.dp
|
||||||
|
private val editIconContainerRadius = editIconContainerSize / 2
|
||||||
|
private val editIconContainerPadding = 4.dp
|
||||||
|
private val editIconSize = 20.dp
|
||||||
|
private val editIconOffset = 8.dp
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Avatar picker view, based on https://www.figma.com/design/kcnHxunG1LDWXsJhaNuiHz/ER-145--Spaces-on-Element-X?node-id=5918-97417&t=JYDQysgjS33AZb74-4
|
* Avatar picker view.
|
||||||
|
*
|
||||||
|
* https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=1949-1384
|
||||||
*
|
*
|
||||||
* It takes a [state], which can be [AvatarPickerState.Pick] for displaying the 'pick avatar' button, or [AvatarPickerState.Selected] when an avatar has
|
* It takes a [state], which can be [AvatarPickerState.Pick] for displaying the 'pick avatar' button, or [AvatarPickerState.Selected] when an avatar has
|
||||||
* already been selected.
|
* already been selected.
|
||||||
@@ -96,7 +104,6 @@ fun AvatarPickerView(
|
|||||||
|
|
||||||
fun eraseBackgroundModifier(
|
fun eraseBackgroundModifier(
|
||||||
parentWidth: Dp,
|
parentWidth: Dp,
|
||||||
editIconRadius: Dp,
|
|
||||||
) = Modifier
|
) = Modifier
|
||||||
.graphicsLayer {
|
.graphicsLayer {
|
||||||
compositingStrategy = CompositingStrategy.Offscreen
|
compositingStrategy = CompositingStrategy.Offscreen
|
||||||
@@ -107,13 +114,13 @@ fun AvatarPickerView(
|
|||||||
color = Color.Black,
|
color = Color.Black,
|
||||||
center = Offset(
|
center = Offset(
|
||||||
x = if (layoutDirection == LayoutDirection.Ltr) {
|
x = if (layoutDirection == LayoutDirection.Ltr) {
|
||||||
parentWidth.toPx() - editIconRadius.toPx() * 0.48f
|
(parentWidth - editIconContainerRadius + editIconOffset).toPx()
|
||||||
} else {
|
} else {
|
||||||
editIconRadius.toPx() * 0.48f
|
(editIconContainerRadius - editIconOffset).toPx()
|
||||||
},
|
},
|
||||||
y = size.height - editIconRadius.toPx(),
|
y = size.height - editIconContainerRadius.toPx(),
|
||||||
),
|
),
|
||||||
radius = editIconRadius.toPx() * 1.2f,
|
radius = (editIconContainerRadius + editIconContainerPadding).toPx(),
|
||||||
blendMode = BlendMode.Clear,
|
blendMode = BlendMode.Clear,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -132,7 +139,7 @@ fun AvatarPickerView(
|
|||||||
is AvatarPickerState.Selected -> {
|
is AvatarPickerState.Selected -> {
|
||||||
Box(modifier = modifier) {
|
Box(modifier = modifier) {
|
||||||
val backgroundModifier = if (enabled) {
|
val backgroundModifier = if (enabled) {
|
||||||
eraseBackgroundModifier(state.avatarData.size.dp, state.avatarData.size.dp * 0.225f)
|
eraseBackgroundModifier(state.avatarData.size.dp)
|
||||||
} else {
|
} else {
|
||||||
Modifier
|
Modifier
|
||||||
}
|
}
|
||||||
@@ -143,7 +150,6 @@ fun AvatarPickerView(
|
|||||||
)
|
)
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
OverlayEditButton(
|
OverlayEditButton(
|
||||||
editButtonSize = state.avatarData.size.dp * 0.44f,
|
|
||||||
onClick = onClick,
|
onClick = onClick,
|
||||||
interactionSource = interactionSource
|
interactionSource = interactionSource
|
||||||
)
|
)
|
||||||
@@ -179,15 +185,14 @@ private fun PickButton(
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun BoxScope.OverlayEditButton(
|
private fun BoxScope.OverlayEditButton(
|
||||||
editButtonSize: Dp,
|
|
||||||
onClick: () -> Unit,
|
onClick: () -> Unit,
|
||||||
interactionSource: MutableInteractionSource
|
interactionSource: MutableInteractionSource
|
||||||
) {
|
) {
|
||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.align(Alignment.BottomEnd)
|
.align(Alignment.BottomEnd)
|
||||||
.size(editButtonSize)
|
.size(editIconContainerSize)
|
||||||
.offset(x = editButtonSize * 0.266f)
|
.offset(x = editIconOffset)
|
||||||
.clip(CircleShape)
|
.clip(CircleShape)
|
||||||
.clickable(interactionSource = interactionSource, onClick = onClick, indication = null)
|
.clickable(interactionSource = interactionSource, onClick = onClick, indication = null)
|
||||||
.background(ElementTheme.colors.bgCanvasDefault)
|
.background(ElementTheme.colors.bgCanvasDefault)
|
||||||
@@ -195,7 +200,7 @@ private fun BoxScope.OverlayEditButton(
|
|||||||
contentAlignment = Alignment.Center,
|
contentAlignment = Alignment.Center,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier.size(editButtonSize * 0.66f),
|
modifier = Modifier.size(editIconSize),
|
||||||
imageVector = CompoundIcons.Edit(),
|
imageVector = CompoundIcons.Edit(),
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
@@ -234,93 +239,40 @@ internal fun AvatarPickerViewRtlPreview() = CompositionLocalProvider(
|
|||||||
@PreviewsDayNight
|
@PreviewsDayNight
|
||||||
@Composable
|
@Composable
|
||||||
internal fun AvatarPickerSizesPreview() = ElementPreview {
|
internal fun AvatarPickerSizesPreview() = ElementPreview {
|
||||||
Column {
|
// Size used across the codebase
|
||||||
Row {
|
val sizes = listOf(
|
||||||
AvatarPickerView(AvatarPickerState.Pick(buttonSize = 24.dp, externalPadding = PaddingValues(6.dp)), onClick = {})
|
AvatarSize.EditRoomDetails,
|
||||||
AvatarPickerView(AvatarPickerState.Pick(buttonSize = 32.dp, externalPadding = PaddingValues(6.dp)), onClick = {})
|
AvatarSize.EditProfileDetails,
|
||||||
AvatarPickerView(AvatarPickerState.Pick(buttonSize = 48.dp, externalPadding = PaddingValues(6.dp)), onClick = {})
|
)
|
||||||
AvatarPickerView(AvatarPickerState.Pick(buttonSize = 64.dp, externalPadding = PaddingValues(6.dp)), onClick = {})
|
Column(
|
||||||
AvatarPickerView(AvatarPickerState.Pick(buttonSize = 96.dp, externalPadding = PaddingValues(6.dp)), onClick = {})
|
modifier = Modifier.padding(12.dp)
|
||||||
|
) {
|
||||||
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
|
sizes.forEach {
|
||||||
|
AvatarPickerView(
|
||||||
|
state = AvatarPickerState.Pick(buttonSize = it.dp, externalPadding = PaddingValues(6.dp)),
|
||||||
|
onClick = {},
|
||||||
|
)
|
||||||
}
|
}
|
||||||
Row {
|
}
|
||||||
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
|
sizes.forEach {
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData("@user:example.com", "User", "content://test", size = AvatarSize.TimelineThreadLatestEventSender),
|
avatarData = AvatarData("@user:example.com", "User", "content://test", size = it),
|
||||||
type = AvatarType.User
|
type = AvatarType.User,
|
||||||
),
|
|
||||||
onClick = {},
|
|
||||||
modifier = Modifier.padding(6.dp)
|
|
||||||
)
|
|
||||||
AvatarPickerView(
|
|
||||||
AvatarPickerState.Selected(
|
|
||||||
avatarData = AvatarData("@user:example.com", "User", "content://test", size = AvatarSize.ReadReceiptList),
|
|
||||||
type = AvatarType.User
|
|
||||||
),
|
|
||||||
onClick = {},
|
|
||||||
modifier = Modifier.padding(6.dp)
|
|
||||||
)
|
|
||||||
AvatarPickerView(
|
|
||||||
AvatarPickerState.Selected(
|
|
||||||
avatarData = AvatarData("@user:example.com", "User", "content://test", size = AvatarSize.SelectedUser),
|
|
||||||
type = AvatarType.User
|
|
||||||
),
|
|
||||||
onClick = {},
|
|
||||||
modifier = Modifier.padding(6.dp)
|
|
||||||
)
|
|
||||||
AvatarPickerView(
|
|
||||||
AvatarPickerState.Selected(
|
|
||||||
avatarData = AvatarData("@user:example.com", "User", "content://test", size = AvatarSize.EditRoomDetails),
|
|
||||||
type = AvatarType.User
|
|
||||||
),
|
|
||||||
onClick = {},
|
|
||||||
modifier = Modifier.padding(6.dp)
|
|
||||||
)
|
|
||||||
AvatarPickerView(
|
|
||||||
AvatarPickerState.Selected(
|
|
||||||
avatarData = AvatarData("@user:example.com", "User", "content://test", size = AvatarSize.RoomListManageUser),
|
|
||||||
type = AvatarType.User
|
|
||||||
),
|
),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
modifier = Modifier.padding(6.dp)
|
modifier = Modifier.padding(6.dp)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Row {
|
}
|
||||||
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
|
sizes.forEach {
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData("@user:example.com", "User", "content://test", size = AvatarSize.TimelineThreadLatestEventSender),
|
avatarData = AvatarData("@user:example.com", "User", "content://test", size = it),
|
||||||
type = AvatarType.Space()
|
type = AvatarType.Space(),
|
||||||
),
|
|
||||||
onClick = {},
|
|
||||||
modifier = Modifier.padding(6.dp)
|
|
||||||
)
|
|
||||||
AvatarPickerView(
|
|
||||||
AvatarPickerState.Selected(
|
|
||||||
avatarData = AvatarData("@user:example.com", "User", "content://test", size = AvatarSize.ReadReceiptList),
|
|
||||||
type = AvatarType.Space()
|
|
||||||
),
|
|
||||||
onClick = {},
|
|
||||||
modifier = Modifier.padding(6.dp)
|
|
||||||
)
|
|
||||||
AvatarPickerView(
|
|
||||||
AvatarPickerState.Selected(
|
|
||||||
avatarData = AvatarData("@user:example.com", "User", "content://test", size = AvatarSize.SelectedUser),
|
|
||||||
type = AvatarType.Space()
|
|
||||||
),
|
|
||||||
onClick = {},
|
|
||||||
modifier = Modifier.padding(6.dp)
|
|
||||||
)
|
|
||||||
AvatarPickerView(
|
|
||||||
AvatarPickerState.Selected(
|
|
||||||
avatarData = AvatarData("@user:example.com", "User", "content://test", size = AvatarSize.EditRoomDetails),
|
|
||||||
type = AvatarType.Space()
|
|
||||||
),
|
|
||||||
onClick = {},
|
|
||||||
modifier = Modifier.padding(6.dp)
|
|
||||||
)
|
|
||||||
AvatarPickerView(
|
|
||||||
AvatarPickerState.Selected(
|
|
||||||
avatarData = AvatarData("@user:example.com", "User", "content://test", size = AvatarSize.RoomListManageUser),
|
|
||||||
type = AvatarType.Space()
|
|
||||||
),
|
),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
modifier = Modifier.padding(6.dp)
|
modifier = Modifier.padding(6.dp)
|
||||||
@@ -328,6 +280,7 @@ internal fun AvatarPickerSizesPreview() = ElementPreview {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun PreviewContent() {
|
private fun PreviewContent() {
|
||||||
@@ -335,8 +288,9 @@ private fun PreviewContent() {
|
|||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
horizontalAlignment = Alignment.CenterHorizontally
|
horizontalAlignment = Alignment.CenterHorizontally
|
||||||
) {
|
) {
|
||||||
|
val size = AvatarSize.EditRoomDetails
|
||||||
Text("Pick image")
|
Text("Pick image")
|
||||||
AvatarPickerView(AvatarPickerState.Pick(buttonSize = 48.dp, externalPadding = PaddingValues(6.dp)), onClick = {})
|
AvatarPickerView(AvatarPickerState.Pick(buttonSize = size.dp, externalPadding = PaddingValues(6.dp)), onClick = {})
|
||||||
HorizontalDivider()
|
HorizontalDivider()
|
||||||
|
|
||||||
Text("User avatar")
|
Text("User avatar")
|
||||||
@@ -345,7 +299,7 @@ private fun PreviewContent() {
|
|||||||
Text("No url")
|
Text("No url")
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData("@user:example.com", "User", null, size = AvatarSize.EditRoomDetails),
|
avatarData = AvatarData("@user:example.com", "User", null, size = size),
|
||||||
type = AvatarType.User
|
type = AvatarType.User
|
||||||
),
|
),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
@@ -356,7 +310,7 @@ private fun PreviewContent() {
|
|||||||
Text("Local")
|
Text("Local")
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData("@user:example.com", "User", "content://test", size = AvatarSize.EditRoomDetails),
|
avatarData = AvatarData("@user:example.com", "User", "content://test", size = size),
|
||||||
type = AvatarType.User
|
type = AvatarType.User
|
||||||
),
|
),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
@@ -367,7 +321,7 @@ private fun PreviewContent() {
|
|||||||
Text("MXC")
|
Text("MXC")
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData("@user:example.com", "User", "mxc://test", size = AvatarSize.EditRoomDetails),
|
avatarData = AvatarData("@user:example.com", "User", "mxc://test", size = size),
|
||||||
type = AvatarType.User
|
type = AvatarType.User
|
||||||
),
|
),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
@@ -383,7 +337,7 @@ private fun PreviewContent() {
|
|||||||
Text("No url")
|
Text("No url")
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData("!room:example.com", "Room", null, size = AvatarSize.EditRoomDetails),
|
avatarData = AvatarData("!room:example.com", "Room", null, size = size),
|
||||||
type = AvatarType.Room()
|
type = AvatarType.Room()
|
||||||
),
|
),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
@@ -394,7 +348,7 @@ private fun PreviewContent() {
|
|||||||
Text("Local")
|
Text("Local")
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData("!room:example.com", "Room", "content://test", size = AvatarSize.EditRoomDetails),
|
avatarData = AvatarData("!room:example.com", "Room", "content://test", size = size),
|
||||||
type = AvatarType.Room()
|
type = AvatarType.Room()
|
||||||
),
|
),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
@@ -405,7 +359,7 @@ private fun PreviewContent() {
|
|||||||
Text("MXC")
|
Text("MXC")
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData("!room:example.com", "Room", "mxc://test", size = AvatarSize.EditRoomDetails),
|
avatarData = AvatarData("!room:example.com", "Room", "mxc://test", size = size),
|
||||||
type = AvatarType.Room()
|
type = AvatarType.Room()
|
||||||
),
|
),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
@@ -421,7 +375,7 @@ private fun PreviewContent() {
|
|||||||
Text("No url")
|
Text("No url")
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData("!room:example.com", "Space", null, size = AvatarSize.EditRoomDetails),
|
avatarData = AvatarData("!room:example.com", "Space", null, size = size),
|
||||||
type = AvatarType.Space()
|
type = AvatarType.Space()
|
||||||
),
|
),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
@@ -432,7 +386,7 @@ private fun PreviewContent() {
|
|||||||
Text("Local")
|
Text("Local")
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData("!room:example.com", "Space", "content://test", size = AvatarSize.EditRoomDetails),
|
avatarData = AvatarData("!room:example.com", "Space", "content://test", size = size),
|
||||||
type = AvatarType.Space()
|
type = AvatarType.Space()
|
||||||
),
|
),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
@@ -443,7 +397,7 @@ private fun PreviewContent() {
|
|||||||
Text("MXC")
|
Text("MXC")
|
||||||
AvatarPickerView(
|
AvatarPickerView(
|
||||||
AvatarPickerState.Selected(
|
AvatarPickerState.Selected(
|
||||||
avatarData = AvatarData("!room:example.com", "Space", "mxc://test", size = AvatarSize.EditRoomDetails),
|
avatarData = AvatarData("!room:example.com", "Space", "mxc://test", size = size),
|
||||||
type = AvatarType.Space()
|
type = AvatarType.Space()
|
||||||
),
|
),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
|
|||||||
+2
-2
@@ -48,7 +48,7 @@ fun SpaceInfoRow(
|
|||||||
) {
|
) {
|
||||||
if (iconVector != null) {
|
if (iconVector != null) {
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier.size(20.dp),
|
modifier = Modifier.size(16.dp),
|
||||||
imageVector = iconVector,
|
imageVector = iconVector,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = ElementTheme.colors.iconTertiary,
|
tint = ElementTheme.colors.iconTertiary,
|
||||||
@@ -61,7 +61,7 @@ fun SpaceInfoRow(
|
|||||||
}
|
}
|
||||||
Text(
|
Text(
|
||||||
text = text,
|
text = text,
|
||||||
style = ElementTheme.typography.fontBodyLgRegular,
|
style = ElementTheme.typography.fontBodyMdRegular,
|
||||||
color = ElementTheme.colors.textSecondary,
|
color = ElementTheme.colors.textSecondary,
|
||||||
textAlign = TextAlign.Center,
|
textAlign = TextAlign.Center,
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:c04d4a82a3c99ad51ebb98ba01f84bb99682c0f0a2fc7e37f8f475b420008d08
|
oid sha256:cf9aa6f47084124e7c774ae78bc98404d960805bb1338784f3641251e33ac7c6
|
||||||
size 29419
|
size 29426
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:8ee76b66215dc883a7caa499031713ff1bf9bbe9108ae75e010230f9a10d5564
|
oid sha256:0d40447ece02c06d429d52138550c73e559f89dfd99f6dff7a92cfc3103f2dbe
|
||||||
size 34088
|
size 34093
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:379cd97eb39c693a22f362b065b28be829065620cd46a1ac86bdda1ae96e07e0
|
oid sha256:654d8e0acd3b3bbfb856414b5e5ca5615f3febacd8bebaa9af5a1e4d96c5d035
|
||||||
size 41537
|
size 41543
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:8e91d96e6399867fd1fd18053318067d52663c59f5d4f3c8b0bbbd74fbaed450
|
oid sha256:ea98589cd86e69ae6d57566b205b4dab70f5f4b5c8b0fee09c7e690cafa7f914
|
||||||
size 42508
|
size 42514
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:adc7703893dcdaf363d823ae3806622b0945adb49eda895aed2687f24a9208f2
|
oid sha256:37ffab3c3805f0bdafaca9035af6e4f706286f45a05a761ba7e7c160d45463c1
|
||||||
size 44221
|
size 44226
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:379cd97eb39c693a22f362b065b28be829065620cd46a1ac86bdda1ae96e07e0
|
oid sha256:654d8e0acd3b3bbfb856414b5e5ca5615f3febacd8bebaa9af5a1e4d96c5d035
|
||||||
size 41537
|
size 41543
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:08fdc74dc7a84894c7c44d2ed8d0dab8a39e3d1f0bd9d5ab0c40c334d3fb95e3
|
oid sha256:c20f293ba37e9af3e9f045de2ff1746af5e265d5dcf5bce5dc396da5c29387a6
|
||||||
size 42473
|
size 42482
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:785e9c2d9d7760ed98d7c33a56dd5778c3c2c652ee62675fda8e22c0b7aec1e5
|
oid sha256:fea7e63fd1d31db6500c4b110b9c05190da7b7201e1029177f8b5a61e728e100
|
||||||
size 37453
|
size 37458
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:4d2125380275b921562692b6308aa8086682e45443edf235c5f06916c77aed76
|
oid sha256:edc093b514b7e648d176a17b0c368fbed82e9c46d3f584fdb9c6094a6e5aba55
|
||||||
size 40418
|
size 40420
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:1374e31224ac28a10b25f9b4f7fe1c5bfd321b2d3f71f847cbd9f446dc988546
|
oid sha256:7e4dfa9c766681c750383863450aff0052f3083d495fcea1be74446ceed1cc4b
|
||||||
size 30468
|
size 30462
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:f086a534df766b627a3b17194c053b49215fecb2887a02eb4e9120fca8ada3d6
|
oid sha256:49309d3b55bf7a4313ab100d54f2d13b741b5bace7fec7d03e8e30765d8e100b
|
||||||
size 35330
|
size 35329
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:029abfce9e6ee628296c7edf48d1d437c9273225101b2327744982ea31b68521
|
oid sha256:ea38acc7ef6fb8307b83453eae80ec7c3154a80d0591c4f1fc1a87aa581a7926
|
||||||
size 43122
|
size 43124
|
||||||
|
|||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:a100d8b0987fe7c0fb5ec28f8e4182b57d50992c779520eb22d09ac6ff8bf979
|
oid sha256:7fd71e26763fb648a7b6ac898f2b354056354d1deee3d3712786a0c36e0cf476
|
||||||
size 44168
|
size 44168
|
||||||
|
|||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:2dcb3b3487ce7ff3a8fab6cc6dbba7868d096883830d8cb6c3632151dcd84b56
|
oid sha256:7d355371ce78c9a78900a6d76899289844c687b794c2afe127580a7c50b25935
|
||||||
size 45949
|
size 45949
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:029abfce9e6ee628296c7edf48d1d437c9273225101b2327744982ea31b68521
|
oid sha256:ea38acc7ef6fb8307b83453eae80ec7c3154a80d0591c4f1fc1a87aa581a7926
|
||||||
size 43122
|
size 43124
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:5259600e107074fc9658f33a0861b7ffd5fc385c2f60f98334b2e91765534c95
|
oid sha256:1c73b89404caa0fda5233c7dfed5810276a5cb1c1efd5843484b80c7f859b99a
|
||||||
size 44213
|
size 44209
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:b92a72ae6b5976b728901c363ac14c04905a5399cf6be5542a7eb33e5fa6e0cd
|
oid sha256:005c6520e884641ca1ca4e1248627937806328fc4ae527b811c65ee933a5616e
|
||||||
size 38888
|
size 38889
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:9495c93e50452de78efc30a041cf834150a166b0690dd3caee9ccc4565f68241
|
oid sha256:4fac6f85109de1b6beb4cff51a91dec8e34ed8ed50820829b63584226e611d5d
|
||||||
size 42063
|
size 42064
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:f3ac57efcab393ce13794dde2ad7e0d60757c0ef7fd0b09ff0a3c338de9a9edd
|
oid sha256:35c1709b912da1102a50aaa4f8470cbf05a75b03669aec51b90354ccb2b09ba9
|
||||||
size 85467
|
size 85336
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:f0567c1fe44efb4f9e188252a6840c228eb03e8d7954c95b79c693ac31451cd2
|
oid sha256:2d69d687090971ab7e9b87f959521109fbed48413ef217e1be3da8d7d985038b
|
||||||
size 38840
|
size 38751
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:f0567c1fe44efb4f9e188252a6840c228eb03e8d7954c95b79c693ac31451cd2
|
oid sha256:2d69d687090971ab7e9b87f959521109fbed48413ef217e1be3da8d7d985038b
|
||||||
size 38840
|
size 38751
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:0f8a54913bd0c207088cec3c0fff9bcab4dca084884493a32a615fa728c40625
|
oid sha256:2f60372df2ed22a4c52624e16324f7da1f6000eafdd519f84d42a29acec016ee
|
||||||
size 83659
|
size 83600
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:949b1843a373b86fde0bb5a0a0637f938e87aeb3d36b8c146052e99874dfb4dd
|
oid sha256:d2a6a7f3188eb9635ade7c0bbc2239257cfbe3166f4a6fb7917a1e5578f51d9e
|
||||||
size 37667
|
size 37436
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:949b1843a373b86fde0bb5a0a0637f938e87aeb3d36b8c146052e99874dfb4dd
|
oid sha256:d2a6a7f3188eb9635ade7c0bbc2239257cfbe3166f4a6fb7917a1e5578f51d9e
|
||||||
size 37667
|
size 37436
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:303d13645d55db4f9dcb31d68e49d21254778c500daa887694a6d402735ceac2
|
oid sha256:e64f044d19a709056de64976c6902baba7821885f35cd88873d5462fd52c3e4c
|
||||||
size 57175
|
size 57343
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:f38bf5504ece28cfe2bdaf5e958ecf8af30a1a3e97b3b2d9c43924c362673402
|
oid sha256:1d923c6e3503af723269dbe5c03f1024e7e3fb6ba746fb979f7735c0ad3b8e32
|
||||||
size 52181
|
size 52322
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:deb53bb9c200815d92744962dbd4c512e982acbb1ee1f7f5049c60961dac69b3
|
oid sha256:73608be44121b6125f14e3186ee533a5e479e30124e4276d342a25b476c00fb7
|
||||||
size 46859
|
size 46960
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:5848d60e57866920c956603d9a7b73ebde571aa410ff8fc4f423478d1a601edd
|
oid sha256:6ea33f7c49c55c81f976111bf79bdee21eb58f3394c8135a0324f6a503dc6fad
|
||||||
size 46984
|
size 47044
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:17f534cedbd3aa614327e66db670e4015a0b241e7c764b4654cc2b537a66bad9
|
oid sha256:ed108284075a1fc2523ac38d63dbff3176dbeb97942995d4b83aa4f0bc3de240
|
||||||
size 48837
|
size 48636
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:2bc7d4ed3af1798332d32494ff810ca0b2a3405dc1aa4c14235a9ebefcca2a2b
|
oid sha256:cb31f13ac29f7ebbbe18d2314bfaccfd20f87c308edda618ba36a6f968e2fe33
|
||||||
size 59450
|
size 59929
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:be63f80b133292a6d998fc7786f3a885af188ec63e50776dc42d3c794c97c04f
|
oid sha256:1ddc1a68ff028108928942a2ceb6df4caa3ce4322bea836b409e9a7ddf991194
|
||||||
size 60116
|
size 60567
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:9c6e4ac872b497e115985a4d9535c3720d3d9189537cfffcd3f3b30033db636b
|
oid sha256:0322da022d57cbd3b167f939d00bffdba69758c6508256f1251826cf5621b18b
|
||||||
size 57156
|
size 56970
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:e0ee7e4717d580472984c27b52edbc94e3c11d414df2e1921338e293f037cf10
|
oid sha256:e9b3bc80e39daf9809464a771089e431be993e8faba40431784990f61e7c2a4f
|
||||||
size 45272
|
size 45233
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:00e4005c9b8c964169657d4866ba4525683802f60fad963f9937c42a3af3aac9
|
oid sha256:aa6f0b045b83a4bd8b1f2ff9727964ec82ce7781f575ee6c1e306eeecd7da63b
|
||||||
size 45378
|
size 45319
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:6ba87e5bdf17fa152aa19d7b82375f72d94921befc193e3a2d16789c95184670
|
oid sha256:471ed0a332d92a41a82536c5ac2204909391730b811d44f54d8b308fb03447f9
|
||||||
size 47109
|
size 46791
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:8c68a6a0247bcbcca56f1a0d93b888bae5a7ac23edd86bea2fa764e852429cbd
|
oid sha256:325ef5fb725ea61c382eec96668b4fbfca9eee08e1503eb72e298b4d62d684e1
|
||||||
size 57656
|
size 58256
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:d51605bbf9d50ec062ad631f7e59b4df2ad33b5c0a5802a9213222b3831c93b1
|
oid sha256:fd73b018c8fd459eab5849c942e4f992357abbb4d0e0ba1cc5847e0985ff335d
|
||||||
size 58233
|
size 58836
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:70898c5044adbc7bb5a318bf218a551daeb62390d767eb0457774900f52d401a
|
oid sha256:57cd29c2032d425f94551a0fda528ec5dbaa467900f6235fb40aa6009ee22bec
|
||||||
size 55072
|
size 54897
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:aefedd3be6c0b57cebd07f7f008a7d46c1b6c9e35233047cdae9056d64e1be3a
|
oid sha256:806e56c218a0ad1c69dd997089cc8362e30624377fdceffeefadc523c712203b
|
||||||
size 184665
|
size 173137
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:14c46d22d1b75881d26a0eaf88ef2e551f5e9b9a2a146f0255e93c0540562c73
|
oid sha256:e25f6630680dcdf1e685235fc551dd6ea853b0902f30234e5fb9d4050f584450
|
||||||
size 181483
|
size 169862
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:b67f065531858f105c25d07a7943ea0e32d6294fad408c0b7f1fbe062367115e
|
oid sha256:8185dee1ad113c2b32a74de58c440abb366337accd1dea12047a85d323eff9eb
|
||||||
size 182058
|
size 171610
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:f41b7f0ce1524f287f31376dfb91d8c54d91ea3ad7dac7493f0168f3324c5d14
|
oid sha256:a13dd8a9228c1526482f0c7fd5e0347c8fa4998849507b759a0c9548455adfe7
|
||||||
size 179341
|
size 167957
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
Reference in New Issue
Block a user