Rename class.
This commit is contained in:
@@ -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.MatrixTimelineItemsDiffCallback
|
||||
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.TimelineItemReactions
|
||||
import io.element.android.features.messages.timeline.model.content.TimelineItemContent
|
||||
@@ -234,7 +234,7 @@ class TimelineItemsFactory @Inject constructor(
|
||||
currentTimelineItem: MatrixTimelineItem.Event,
|
||||
timelineItems: List<MatrixTimelineItem>,
|
||||
index: Int
|
||||
): MessagesItemGroupPosition {
|
||||
): TimelineItemGroupPosition {
|
||||
val prevTimelineItem =
|
||||
timelineItems.getOrNull(index - 1) as? MatrixTimelineItem.Event
|
||||
val nextTimelineItem =
|
||||
@@ -244,10 +244,10 @@ class TimelineItemsFactory @Inject constructor(
|
||||
val nextSender = nextTimelineItem?.event?.sender()
|
||||
|
||||
return when {
|
||||
previousSender != currentSender && nextSender == currentSender -> MessagesItemGroupPosition.First
|
||||
previousSender == currentSender && nextSender == currentSender -> MessagesItemGroupPosition.Middle
|
||||
previousSender == currentSender && nextSender != currentSender -> MessagesItemGroupPosition.Last
|
||||
else -> MessagesItemGroupPosition.None
|
||||
previousSender != currentSender && nextSender == currentSender -> TimelineItemGroupPosition.First
|
||||
previousSender == currentSender && nextSender == currentSender -> TimelineItemGroupPosition.Middle
|
||||
previousSender == currentSender && nextSender != currentSender -> TimelineItemGroupPosition.Last
|
||||
else -> TimelineItemGroupPosition.None
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
package io.element.android.features.messages.timeline
|
||||
|
||||
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.TimelineItemReactions
|
||||
import io.element.android.features.messages.timeline.model.content.TimelineItemContent
|
||||
@@ -40,33 +40,33 @@ internal fun aTimelineItemList(content: TimelineItemContent): ImmutableList<Time
|
||||
aMessageEvent(
|
||||
isMine = false,
|
||||
content = content,
|
||||
groupPosition = MessagesItemGroupPosition.Last
|
||||
groupPosition = TimelineItemGroupPosition.Last
|
||||
),
|
||||
aMessageEvent(
|
||||
isMine = false,
|
||||
content = content,
|
||||
groupPosition = MessagesItemGroupPosition.Middle
|
||||
groupPosition = TimelineItemGroupPosition.Middle
|
||||
),
|
||||
aMessageEvent(
|
||||
isMine = false,
|
||||
content = content,
|
||||
groupPosition = MessagesItemGroupPosition.First
|
||||
groupPosition = TimelineItemGroupPosition.First
|
||||
),
|
||||
// 3 items (First Middle Last) with isMine = true
|
||||
aMessageEvent(
|
||||
isMine = true,
|
||||
content = content,
|
||||
groupPosition = MessagesItemGroupPosition.Last
|
||||
groupPosition = TimelineItemGroupPosition.Last
|
||||
),
|
||||
aMessageEvent(
|
||||
isMine = true,
|
||||
content = content,
|
||||
groupPosition = MessagesItemGroupPosition.Middle
|
||||
groupPosition = TimelineItemGroupPosition.Middle
|
||||
),
|
||||
aMessageEvent(
|
||||
isMine = true,
|
||||
content = content,
|
||||
groupPosition = MessagesItemGroupPosition.First
|
||||
groupPosition = TimelineItemGroupPosition.First
|
||||
),
|
||||
)
|
||||
}
|
||||
@@ -74,7 +74,7 @@ internal fun aTimelineItemList(content: TimelineItemContent): ImmutableList<Time
|
||||
internal fun aMessageEvent(
|
||||
isMine: Boolean = false,
|
||||
content: TimelineItemContent = aTimelineItemContent(),
|
||||
groupPosition: MessagesItemGroupPosition = MessagesItemGroupPosition.First
|
||||
groupPosition: TimelineItemGroupPosition = TimelineItemGroupPosition.First
|
||||
): TimelineItem.MessageEvent {
|
||||
return TimelineItem.MessageEvent(
|
||||
id = EventId(Math.random().toString()),
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
package io.element.android.features.messages.timeline.components
|
||||
|
||||
import androidx.compose.runtime.Stable
|
||||
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition
|
||||
import io.element.android.features.messages.timeline.model.TimelineItemGroupPosition
|
||||
|
||||
@Stable
|
||||
data class BubbleState(
|
||||
val groupPosition: MessagesItemGroupPosition,
|
||||
val groupPosition: TimelineItemGroupPosition,
|
||||
val isMine: Boolean,
|
||||
val isHighlighted: Boolean,
|
||||
)
|
||||
|
||||
@@ -17,42 +17,42 @@
|
||||
package io.element.android.features.messages.timeline.components
|
||||
|
||||
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> {
|
||||
override val values: Sequence<BubbleState>
|
||||
get() = sequenceOf(
|
||||
BubbleState(MessagesItemGroupPosition.First, isMine = false, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.First, isMine = false, isHighlighted = true),
|
||||
BubbleState(MessagesItemGroupPosition.First, isMine = false, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.First, isMine = false, isHighlighted = true),
|
||||
BubbleState(MessagesItemGroupPosition.First, isMine = true, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.First, isMine = true, isHighlighted = true),
|
||||
BubbleState(MessagesItemGroupPosition.First, isMine = true, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.First, isMine = true, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.First, isMine = false, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.First, isMine = false, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.First, isMine = false, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.First, isMine = false, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.First, isMine = true, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.First, isMine = true, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.First, isMine = true, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.First, isMine = true, isHighlighted = true),
|
||||
|
||||
BubbleState(MessagesItemGroupPosition.Middle, isMine = false, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.Middle, isMine = false, isHighlighted = true),
|
||||
BubbleState(MessagesItemGroupPosition.Middle, isMine = false, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.Middle, isMine = false, isHighlighted = true),
|
||||
BubbleState(MessagesItemGroupPosition.Middle, isMine = true, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.Middle, isMine = true, isHighlighted = true),
|
||||
BubbleState(MessagesItemGroupPosition.Middle, isMine = true, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.Middle, isMine = true, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.Middle, isMine = false, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.Middle, isMine = false, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.Middle, isMine = false, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.Middle, isMine = false, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.Middle, isMine = true, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.Middle, isMine = true, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.Middle, isMine = true, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.Middle, isMine = true, isHighlighted = true),
|
||||
|
||||
BubbleState(MessagesItemGroupPosition.Last, isMine = false, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.Last, isMine = false, isHighlighted = true),
|
||||
BubbleState(MessagesItemGroupPosition.Last, isMine = false, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.Last, isMine = false, isHighlighted = true),
|
||||
BubbleState(MessagesItemGroupPosition.Last, isMine = true, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.Last, isMine = true, isHighlighted = true),
|
||||
BubbleState(MessagesItemGroupPosition.Last, isMine = true, isHighlighted = false),
|
||||
BubbleState(MessagesItemGroupPosition.Last, isMine = true, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.Last, isMine = false, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.Last, isMine = false, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.Last, isMine = false, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.Last, isMine = false, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.Last, isMine = true, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.Last, isMine = true, isHighlighted = true),
|
||||
BubbleState(TimelineItemGroupPosition.Last, isMine = true, isHighlighted = false),
|
||||
BubbleState(TimelineItemGroupPosition.Last, isMine = true, isHighlighted = true),
|
||||
)
|
||||
}
|
||||
|
||||
fun aBubbleState() = BubbleState(
|
||||
groupPosition = MessagesItemGroupPosition.First,
|
||||
groupPosition = TimelineItemGroupPosition.First,
|
||||
isMine = false,
|
||||
isHighlighted = false,
|
||||
)
|
||||
|
||||
@@ -35,7 +35,7 @@ import androidx.compose.ui.graphics.Shape
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
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.ElementPreviewLight
|
||||
import io.element.android.libraries.designsystem.theme.ElementTheme
|
||||
@@ -55,22 +55,22 @@ fun MessageEventBubble(
|
||||
) {
|
||||
fun bubbleShape(): Shape {
|
||||
return when (state.groupPosition) {
|
||||
MessagesItemGroupPosition.First -> if (state.isMine) {
|
||||
TimelineItemGroupPosition.First -> if (state.isMine) {
|
||||
RoundedCornerShape(BUBBLE_RADIUS, BUBBLE_RADIUS, 0.dp, BUBBLE_RADIUS)
|
||||
} else {
|
||||
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)
|
||||
} else {
|
||||
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)
|
||||
} else {
|
||||
RoundedCornerShape(0.dp, BUBBLE_RADIUS, BUBBLE_RADIUS, BUBBLE_RADIUS)
|
||||
}
|
||||
MessagesItemGroupPosition.None ->
|
||||
TimelineItemGroupPosition.None ->
|
||||
RoundedCornerShape(
|
||||
BUBBLE_RADIUS,
|
||||
BUBBLE_RADIUS,
|
||||
|
||||
@@ -35,7 +35,7 @@ sealed interface TimelineItem {
|
||||
val content: TimelineItemContent,
|
||||
val sentTime: String = "",
|
||||
val isMine: Boolean = false,
|
||||
val groupPosition: MessagesItemGroupPosition = MessagesItemGroupPosition.None,
|
||||
val groupPosition: TimelineItemGroupPosition = TimelineItemGroupPosition.None,
|
||||
val reactionsState: TimelineItemReactions
|
||||
) : TimelineItem {
|
||||
|
||||
|
||||
@@ -19,11 +19,11 @@ package io.element.android.features.messages.timeline.model
|
||||
import androidx.compose.runtime.Immutable
|
||||
|
||||
@Immutable
|
||||
sealed interface MessagesItemGroupPosition {
|
||||
object First : MessagesItemGroupPosition
|
||||
object Middle : MessagesItemGroupPosition
|
||||
object Last : MessagesItemGroupPosition
|
||||
object None : MessagesItemGroupPosition
|
||||
sealed interface TimelineItemGroupPosition {
|
||||
object First : TimelineItemGroupPosition
|
||||
object Middle : TimelineItemGroupPosition
|
||||
object Last : TimelineItemGroupPosition
|
||||
object None : TimelineItemGroupPosition
|
||||
|
||||
fun isNew(): Boolean = when (this) {
|
||||
First, None -> true
|
||||
|
||||
@@ -18,11 +18,11 @@ package io.element.android.features.messages.timeline.model
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
|
||||
internal class TimelineItemGroupPositionProvider : PreviewParameterProvider<MessagesItemGroupPosition> {
|
||||
internal class TimelineItemGroupPositionProvider : PreviewParameterProvider<TimelineItemGroupPosition> {
|
||||
override val values = sequenceOf(
|
||||
MessagesItemGroupPosition.First,
|
||||
MessagesItemGroupPosition.Middle,
|
||||
MessagesItemGroupPosition.Last,
|
||||
MessagesItemGroupPosition.None,
|
||||
TimelineItemGroupPosition.First,
|
||||
TimelineItemGroupPosition.Middle,
|
||||
TimelineItemGroupPosition.Last,
|
||||
TimelineItemGroupPosition.None,
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user