Add fetchMembers and use it when init timeline (import again rust-sdk with fix on poisoning)

This commit is contained in:
ganfra 2023-02-14 20:13:47 +01:00
parent 2176aa8e5a
commit 9526eac81c
13 changed files with 106 additions and 107 deletions

View file

@ -83,11 +83,11 @@ import io.element.android.features.messages.timeline.model.virtual.TimelineItemL
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.utils.PairCombinedPreviewParameter
import io.element.android.libraries.matrix.core.EventId
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.launch
import timber.log.Timber
@Composable
fun TimelineView(
@ -117,14 +117,6 @@ fun TimelineView(
onLongClick = onMessageLongClicked
)
}
/*
if (state.hasMoreToLoad) {
item {
TimelineLoadingMoreIndicator()
}
}
*/
}
fun onReachedLoadMore() {
@ -165,12 +157,23 @@ fun TimelineItemRow(
is TimelineItem.Virtual -> TimelineItemVirtualRow(
virtual = timelineItem
)
is TimelineItem.Event -> TimelineItemEventRow(
event = timelineItem,
isHighlighted = isHighlighted,
onClick = { onClick(timelineItem) },
onLongClick = { onLongClick(timelineItem) }
)
is TimelineItem.Event -> {
fun onClick() {
onClick(timelineItem)
}
fun onLongClick() {
onLongClick(timelineItem)
}
TimelineItemEventRow(
event = timelineItem,
isHighlighted = isHighlighted,
onClick = ::onClick,
onLongClick = ::onLongClick
)
}
}
}

View file

@ -33,7 +33,7 @@ class TimelineItemEventFactory @Inject constructor(
private val contentFactory: TimelineItemContentFactory,
) {
suspend fun create(
fun create(
currentTimelineItem: MatrixTimelineItem.Event,
index: Int,
timelineItems: List<MatrixTimelineItem>,

View file

@ -29,7 +29,7 @@ class TimelineItemVirtualFactory @Inject constructor(
private val daySeparatorFactory: TimelineItemDaySeparatorFactory,
) {
suspend fun create(
fun create(
currentTimelineItem: MatrixTimelineItem.Virtual,
index: Int,
timelineItems: List<MatrixTimelineItem>,

View file

@ -24,11 +24,19 @@ import io.element.android.libraries.matrix.core.EventId
@Immutable
sealed interface TimelineItem {
fun identifier(): String = when(this){
is Event -> id
is Virtual -> id
}
@Immutable
data class Virtual(
val id: String,
val model: TimelineItemVirtualModel
) : TimelineItem
@Immutable
data class Event(
val id: String,
val eventId: EventId? = null,