Update rust sdk to 0.1.31: new uniqueId on timeline

This commit is contained in:
ganfra 2023-07-12 16:04:10 +02:00
parent c25cc148fd
commit beb10cbfc4
10 changed files with 26 additions and 28 deletions

View file

@ -36,6 +36,7 @@ import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf
import kotlinx.collections.immutable.toImmutableList
import kotlinx.collections.immutable.toPersistentList
import java.util.UUID
import kotlin.random.Random
fun aTimelineState(timelineItems: ImmutableList<TimelineItem> = persistentListOf()) = TimelineState(
@ -96,7 +97,7 @@ internal fun aTimelineItemList(content: TimelineItemEventContent): ImmutableList
}
fun aTimelineItemDaySeparator(): TimelineItem.Virtual {
return TimelineItem.Virtual("virtual_day", aTimelineItemDaySeparatorModel("Today"))
return TimelineItem.Virtual(UUID.randomUUID().mostSignificantBits, aTimelineItemDaySeparatorModel("Today"))
}
internal fun aTimelineItemEvent(
@ -111,7 +112,7 @@ internal fun aTimelineItemEvent(
timelineItemReactions: TimelineItemReactions = aTimelineItemReactions(),
): TimelineItem.Event {
return TimelineItem.Event(
id = eventId.value,
id = UUID.randomUUID().mostSignificantBits,
eventId = eventId,
transactionId = transactionId,
senderId = UserId("@senderId:domain"),

View file

@ -106,7 +106,7 @@ class TimelineItemsFactory @Inject constructor(
val timelineItemState =
when (val currentTimelineItem = timelineItems[index]) {
is MatrixTimelineItem.Event -> eventItemFactory.create(currentTimelineItem, index, timelineItems)
is MatrixTimelineItem.Virtual -> virtualItemFactory.create(currentTimelineItem, index)
is MatrixTimelineItem.Virtual -> virtualItemFactory.create(currentTimelineItem)
MatrixTimelineItem.Other -> null
}
timelineItemsCache[index] = timelineItemState

View file

@ -29,10 +29,9 @@ class TimelineItemVirtualFactory @Inject constructor(
fun create(
virtualTimelineItem: MatrixTimelineItem.Virtual,
index: Int,
): TimelineItem.Virtual {
return TimelineItem.Virtual(
id = "virtual_item_$index",
id = virtualTimelineItem.uniqueId,
model = virtualTimelineItem.computeModel()
)
}

View file

@ -24,16 +24,16 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.timeline.item.TimelineItemDebugInfo
import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState
import io.element.android.libraries.matrix.api.timeline.item.event.InReplyTo
import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState
import kotlinx.collections.immutable.ImmutableList
@Immutable
sealed interface TimelineItem {
fun identifier(): String = when (this) {
is Event -> id
is Virtual -> id
is Event -> id.toString()
is Virtual -> id.toString()
is GroupedEvents -> id
}
@ -45,13 +45,13 @@ sealed interface TimelineItem {
@Immutable
data class Virtual(
val id: String,
val id: Long,
val model: TimelineItemVirtualModel
) : TimelineItem
@Immutable
data class Event(
val id: String,
val id: Long,
val eventId: EventId? = null,
val transactionId: String? = null,
val senderId: UserId,
@ -83,6 +83,6 @@ sealed interface TimelineItem {
val events: ImmutableList<Event>,
) : TimelineItem {
// use last id with a suffix. Last will not change in cas of new event from backpagination.
val id = events.last().id + "_group"
val id = "${events.last().id}_group"
}
}