Update rust-sdk (from maven)
This commit is contained in:
parent
22fd4ac7f0
commit
830b8caa3a
12 changed files with 86 additions and 96 deletions
|
|
@ -28,8 +28,6 @@ import io.element.android.features.messages.timeline.factories.TimelineItemsFact
|
|||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.matrix.core.EventId
|
||||
import io.element.android.libraries.matrix.room.MatrixRoom
|
||||
import io.element.android.libraries.matrix.timeline.MatrixTimeline
|
||||
import io.element.android.libraries.matrix.timeline.MatrixTimelineItem
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
|
|
@ -47,17 +45,6 @@ class TimelinePresenter @Inject constructor(
|
|||
|
||||
private val timeline = room.timeline()
|
||||
|
||||
private class TimelineCallback(
|
||||
private val coroutineScope: CoroutineScope,
|
||||
private val timelineItemsFactory: TimelineItemsFactory,
|
||||
) : MatrixTimeline.Callback {
|
||||
override fun onPushedTimelineItem(timelineItem: MatrixTimelineItem) {
|
||||
coroutineScope.launch {
|
||||
timelineItemsFactory.pushItem(timelineItem)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
override fun present(): TimelineState {
|
||||
val localCoroutineScope = rememberCoroutineScope()
|
||||
|
|
@ -83,10 +70,8 @@ class TimelinePresenter @Inject constructor(
|
|||
}
|
||||
|
||||
DisposableEffect(Unit) {
|
||||
timeline.callback = TimelineCallback(localCoroutineScope, timelineItemsFactory)
|
||||
timeline.initialize()
|
||||
onDispose {
|
||||
timeline.callback = null
|
||||
timeline.dispose()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ import io.element.android.features.messages.timeline.diff.MatrixTimelineItemsDif
|
|||
import io.element.android.features.messages.timeline.factories.event.TimelineItemEventFactory
|
||||
import io.element.android.features.messages.timeline.factories.virtual.TimelineItemVirtualFactory
|
||||
import io.element.android.features.messages.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.timeline.util.invalidateLast
|
||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||
import io.element.android.libraries.matrix.timeline.MatrixTimelineItem
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
|
|
@ -61,18 +60,6 @@ class TimelineItemsFactory @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
suspend fun pushItem(
|
||||
timelineItem: MatrixTimelineItem,
|
||||
) = withContext(dispatchers.computation) {
|
||||
lock.withLock {
|
||||
// Makes sure to invalidate last as we need to recompute some data (like groupPosition)
|
||||
timelineItemsCache.invalidateLast()
|
||||
timelineItemsCache.add(null)
|
||||
matrixTimelineItems = matrixTimelineItems + timelineItem
|
||||
buildAndEmitTimelineItemStates(matrixTimelineItems)
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun buildAndEmitTimelineItemStates(timelineItems: List<MatrixTimelineItem>) {
|
||||
val newTimelineItemStates = ArrayList<TimelineItem>()
|
||||
for (index in timelineItemsCache.indices.reversed()) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue