Matrix rust sdk : SlidingSync updates

This commit is contained in:
ganfra 2023-06-08 17:03:05 +02:00
parent 0fed1e0e8d
commit c43c6e65d8
3 changed files with 9 additions and 8 deletions

View file

@ -64,6 +64,7 @@ import org.matrix.rustcomponents.sdk.SlidingSyncList
import org.matrix.rustcomponents.sdk.SlidingSyncListBuilder import org.matrix.rustcomponents.sdk.SlidingSyncListBuilder
import org.matrix.rustcomponents.sdk.SlidingSyncListOnceBuilt import org.matrix.rustcomponents.sdk.SlidingSyncListOnceBuilt
import org.matrix.rustcomponents.sdk.SlidingSyncRequestListFilters import org.matrix.rustcomponents.sdk.SlidingSyncRequestListFilters
import org.matrix.rustcomponents.sdk.SlidingSyncSelectiveModeBuilder
import org.matrix.rustcomponents.sdk.TaskHandle import org.matrix.rustcomponents.sdk.TaskHandle
import org.matrix.rustcomponents.sdk.use import org.matrix.rustcomponents.sdk.use
import timber.log.Timber import timber.log.Timber
@ -124,8 +125,7 @@ class RustMatrixClient constructor(
) )
) )
.filters(visibleRoomsSlidingSyncFilters) .filters(visibleRoomsSlidingSyncFilters)
.syncModeSelective() .syncModeSelective(SlidingSyncSelectiveModeBuilder().addRange(0u, 20u))
.addRange(0u, 20u)
.onceBuilt(object : SlidingSyncListOnceBuilt { .onceBuilt(object : SlidingSyncListOnceBuilt {
override fun updateList(list: SlidingSyncList): SlidingSyncList { override fun updateList(list: SlidingSyncList): SlidingSyncList {
visibleRoomsSlidingSyncList.tryEmit(list) visibleRoomsSlidingSyncList.tryEmit(list)
@ -146,8 +146,7 @@ class RustMatrixClient constructor(
) )
) )
.filters(invitesSlidingSyncFilters) .filters(invitesSlidingSyncFilters)
.syncModeSelective() .syncModeSelective(SlidingSyncSelectiveModeBuilder().addRange(0u, 20u))
.addRange(0u, 20u)
.onceBuilt(object : SlidingSyncListOnceBuilt { .onceBuilt(object : SlidingSyncListOnceBuilt {
override fun updateList(list: SlidingSyncList): SlidingSyncList { override fun updateList(list: SlidingSyncList): SlidingSyncList {
invitesSlidingSyncList.tryEmit(list) invitesSlidingSyncList.tryEmit(list)
@ -156,10 +155,9 @@ class RustMatrixClient constructor(
}) })
private val slidingSync = client private val slidingSync = client
.slidingSync() .slidingSync("ElementX")
// .homeserver("https://slidingsync.lab.matrix.org") // .homeserver("https://slidingsync.lab.matrix.org")
.withCommonExtensions() .withCommonExtensions()
.storageKey("ElementX")
.addList(visibleRoomsSlidingSyncListBuilder) .addList(visibleRoomsSlidingSyncListBuilder)
.addList(invitesSlidingSyncListBuilder) .addList(invitesSlidingSyncListBuilder)
.use { .use {

View file

@ -38,6 +38,7 @@ import org.matrix.rustcomponents.sdk.RoomListEntry
import org.matrix.rustcomponents.sdk.SlidingSync import org.matrix.rustcomponents.sdk.SlidingSync
import org.matrix.rustcomponents.sdk.SlidingSyncList import org.matrix.rustcomponents.sdk.SlidingSyncList
import org.matrix.rustcomponents.sdk.SlidingSyncListRoomsListDiff import org.matrix.rustcomponents.sdk.SlidingSyncListRoomsListDiff
import org.matrix.rustcomponents.sdk.SlidingSyncSelectiveModeBuilder
import org.matrix.rustcomponents.sdk.SlidingSyncState import org.matrix.rustcomponents.sdk.SlidingSyncState
import org.matrix.rustcomponents.sdk.UpdateSummary import org.matrix.rustcomponents.sdk.UpdateSummary
import timber.log.Timber import timber.log.Timber
@ -98,7 +99,9 @@ internal class RustRoomSummaryDataSource(
override fun setSlidingSyncRange(range: IntRange) { override fun setSlidingSyncRange(range: IntRange) {
Timber.v("setVisibleRange=$range") Timber.v("setVisibleRange=$range")
coroutineScope.launch { coroutineScope.launch {
slidingSyncListFlow.first().setRange(range.first.toUInt(), range.last.toUInt()) val slidingSyncMode = SlidingSyncSelectiveModeBuilder()
.addRange(range.first.toUInt(), range.last.toUInt())
slidingSyncListFlow.first().setSyncMode(slidingSyncMode)
} }
} }

View file

@ -159,7 +159,7 @@ class RustMatrixTimeline(
), ),
timelineLimit = null timelineLimit = null
) )
listenerTokens += slidingSyncRoom.subscribeToRoom(settings) slidingSyncRoom.subscribeToRoom(settings)
val result = slidingSyncRoom.addTimelineListener(timelineListener) val result = slidingSyncRoom.addTimelineListener(timelineListener)
launch { launch {
fetchMembers() fetchMembers()