Merge pull request #4370 from element-hq/feature/fga/update_rust_sdk_25.03.05

deps(rust sdk) : update to 25.03.05
This commit is contained in:
Benoit Marty
2025-03-05 22:20:36 +01:00
committed by GitHub
6 changed files with 18 additions and 17 deletions

View File

@@ -174,7 +174,7 @@ jsoup = "org.jsoup:jsoup:1.19.1"
appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" }
molecule-runtime = "app.cash.molecule:molecule-runtime:2.0.0"
timber = "com.jakewharton.timber:timber:5.0.1"
matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.2.26"
matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.3.5"
matrix_richtexteditor = { module = "io.element.android:wysiwyg", version.ref = "wysiwyg" }
matrix_richtexteditor_compose = { module = "io.element.android:wysiwyg-compose", version.ref = "wysiwyg" }
sqldelight-driver-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" }

View File

@@ -83,7 +83,6 @@ import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.onStart
import kotlinx.coroutines.withContext
import org.matrix.rustcomponents.sdk.AllowedMessageTypes
import org.matrix.rustcomponents.sdk.DateDividerMode
import org.matrix.rustcomponents.sdk.IdentityStatusChangeListener
import org.matrix.rustcomponents.sdk.KnockRequestsListener
@@ -92,6 +91,7 @@ import org.matrix.rustcomponents.sdk.RoomInfoListener
import org.matrix.rustcomponents.sdk.RoomListItem
import org.matrix.rustcomponents.sdk.RoomMessageEventMessageType
import org.matrix.rustcomponents.sdk.TimelineConfiguration
import org.matrix.rustcomponents.sdk.TimelineFilter
import org.matrix.rustcomponents.sdk.TimelineFocus
import org.matrix.rustcomponents.sdk.TypingNotificationsListener
import org.matrix.rustcomponents.sdk.UserPowerLevelUpdate
@@ -234,9 +234,9 @@ class RustMatrixRoom(
)
}
val allowedMessageTypes = when (createTimelineParams) {
val filter = when (createTimelineParams) {
is CreateTimelineParams.MediaOnly,
is CreateTimelineParams.MediaOnlyFocused -> AllowedMessageTypes.Only(
is CreateTimelineParams.MediaOnlyFocused -> TimelineFilter.OnlyMessage(
types = listOf(
RoomMessageEventMessageType.FILE,
RoomMessageEventMessageType.IMAGE,
@@ -245,7 +245,7 @@ class RustMatrixRoom(
)
)
is CreateTimelineParams.Focused,
CreateTimelineParams.PinnedOnly -> AllowedMessageTypes.All
CreateTimelineParams.PinnedOnly -> TimelineFilter.All
}
val internalIdPrefix = when (createTimelineParams) {
@@ -268,9 +268,10 @@ class RustMatrixRoom(
innerRoom.timelineWithConfiguration(
configuration = TimelineConfiguration(
focus = focus,
allowedMessageTypes = allowedMessageTypes,
filter = filter,
internalIdPrefix = internalIdPrefix,
dateDividerMode = dateDividerMode,
trackReadReceipts = false,
)
).let { inner ->
val mode = when (createTimelineParams) {

View File

@@ -20,11 +20,11 @@ import org.matrix.rustcomponents.sdk.TimelineDiff
import org.matrix.rustcomponents.sdk.TimelineInterface
import org.matrix.rustcomponents.sdk.TimelineListener
import timber.log.Timber
import uniffi.matrix_sdk_ui.LiveBackPaginationStatus
import uniffi.matrix_sdk.RoomPaginationStatus
internal fun TimelineInterface.liveBackPaginationStatus(): Flow<LiveBackPaginationStatus> = callbackFlow {
internal fun TimelineInterface.liveBackPaginationStatus(): Flow<RoomPaginationStatus> = callbackFlow {
val listener = object : PaginationStatusListener {
override fun onUpdate(status: LiveBackPaginationStatus) {
override fun onUpdate(status: RoomPaginationStatus) {
trySend(status)
}
}

View File

@@ -73,7 +73,7 @@ import org.matrix.rustcomponents.sdk.SendAttachmentJoinHandle
import org.matrix.rustcomponents.sdk.UploadParameters
import org.matrix.rustcomponents.sdk.use
import timber.log.Timber
import uniffi.matrix_sdk_ui.LiveBackPaginationStatus
import uniffi.matrix_sdk.RoomPaginationStatus
import java.io.File
import org.matrix.rustcomponents.sdk.EventOrTransactionId as RustEventOrTransactionId
import org.matrix.rustcomponents.sdk.Timeline as InnerTimeline
@@ -148,8 +148,8 @@ class RustTimeline(
.onEach { backPaginationStatus ->
updatePaginationStatus(Timeline.PaginationDirection.BACKWARDS) {
when (backPaginationStatus) {
is LiveBackPaginationStatus.Idle -> it.copy(isPaginating = false, hasMoreToLoad = !backPaginationStatus.hitStartOfTimeline)
is LiveBackPaginationStatus.Paginating -> it.copy(isPaginating = true, hasMoreToLoad = true)
is RoomPaginationStatus.Idle -> it.copy(isPaginating = false, hasMoreToLoad = !backPaginationStatus.hitTimelineStart)
is RoomPaginationStatus.Paginating -> it.copy(isPaginating = true, hasMoreToLoad = true)
}
}
}

View File

@@ -13,7 +13,7 @@ import org.matrix.rustcomponents.sdk.TaskHandle
import org.matrix.rustcomponents.sdk.Timeline
import org.matrix.rustcomponents.sdk.TimelineDiff
import org.matrix.rustcomponents.sdk.TimelineListener
import uniffi.matrix_sdk_ui.LiveBackPaginationStatus
import uniffi.matrix_sdk.RoomPaginationStatus
class FakeRustTimeline : Timeline(NoPointer) {
private var listener: TimelineListener? = null
@@ -32,7 +32,7 @@ class FakeRustTimeline : Timeline(NoPointer) {
return FakeRustTaskHandle()
}
fun emitPaginationStatus(status: LiveBackPaginationStatus) {
fun emitPaginationStatus(status: RoomPaginationStatus) {
paginationStatusListener!!.onUpdate(status)
}

View File

@@ -34,7 +34,7 @@ import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Test
import org.matrix.rustcomponents.sdk.TimelineChange
import uniffi.matrix_sdk_ui.LiveBackPaginationStatus
import uniffi.matrix_sdk.RoomPaginationStatus
import org.matrix.rustcomponents.sdk.Timeline as InnerTimeline
class RustTimelineTest {
@@ -78,10 +78,10 @@ class RustTimelineTest {
// Start pagination
sut.paginate(Timeline.PaginationDirection.BACKWARDS)
// Simulate SDK starting pagination
inner.emitPaginationStatus(LiveBackPaginationStatus.Paginating)
inner.emitPaginationStatus(RoomPaginationStatus.Paginating)
// No new events received
// Simulate SDK stopping pagination, more event to load
inner.emitPaginationStatus(LiveBackPaginationStatus.Idle(hitStartOfTimeline = false))
inner.emitPaginationStatus(RoomPaginationStatus.Idle(hitTimelineStart = false))
// expect an item to be emitted, with an updated timestamp
with(awaitItem()) {
assertThat(size).isEqualTo(2)