diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt index 7ea427a8cf..f252494df6 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt @@ -27,7 +27,6 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.offset -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.widthIn @@ -212,12 +211,13 @@ fun TimelineItemEventRow( Modifier.zIndex(1f) ) } + val bubbleState = BubbleState( + groupPosition = event.groupPosition, + isMine = event.isMine, + isHighlighted = isHighlighted, + ) MessageEventBubble( - state = BubbleState( - groupPosition = event.groupPosition, - isMine = event.isMine, - isHighlighted = isHighlighted, - ), + state = bubbleState, interactionSource = interactionSource, onClick = onClick, onLongClick = onLongClick, @@ -225,8 +225,12 @@ fun TimelineItemEventRow( .zIndex(-1f) .widthIn(max = 320.dp) ) { - val contentModifier = Modifier.padding(horizontal = 12.dp, vertical = 6.dp) - TimelineItemEventContentView(event.content, interactionSource, onClick, onLongClick, contentModifier) + TimelineItemEventContentView( + content = event.content, + interactionSource = interactionSource, + onClick = onClick, + onLongClick = onLongClick, + ) } TimelineItemReactionsView( reactionsState = event.reactionsState, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemContentView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemContentView.kt index bfb1d7f0c7..5171c92c40 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemContentView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemContentView.kt @@ -17,8 +17,10 @@ package io.element.android.features.messages.impl.timeline.components.event import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable 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.TimelineItemEventContent 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.TimelineItemUnknownContent +private fun Modifier.defaultContentPadding(): Modifier = padding( + horizontal = 12.dp, vertical = 6.dp +) + @Composable fun TimelineItemEventContentView( content: TimelineItemEventContent, @@ -37,26 +43,26 @@ fun TimelineItemEventContentView( when (content) { is TimelineItemEncryptedContent -> TimelineItemEncryptedView( content = content, - modifier = modifier + modifier = modifier.defaultContentPadding() ) is TimelineItemRedactedContent -> TimelineItemRedactedView( content = content, - modifier = modifier + modifier = modifier.defaultContentPadding() ) is TimelineItemTextBasedContent -> TimelineItemTextView( content = content, interactionSource = interactionSource, - modifier = modifier, + modifier = modifier.defaultContentPadding(), onTextClicked = onClick, onTextLongClicked = onLongClick ) is TimelineItemUnknownContent -> TimelineItemUnknownView( content = content, - modifier = modifier + modifier = modifier.defaultContentPadding() ) is TimelineItemImageContent -> TimelineItemImageView( content = content, - modifier = modifier + modifier = modifier, ) } } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemImageView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemImageView.kt index a532557ffb..ffc30e012f 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemImageView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/event/TimelineItemImageView.kt @@ -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.ElementPreviewLight import io.element.android.libraries.designsystem.preview.debugPlaceholderBackground +import timber.log.Timber @Composable fun TimelineItemImageView( content: TimelineItemImageContent, - modifier: Modifier = Modifier + modifier: Modifier = Modifier, ) { val widthPercent = if (content.aspectRatio > 1f) { 1f @@ -65,7 +66,11 @@ fun TimelineItemImageView( contentDescription = null, placeholder = debugPlaceholderBackground(ColorPainter(MaterialTheme.colorScheme.surfaceVariant)), contentScale = ContentScale.Crop, - onSuccess = { isLoading.value = false }, + onSuccess = { + Timber.v("OnSuccess = ${it.result.dataSource}") + isLoading.value = false + }, + onError = { Timber.e(it.result.throwable) } ) } }