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:
commit
5c0c87ddeb
6 changed files with 18 additions and 17 deletions
|
|
@ -174,7 +174,7 @@ jsoup = "org.jsoup:jsoup:1.19.1"
|
||||||
appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" }
|
appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" }
|
||||||
molecule-runtime = "app.cash.molecule:molecule-runtime:2.0.0"
|
molecule-runtime = "app.cash.molecule:molecule-runtime:2.0.0"
|
||||||
timber = "com.jakewharton.timber:timber:5.0.1"
|
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 = { module = "io.element.android:wysiwyg", version.ref = "wysiwyg" }
|
||||||
matrix_richtexteditor_compose = { module = "io.element.android:wysiwyg-compose", 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" }
|
sqldelight-driver-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" }
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,6 @@ import kotlinx.coroutines.flow.map
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.flow.onStart
|
import kotlinx.coroutines.flow.onStart
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import org.matrix.rustcomponents.sdk.AllowedMessageTypes
|
|
||||||
import org.matrix.rustcomponents.sdk.DateDividerMode
|
import org.matrix.rustcomponents.sdk.DateDividerMode
|
||||||
import org.matrix.rustcomponents.sdk.IdentityStatusChangeListener
|
import org.matrix.rustcomponents.sdk.IdentityStatusChangeListener
|
||||||
import org.matrix.rustcomponents.sdk.KnockRequestsListener
|
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.RoomListItem
|
||||||
import org.matrix.rustcomponents.sdk.RoomMessageEventMessageType
|
import org.matrix.rustcomponents.sdk.RoomMessageEventMessageType
|
||||||
import org.matrix.rustcomponents.sdk.TimelineConfiguration
|
import org.matrix.rustcomponents.sdk.TimelineConfiguration
|
||||||
|
import org.matrix.rustcomponents.sdk.TimelineFilter
|
||||||
import org.matrix.rustcomponents.sdk.TimelineFocus
|
import org.matrix.rustcomponents.sdk.TimelineFocus
|
||||||
import org.matrix.rustcomponents.sdk.TypingNotificationsListener
|
import org.matrix.rustcomponents.sdk.TypingNotificationsListener
|
||||||
import org.matrix.rustcomponents.sdk.UserPowerLevelUpdate
|
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.MediaOnly,
|
||||||
is CreateTimelineParams.MediaOnlyFocused -> AllowedMessageTypes.Only(
|
is CreateTimelineParams.MediaOnlyFocused -> TimelineFilter.OnlyMessage(
|
||||||
types = listOf(
|
types = listOf(
|
||||||
RoomMessageEventMessageType.FILE,
|
RoomMessageEventMessageType.FILE,
|
||||||
RoomMessageEventMessageType.IMAGE,
|
RoomMessageEventMessageType.IMAGE,
|
||||||
|
|
@ -245,7 +245,7 @@ class RustMatrixRoom(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
is CreateTimelineParams.Focused,
|
is CreateTimelineParams.Focused,
|
||||||
CreateTimelineParams.PinnedOnly -> AllowedMessageTypes.All
|
CreateTimelineParams.PinnedOnly -> TimelineFilter.All
|
||||||
}
|
}
|
||||||
|
|
||||||
val internalIdPrefix = when (createTimelineParams) {
|
val internalIdPrefix = when (createTimelineParams) {
|
||||||
|
|
@ -268,9 +268,10 @@ class RustMatrixRoom(
|
||||||
innerRoom.timelineWithConfiguration(
|
innerRoom.timelineWithConfiguration(
|
||||||
configuration = TimelineConfiguration(
|
configuration = TimelineConfiguration(
|
||||||
focus = focus,
|
focus = focus,
|
||||||
allowedMessageTypes = allowedMessageTypes,
|
filter = filter,
|
||||||
internalIdPrefix = internalIdPrefix,
|
internalIdPrefix = internalIdPrefix,
|
||||||
dateDividerMode = dateDividerMode,
|
dateDividerMode = dateDividerMode,
|
||||||
|
trackReadReceipts = false,
|
||||||
)
|
)
|
||||||
).let { inner ->
|
).let { inner ->
|
||||||
val mode = when (createTimelineParams) {
|
val mode = when (createTimelineParams) {
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,11 @@ import org.matrix.rustcomponents.sdk.TimelineDiff
|
||||||
import org.matrix.rustcomponents.sdk.TimelineInterface
|
import org.matrix.rustcomponents.sdk.TimelineInterface
|
||||||
import org.matrix.rustcomponents.sdk.TimelineListener
|
import org.matrix.rustcomponents.sdk.TimelineListener
|
||||||
import timber.log.Timber
|
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 {
|
val listener = object : PaginationStatusListener {
|
||||||
override fun onUpdate(status: LiveBackPaginationStatus) {
|
override fun onUpdate(status: RoomPaginationStatus) {
|
||||||
trySend(status)
|
trySend(status)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ import org.matrix.rustcomponents.sdk.SendAttachmentJoinHandle
|
||||||
import org.matrix.rustcomponents.sdk.UploadParameters
|
import org.matrix.rustcomponents.sdk.UploadParameters
|
||||||
import org.matrix.rustcomponents.sdk.use
|
import org.matrix.rustcomponents.sdk.use
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import uniffi.matrix_sdk_ui.LiveBackPaginationStatus
|
import uniffi.matrix_sdk.RoomPaginationStatus
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import org.matrix.rustcomponents.sdk.EventOrTransactionId as RustEventOrTransactionId
|
import org.matrix.rustcomponents.sdk.EventOrTransactionId as RustEventOrTransactionId
|
||||||
import org.matrix.rustcomponents.sdk.Timeline as InnerTimeline
|
import org.matrix.rustcomponents.sdk.Timeline as InnerTimeline
|
||||||
|
|
@ -148,8 +148,8 @@ class RustTimeline(
|
||||||
.onEach { backPaginationStatus ->
|
.onEach { backPaginationStatus ->
|
||||||
updatePaginationStatus(Timeline.PaginationDirection.BACKWARDS) {
|
updatePaginationStatus(Timeline.PaginationDirection.BACKWARDS) {
|
||||||
when (backPaginationStatus) {
|
when (backPaginationStatus) {
|
||||||
is LiveBackPaginationStatus.Idle -> it.copy(isPaginating = false, hasMoreToLoad = !backPaginationStatus.hitStartOfTimeline)
|
is RoomPaginationStatus.Idle -> it.copy(isPaginating = false, hasMoreToLoad = !backPaginationStatus.hitTimelineStart)
|
||||||
is LiveBackPaginationStatus.Paginating -> it.copy(isPaginating = true, hasMoreToLoad = true)
|
is RoomPaginationStatus.Paginating -> it.copy(isPaginating = true, hasMoreToLoad = true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import org.matrix.rustcomponents.sdk.TaskHandle
|
||||||
import org.matrix.rustcomponents.sdk.Timeline
|
import org.matrix.rustcomponents.sdk.Timeline
|
||||||
import org.matrix.rustcomponents.sdk.TimelineDiff
|
import org.matrix.rustcomponents.sdk.TimelineDiff
|
||||||
import org.matrix.rustcomponents.sdk.TimelineListener
|
import org.matrix.rustcomponents.sdk.TimelineListener
|
||||||
import uniffi.matrix_sdk_ui.LiveBackPaginationStatus
|
import uniffi.matrix_sdk.RoomPaginationStatus
|
||||||
|
|
||||||
class FakeRustTimeline : Timeline(NoPointer) {
|
class FakeRustTimeline : Timeline(NoPointer) {
|
||||||
private var listener: TimelineListener? = null
|
private var listener: TimelineListener? = null
|
||||||
|
|
@ -32,7 +32,7 @@ class FakeRustTimeline : Timeline(NoPointer) {
|
||||||
return FakeRustTaskHandle()
|
return FakeRustTaskHandle()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun emitPaginationStatus(status: LiveBackPaginationStatus) {
|
fun emitPaginationStatus(status: RoomPaginationStatus) {
|
||||||
paginationStatusListener!!.onUpdate(status)
|
paginationStatusListener!!.onUpdate(status)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ import kotlinx.coroutines.test.runCurrent
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.TimelineChange
|
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
|
import org.matrix.rustcomponents.sdk.Timeline as InnerTimeline
|
||||||
|
|
||||||
class RustTimelineTest {
|
class RustTimelineTest {
|
||||||
|
|
@ -78,10 +78,10 @@ class RustTimelineTest {
|
||||||
// Start pagination
|
// Start pagination
|
||||||
sut.paginate(Timeline.PaginationDirection.BACKWARDS)
|
sut.paginate(Timeline.PaginationDirection.BACKWARDS)
|
||||||
// Simulate SDK starting pagination
|
// Simulate SDK starting pagination
|
||||||
inner.emitPaginationStatus(LiveBackPaginationStatus.Paginating)
|
inner.emitPaginationStatus(RoomPaginationStatus.Paginating)
|
||||||
// No new events received
|
// No new events received
|
||||||
// Simulate SDK stopping pagination, more event to load
|
// 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
|
// expect an item to be emitted, with an updated timestamp
|
||||||
with(awaitItem()) {
|
with(awaitItem()) {
|
||||||
assertThat(size).isEqualTo(2)
|
assertThat(size).isEqualTo(2)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue