Timeline: Remove padding from parent Modifier

This commit is contained in:
ganfra 2023-04-26 16:12:52 +02:00
parent 93531665d8
commit 34c45eb6e0
3 changed files with 30 additions and 15 deletions

View file

@ -27,7 +27,6 @@ import androidx.compose.foundation.layout.fillMaxSize
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.offset import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.layout.widthIn
@ -212,12 +211,13 @@ fun TimelineItemEventRow(
Modifier.zIndex(1f) Modifier.zIndex(1f)
) )
} }
val bubbleState = BubbleState(
groupPosition = event.groupPosition,
isMine = event.isMine,
isHighlighted = isHighlighted,
)
MessageEventBubble( MessageEventBubble(
state = BubbleState( state = bubbleState,
groupPosition = event.groupPosition,
isMine = event.isMine,
isHighlighted = isHighlighted,
),
interactionSource = interactionSource, interactionSource = interactionSource,
onClick = onClick, onClick = onClick,
onLongClick = onLongClick, onLongClick = onLongClick,
@ -225,8 +225,12 @@ fun TimelineItemEventRow(
.zIndex(-1f) .zIndex(-1f)
.widthIn(max = 320.dp) .widthIn(max = 320.dp)
) { ) {
val contentModifier = Modifier.padding(horizontal = 12.dp, vertical = 6.dp) TimelineItemEventContentView(
TimelineItemEventContentView(event.content, interactionSource, onClick, onLongClick, contentModifier) content = event.content,
interactionSource = interactionSource,
onClick = onClick,
onLongClick = onLongClick,
)
} }
TimelineItemReactionsView( TimelineItemReactionsView(
reactionsState = event.reactionsState, reactionsState = event.reactionsState,

View file

@ -17,8 +17,10 @@
package io.element.android.features.messages.impl.timeline.components.event package io.element.android.features.messages.impl.timeline.components.event
import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEncryptedContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEncryptedContent
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContent
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemImageContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemImageContent
@ -26,6 +28,10 @@ import io.element.android.features.messages.impl.timeline.model.event.TimelineIt
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemTextBasedContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemTextBasedContent
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemUnknownContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemUnknownContent
private fun Modifier.defaultContentPadding(): Modifier = padding(
horizontal = 12.dp, vertical = 6.dp
)
@Composable @Composable
fun TimelineItemEventContentView( fun TimelineItemEventContentView(
content: TimelineItemEventContent, content: TimelineItemEventContent,
@ -37,26 +43,26 @@ fun TimelineItemEventContentView(
when (content) { when (content) {
is TimelineItemEncryptedContent -> TimelineItemEncryptedView( is TimelineItemEncryptedContent -> TimelineItemEncryptedView(
content = content, content = content,
modifier = modifier modifier = modifier.defaultContentPadding()
) )
is TimelineItemRedactedContent -> TimelineItemRedactedView( is TimelineItemRedactedContent -> TimelineItemRedactedView(
content = content, content = content,
modifier = modifier modifier = modifier.defaultContentPadding()
) )
is TimelineItemTextBasedContent -> TimelineItemTextView( is TimelineItemTextBasedContent -> TimelineItemTextView(
content = content, content = content,
interactionSource = interactionSource, interactionSource = interactionSource,
modifier = modifier, modifier = modifier.defaultContentPadding(),
onTextClicked = onClick, onTextClicked = onClick,
onTextLongClicked = onLongClick onTextLongClicked = onLongClick
) )
is TimelineItemUnknownContent -> TimelineItemUnknownView( is TimelineItemUnknownContent -> TimelineItemUnknownView(
content = content, content = content,
modifier = modifier modifier = modifier.defaultContentPadding()
) )
is TimelineItemImageContent -> TimelineItemImageView( is TimelineItemImageContent -> TimelineItemImageView(
content = content, content = content,
modifier = modifier modifier = modifier,
) )
} }
} }

View file

@ -37,11 +37,12 @@ import io.element.android.features.messages.impl.timeline.model.event.TimelineIt
import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewDark
import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.ElementPreviewLight
import io.element.android.libraries.designsystem.preview.debugPlaceholderBackground import io.element.android.libraries.designsystem.preview.debugPlaceholderBackground
import timber.log.Timber
@Composable @Composable
fun TimelineItemImageView( fun TimelineItemImageView(
content: TimelineItemImageContent, content: TimelineItemImageContent,
modifier: Modifier = Modifier modifier: Modifier = Modifier,
) { ) {
val widthPercent = if (content.aspectRatio > 1f) { val widthPercent = if (content.aspectRatio > 1f) {
1f 1f
@ -65,7 +66,11 @@ fun TimelineItemImageView(
contentDescription = null, contentDescription = null,
placeholder = debugPlaceholderBackground(ColorPainter(MaterialTheme.colorScheme.surfaceVariant)), placeholder = debugPlaceholderBackground(ColorPainter(MaterialTheme.colorScheme.surfaceVariant)),
contentScale = ContentScale.Crop, contentScale = ContentScale.Crop,
onSuccess = { isLoading.value = false }, onSuccess = {
Timber.v("OnSuccess = ${it.result.dataSource}")
isLoading.value = false
},
onError = { Timber.e(it.result.throwable) }
) )
} }
} }