Rename class.

This commit is contained in:
Benoit Marty 2023-02-15 12:59:30 +01:00
parent bdc96da04f
commit f8318bbb61
8 changed files with 58 additions and 58 deletions

View file

@ -20,7 +20,7 @@ import androidx.recyclerview.widget.DiffUtil
import io.element.android.features.messages.timeline.diff.CacheInvalidator import io.element.android.features.messages.timeline.diff.CacheInvalidator
import io.element.android.features.messages.timeline.diff.MatrixTimelineItemsDiffCallback import io.element.android.features.messages.timeline.diff.MatrixTimelineItemsDiffCallback
import io.element.android.features.messages.timeline.model.AggregatedReaction import io.element.android.features.messages.timeline.model.AggregatedReaction
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition import io.element.android.features.messages.timeline.model.TimelineItemGroupPosition
import io.element.android.features.messages.timeline.model.TimelineItem import io.element.android.features.messages.timeline.model.TimelineItem
import io.element.android.features.messages.timeline.model.TimelineItemReactions import io.element.android.features.messages.timeline.model.TimelineItemReactions
import io.element.android.features.messages.timeline.model.content.TimelineItemContent import io.element.android.features.messages.timeline.model.content.TimelineItemContent
@ -234,7 +234,7 @@ class TimelineItemsFactory @Inject constructor(
currentTimelineItem: MatrixTimelineItem.Event, currentTimelineItem: MatrixTimelineItem.Event,
timelineItems: List<MatrixTimelineItem>, timelineItems: List<MatrixTimelineItem>,
index: Int index: Int
): MessagesItemGroupPosition { ): TimelineItemGroupPosition {
val prevTimelineItem = val prevTimelineItem =
timelineItems.getOrNull(index - 1) as? MatrixTimelineItem.Event timelineItems.getOrNull(index - 1) as? MatrixTimelineItem.Event
val nextTimelineItem = val nextTimelineItem =
@ -244,10 +244,10 @@ class TimelineItemsFactory @Inject constructor(
val nextSender = nextTimelineItem?.event?.sender() val nextSender = nextTimelineItem?.event?.sender()
return when { return when {
previousSender != currentSender && nextSender == currentSender -> MessagesItemGroupPosition.First previousSender != currentSender && nextSender == currentSender -> TimelineItemGroupPosition.First
previousSender == currentSender && nextSender == currentSender -> MessagesItemGroupPosition.Middle previousSender == currentSender && nextSender == currentSender -> TimelineItemGroupPosition.Middle
previousSender == currentSender && nextSender != currentSender -> MessagesItemGroupPosition.Last previousSender == currentSender && nextSender != currentSender -> TimelineItemGroupPosition.Last
else -> MessagesItemGroupPosition.None else -> TimelineItemGroupPosition.None
} }
} }
} }

View file

@ -17,7 +17,7 @@
package io.element.android.features.messages.timeline package io.element.android.features.messages.timeline
import io.element.android.features.messages.timeline.model.AggregatedReaction import io.element.android.features.messages.timeline.model.AggregatedReaction
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition import io.element.android.features.messages.timeline.model.TimelineItemGroupPosition
import io.element.android.features.messages.timeline.model.TimelineItem import io.element.android.features.messages.timeline.model.TimelineItem
import io.element.android.features.messages.timeline.model.TimelineItemReactions import io.element.android.features.messages.timeline.model.TimelineItemReactions
import io.element.android.features.messages.timeline.model.content.TimelineItemContent import io.element.android.features.messages.timeline.model.content.TimelineItemContent
@ -40,33 +40,33 @@ internal fun aTimelineItemList(content: TimelineItemContent): ImmutableList<Time
aMessageEvent( aMessageEvent(
isMine = false, isMine = false,
content = content, content = content,
groupPosition = MessagesItemGroupPosition.Last groupPosition = TimelineItemGroupPosition.Last
), ),
aMessageEvent( aMessageEvent(
isMine = false, isMine = false,
content = content, content = content,
groupPosition = MessagesItemGroupPosition.Middle groupPosition = TimelineItemGroupPosition.Middle
), ),
aMessageEvent( aMessageEvent(
isMine = false, isMine = false,
content = content, content = content,
groupPosition = MessagesItemGroupPosition.First groupPosition = TimelineItemGroupPosition.First
), ),
// 3 items (First Middle Last) with isMine = true // 3 items (First Middle Last) with isMine = true
aMessageEvent( aMessageEvent(
isMine = true, isMine = true,
content = content, content = content,
groupPosition = MessagesItemGroupPosition.Last groupPosition = TimelineItemGroupPosition.Last
), ),
aMessageEvent( aMessageEvent(
isMine = true, isMine = true,
content = content, content = content,
groupPosition = MessagesItemGroupPosition.Middle groupPosition = TimelineItemGroupPosition.Middle
), ),
aMessageEvent( aMessageEvent(
isMine = true, isMine = true,
content = content, content = content,
groupPosition = MessagesItemGroupPosition.First groupPosition = TimelineItemGroupPosition.First
), ),
) )
} }
@ -74,7 +74,7 @@ internal fun aTimelineItemList(content: TimelineItemContent): ImmutableList<Time
internal fun aMessageEvent( internal fun aMessageEvent(
isMine: Boolean = false, isMine: Boolean = false,
content: TimelineItemContent = aTimelineItemContent(), content: TimelineItemContent = aTimelineItemContent(),
groupPosition: MessagesItemGroupPosition = MessagesItemGroupPosition.First groupPosition: TimelineItemGroupPosition = TimelineItemGroupPosition.First
): TimelineItem.MessageEvent { ): TimelineItem.MessageEvent {
return TimelineItem.MessageEvent( return TimelineItem.MessageEvent(
id = EventId(Math.random().toString()), id = EventId(Math.random().toString()),

View file

@ -17,11 +17,11 @@
package io.element.android.features.messages.timeline.components package io.element.android.features.messages.timeline.components
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition import io.element.android.features.messages.timeline.model.TimelineItemGroupPosition
@Stable @Stable
data class BubbleState( data class BubbleState(
val groupPosition: MessagesItemGroupPosition, val groupPosition: TimelineItemGroupPosition,
val isMine: Boolean, val isMine: Boolean,
val isHighlighted: Boolean, val isHighlighted: Boolean,
) )

View file

@ -17,42 +17,42 @@
package io.element.android.features.messages.timeline.components package io.element.android.features.messages.timeline.components
import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition import io.element.android.features.messages.timeline.model.TimelineItemGroupPosition
open class BubbleStateProvider : PreviewParameterProvider<BubbleState> { open class BubbleStateProvider : PreviewParameterProvider<BubbleState> {
override val values: Sequence<BubbleState> override val values: Sequence<BubbleState>
get() = sequenceOf( get() = sequenceOf(
BubbleState(MessagesItemGroupPosition.First, isMine = false, isHighlighted = false), BubbleState(TimelineItemGroupPosition.First, isMine = false, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.First, isMine = false, isHighlighted = true), BubbleState(TimelineItemGroupPosition.First, isMine = false, isHighlighted = true),
BubbleState(MessagesItemGroupPosition.First, isMine = false, isHighlighted = false), BubbleState(TimelineItemGroupPosition.First, isMine = false, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.First, isMine = false, isHighlighted = true), BubbleState(TimelineItemGroupPosition.First, isMine = false, isHighlighted = true),
BubbleState(MessagesItemGroupPosition.First, isMine = true, isHighlighted = false), BubbleState(TimelineItemGroupPosition.First, isMine = true, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.First, isMine = true, isHighlighted = true), BubbleState(TimelineItemGroupPosition.First, isMine = true, isHighlighted = true),
BubbleState(MessagesItemGroupPosition.First, isMine = true, isHighlighted = false), BubbleState(TimelineItemGroupPosition.First, isMine = true, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.First, isMine = true, isHighlighted = true), BubbleState(TimelineItemGroupPosition.First, isMine = true, isHighlighted = true),
BubbleState(MessagesItemGroupPosition.Middle, isMine = false, isHighlighted = false), BubbleState(TimelineItemGroupPosition.Middle, isMine = false, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.Middle, isMine = false, isHighlighted = true), BubbleState(TimelineItemGroupPosition.Middle, isMine = false, isHighlighted = true),
BubbleState(MessagesItemGroupPosition.Middle, isMine = false, isHighlighted = false), BubbleState(TimelineItemGroupPosition.Middle, isMine = false, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.Middle, isMine = false, isHighlighted = true), BubbleState(TimelineItemGroupPosition.Middle, isMine = false, isHighlighted = true),
BubbleState(MessagesItemGroupPosition.Middle, isMine = true, isHighlighted = false), BubbleState(TimelineItemGroupPosition.Middle, isMine = true, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.Middle, isMine = true, isHighlighted = true), BubbleState(TimelineItemGroupPosition.Middle, isMine = true, isHighlighted = true),
BubbleState(MessagesItemGroupPosition.Middle, isMine = true, isHighlighted = false), BubbleState(TimelineItemGroupPosition.Middle, isMine = true, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.Middle, isMine = true, isHighlighted = true), BubbleState(TimelineItemGroupPosition.Middle, isMine = true, isHighlighted = true),
BubbleState(MessagesItemGroupPosition.Last, isMine = false, isHighlighted = false), BubbleState(TimelineItemGroupPosition.Last, isMine = false, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.Last, isMine = false, isHighlighted = true), BubbleState(TimelineItemGroupPosition.Last, isMine = false, isHighlighted = true),
BubbleState(MessagesItemGroupPosition.Last, isMine = false, isHighlighted = false), BubbleState(TimelineItemGroupPosition.Last, isMine = false, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.Last, isMine = false, isHighlighted = true), BubbleState(TimelineItemGroupPosition.Last, isMine = false, isHighlighted = true),
BubbleState(MessagesItemGroupPosition.Last, isMine = true, isHighlighted = false), BubbleState(TimelineItemGroupPosition.Last, isMine = true, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.Last, isMine = true, isHighlighted = true), BubbleState(TimelineItemGroupPosition.Last, isMine = true, isHighlighted = true),
BubbleState(MessagesItemGroupPosition.Last, isMine = true, isHighlighted = false), BubbleState(TimelineItemGroupPosition.Last, isMine = true, isHighlighted = false),
BubbleState(MessagesItemGroupPosition.Last, isMine = true, isHighlighted = true), BubbleState(TimelineItemGroupPosition.Last, isMine = true, isHighlighted = true),
) )
} }
fun aBubbleState() = BubbleState( fun aBubbleState() = BubbleState(
groupPosition = MessagesItemGroupPosition.First, groupPosition = TimelineItemGroupPosition.First,
isMine = false, isMine = false,
isHighlighted = false, isHighlighted = false,
) )

View file

@ -35,7 +35,7 @@ import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
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.features.messages.timeline.model.MessagesItemGroupPosition import io.element.android.features.messages.timeline.model.TimelineItemGroupPosition
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.theme.ElementTheme import io.element.android.libraries.designsystem.theme.ElementTheme
@ -55,22 +55,22 @@ fun MessageEventBubble(
) { ) {
fun bubbleShape(): Shape { fun bubbleShape(): Shape {
return when (state.groupPosition) { return when (state.groupPosition) {
MessagesItemGroupPosition.First -> if (state.isMine) { TimelineItemGroupPosition.First -> if (state.isMine) {
RoundedCornerShape(BUBBLE_RADIUS, BUBBLE_RADIUS, 0.dp, BUBBLE_RADIUS) RoundedCornerShape(BUBBLE_RADIUS, BUBBLE_RADIUS, 0.dp, BUBBLE_RADIUS)
} else { } else {
RoundedCornerShape(BUBBLE_RADIUS, BUBBLE_RADIUS, BUBBLE_RADIUS, 0.dp) RoundedCornerShape(BUBBLE_RADIUS, BUBBLE_RADIUS, BUBBLE_RADIUS, 0.dp)
} }
MessagesItemGroupPosition.Middle -> if (state.isMine) { TimelineItemGroupPosition.Middle -> if (state.isMine) {
RoundedCornerShape(BUBBLE_RADIUS, 0.dp, 0.dp, BUBBLE_RADIUS) RoundedCornerShape(BUBBLE_RADIUS, 0.dp, 0.dp, BUBBLE_RADIUS)
} else { } else {
RoundedCornerShape(0.dp, BUBBLE_RADIUS, BUBBLE_RADIUS, 0.dp) RoundedCornerShape(0.dp, BUBBLE_RADIUS, BUBBLE_RADIUS, 0.dp)
} }
MessagesItemGroupPosition.Last -> if (state.isMine) { TimelineItemGroupPosition.Last -> if (state.isMine) {
RoundedCornerShape(BUBBLE_RADIUS, 0.dp, BUBBLE_RADIUS, BUBBLE_RADIUS) RoundedCornerShape(BUBBLE_RADIUS, 0.dp, BUBBLE_RADIUS, BUBBLE_RADIUS)
} else { } else {
RoundedCornerShape(0.dp, BUBBLE_RADIUS, BUBBLE_RADIUS, BUBBLE_RADIUS) RoundedCornerShape(0.dp, BUBBLE_RADIUS, BUBBLE_RADIUS, BUBBLE_RADIUS)
} }
MessagesItemGroupPosition.None -> TimelineItemGroupPosition.None ->
RoundedCornerShape( RoundedCornerShape(
BUBBLE_RADIUS, BUBBLE_RADIUS,
BUBBLE_RADIUS, BUBBLE_RADIUS,

View file

@ -35,7 +35,7 @@ sealed interface TimelineItem {
val content: TimelineItemContent, val content: TimelineItemContent,
val sentTime: String = "", val sentTime: String = "",
val isMine: Boolean = false, val isMine: Boolean = false,
val groupPosition: MessagesItemGroupPosition = MessagesItemGroupPosition.None, val groupPosition: TimelineItemGroupPosition = TimelineItemGroupPosition.None,
val reactionsState: TimelineItemReactions val reactionsState: TimelineItemReactions
) : TimelineItem { ) : TimelineItem {

View file

@ -19,11 +19,11 @@ package io.element.android.features.messages.timeline.model
import androidx.compose.runtime.Immutable import androidx.compose.runtime.Immutable
@Immutable @Immutable
sealed interface MessagesItemGroupPosition { sealed interface TimelineItemGroupPosition {
object First : MessagesItemGroupPosition object First : TimelineItemGroupPosition
object Middle : MessagesItemGroupPosition object Middle : TimelineItemGroupPosition
object Last : MessagesItemGroupPosition object Last : TimelineItemGroupPosition
object None : MessagesItemGroupPosition object None : TimelineItemGroupPosition
fun isNew(): Boolean = when (this) { fun isNew(): Boolean = when (this) {
First, None -> true First, None -> true

View file

@ -18,11 +18,11 @@ package io.element.android.features.messages.timeline.model
import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.tooling.preview.PreviewParameterProvider
internal class TimelineItemGroupPositionProvider : PreviewParameterProvider<MessagesItemGroupPosition> { internal class TimelineItemGroupPositionProvider : PreviewParameterProvider<TimelineItemGroupPosition> {
override val values = sequenceOf( override val values = sequenceOf(
MessagesItemGroupPosition.First, TimelineItemGroupPosition.First,
MessagesItemGroupPosition.Middle, TimelineItemGroupPosition.Middle,
MessagesItemGroupPosition.Last, TimelineItemGroupPosition.Last,
MessagesItemGroupPosition.None, TimelineItemGroupPosition.None,
) )
} }