Update dependency org.matrix.rustcomponents:sdk-android to v0.2.6 (#2482)
* Update dependency org.matrix.rustcomponents:sdk-android to v0.2.6 * Update SDK changes * Fix tests --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jorge Martín <jorgem@element.io>
This commit is contained in:
@@ -153,7 +153,7 @@ jsoup = "org.jsoup:jsoup:1.17.2"
|
||||
appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" }
|
||||
molecule-runtime = "app.cash.molecule:molecule-runtime:1.4.0"
|
||||
timber = "com.jakewharton.timber:timber:5.0.1"
|
||||
matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.2.4"
|
||||
matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.2.6"
|
||||
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" }
|
||||
|
||||
@@ -45,7 +45,7 @@ class MatrixRoomInfoMapper(
|
||||
alternativeAliases = it.alternativeAliases.toImmutableList(),
|
||||
currentUserMembership = it.membership.map(),
|
||||
latestEvent = it.latestEvent?.use(timelineItemMapper::map),
|
||||
inviter = it.inviter?.use(RoomMemberMapper::map),
|
||||
inviter = it.inviter?.let(RoomMemberMapper::map),
|
||||
activeMembersCount = it.activeMembersCount.toLong(),
|
||||
invitedMembersCount = it.invitedMembersCount.toLong(),
|
||||
joinedMembersCount = it.joinedMembersCount.toLong(),
|
||||
|
||||
@@ -19,7 +19,6 @@ package io.element.android.libraries.matrix.impl.room.member
|
||||
import io.element.android.libraries.core.coroutine.parallelMap
|
||||
import io.element.android.libraries.matrix.api.room.MatrixRoomMembersState
|
||||
import io.element.android.libraries.matrix.api.room.roomMembers
|
||||
import io.element.android.libraries.matrix.impl.util.destroyAll
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.ensureActive
|
||||
@@ -109,13 +108,7 @@ internal class RoomMemberListFetcher(
|
||||
// We should probably implement some sort of paging in the future.
|
||||
coroutineContext.ensureActive()
|
||||
val chunk = iterator.nextChunk(pageSize.toUInt())
|
||||
val members = try {
|
||||
// Load next chunk. If null (no more items), exit the loop
|
||||
chunk?.parallelMap(RoomMemberMapper::map) ?: break
|
||||
} finally {
|
||||
// Make sure we clear all member references
|
||||
chunk?.destroyAll()
|
||||
}
|
||||
val members = chunk?.parallelMap(RoomMemberMapper::map) ?: break
|
||||
addAll(members)
|
||||
Timber.i("Emitting first $size members for room $roomId")
|
||||
_membersFlow.value = MatrixRoomMembersState.Ready(toImmutableList())
|
||||
|
||||
@@ -24,19 +24,17 @@ import org.matrix.rustcomponents.sdk.MembershipState as RustMembershipState
|
||||
import org.matrix.rustcomponents.sdk.RoomMember as RustRoomMember
|
||||
|
||||
object RoomMemberMapper {
|
||||
fun map(roomMember: RustRoomMember): RoomMember = roomMember.use {
|
||||
RoomMember(
|
||||
UserId(it.userId()),
|
||||
it.displayName(),
|
||||
it.avatarUrl(),
|
||||
mapMembership(it.membership()),
|
||||
it.isNameAmbiguous(),
|
||||
it.powerLevel(),
|
||||
it.normalizedPowerLevel(),
|
||||
it.isIgnored(),
|
||||
mapRole(it.suggestedRoleForPowerLevel())
|
||||
fun map(roomMember: RustRoomMember): RoomMember = RoomMember(
|
||||
UserId(roomMember.userId),
|
||||
roomMember.displayName,
|
||||
roomMember.avatarUrl,
|
||||
mapMembership(roomMember.membership),
|
||||
roomMember.isNameAmbiguous,
|
||||
roomMember.powerLevel,
|
||||
roomMember.normalizedPowerLevel,
|
||||
roomMember.isIgnored,
|
||||
mapRole(roomMember.suggestedRoleForPowerLevel),
|
||||
)
|
||||
}
|
||||
|
||||
fun mapRole(role: RoomMemberRole): RoomMember.Role =
|
||||
when (role) {
|
||||
|
||||
@@ -38,6 +38,8 @@ class RustTracingService @Inject constructor(private val buildMeta: BuildMeta) :
|
||||
is WriteToFilesConfiguration.Enabled -> TracingFileConfiguration(
|
||||
path = writeToFilesConfiguration.directory,
|
||||
filePrefix = writeToFilesConfiguration.filenamePrefix,
|
||||
fileSuffix = null,
|
||||
maxFiles = null,
|
||||
)
|
||||
},
|
||||
)
|
||||
|
||||
@@ -42,9 +42,9 @@ class RoomMemberListFetcherTest {
|
||||
val room = FakeRustRoom(getMembersNoSync = {
|
||||
FakeRoomMembersIterator(
|
||||
listOf(
|
||||
FakeRustRoomMember(A_USER_ID),
|
||||
FakeRustRoomMember(A_USER_ID_2),
|
||||
FakeRustRoomMember(A_USER_ID_3),
|
||||
fakeRustRoomMember(A_USER_ID),
|
||||
fakeRustRoomMember(A_USER_ID_2),
|
||||
fakeRustRoomMember(A_USER_ID_3),
|
||||
)
|
||||
)
|
||||
})
|
||||
@@ -94,9 +94,9 @@ class RoomMemberListFetcherTest {
|
||||
val room = FakeRustRoom(getMembersNoSync = {
|
||||
FakeRoomMembersIterator(
|
||||
listOf(
|
||||
FakeRustRoomMember(A_USER_ID),
|
||||
FakeRustRoomMember(A_USER_ID_2),
|
||||
FakeRustRoomMember(A_USER_ID_3),
|
||||
fakeRustRoomMember(A_USER_ID),
|
||||
fakeRustRoomMember(A_USER_ID_2),
|
||||
fakeRustRoomMember(A_USER_ID_3),
|
||||
)
|
||||
)
|
||||
})
|
||||
@@ -118,9 +118,9 @@ class RoomMemberListFetcherTest {
|
||||
val room = FakeRustRoom(getMembers = {
|
||||
FakeRoomMembersIterator(
|
||||
listOf(
|
||||
FakeRustRoomMember(A_USER_ID),
|
||||
FakeRustRoomMember(A_USER_ID_2),
|
||||
FakeRustRoomMember(A_USER_ID_3),
|
||||
fakeRustRoomMember(A_USER_ID),
|
||||
fakeRustRoomMember(A_USER_ID_2),
|
||||
fakeRustRoomMember(A_USER_ID_3),
|
||||
)
|
||||
)
|
||||
})
|
||||
@@ -153,14 +153,14 @@ class RoomMemberListFetcherTest {
|
||||
fun `fetchRoomMembers - with 'withCache' returns cached items first, then new ones`() = runTest {
|
||||
val room = FakeRustRoom(
|
||||
getMembersNoSync = {
|
||||
FakeRoomMembersIterator(listOf(FakeRustRoomMember(A_USER_ID_4)))
|
||||
FakeRoomMembersIterator(listOf(fakeRustRoomMember(A_USER_ID_4)))
|
||||
},
|
||||
getMembers = {
|
||||
FakeRoomMembersIterator(
|
||||
listOf(
|
||||
FakeRustRoomMember(A_USER_ID),
|
||||
FakeRustRoomMember(A_USER_ID_2),
|
||||
FakeRustRoomMember(A_USER_ID_3),
|
||||
fakeRustRoomMember(A_USER_ID),
|
||||
fakeRustRoomMember(A_USER_ID_2),
|
||||
fakeRustRoomMember(A_USER_ID_3),
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -189,14 +189,14 @@ class RoomMemberListFetcherTest {
|
||||
fun `fetchRoomMembers - with 'withCache' skips cache if there is already a ready state`() = runTest {
|
||||
val room = FakeRustRoom(
|
||||
getMembersNoSync = {
|
||||
FakeRoomMembersIterator(listOf(FakeRustRoomMember(A_USER_ID_4)))
|
||||
FakeRoomMembersIterator(listOf(fakeRustRoomMember(A_USER_ID_4)))
|
||||
},
|
||||
getMembers = {
|
||||
FakeRoomMembersIterator(
|
||||
listOf(
|
||||
FakeRustRoomMember(A_USER_ID),
|
||||
FakeRustRoomMember(A_USER_ID_2),
|
||||
FakeRustRoomMember(A_USER_ID_3),
|
||||
fakeRustRoomMember(A_USER_ID),
|
||||
fakeRustRoomMember(A_USER_ID_2),
|
||||
fakeRustRoomMember(A_USER_ID_3),
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -262,48 +262,23 @@ class FakeRoomMembersIterator(
|
||||
}
|
||||
}
|
||||
|
||||
class FakeRustRoomMember(
|
||||
private val userId: UserId,
|
||||
private val displayName: String? = null,
|
||||
private val avatarUrl: String? = null,
|
||||
private val membership: MembershipState = MembershipState.JOIN,
|
||||
private val isNameAmbiguous: Boolean = false,
|
||||
private val powerLevel: Long = 0L,
|
||||
private val role: RoomMemberRole = RoomMemberRole.USER,
|
||||
) : RoomMember(NoPointer) {
|
||||
override fun userId(): String {
|
||||
return userId.value
|
||||
}
|
||||
|
||||
override fun displayName(): String? {
|
||||
return displayName
|
||||
}
|
||||
|
||||
override fun avatarUrl(): String? {
|
||||
return avatarUrl
|
||||
}
|
||||
|
||||
override fun membership(): MembershipState {
|
||||
return membership
|
||||
}
|
||||
|
||||
override fun isNameAmbiguous(): Boolean {
|
||||
return isNameAmbiguous
|
||||
}
|
||||
|
||||
override fun powerLevel(): Long {
|
||||
return powerLevel
|
||||
}
|
||||
|
||||
override fun normalizedPowerLevel(): Long {
|
||||
return powerLevel
|
||||
}
|
||||
|
||||
override fun isIgnored(): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
override fun suggestedRoleForPowerLevel(): RoomMemberRole {
|
||||
return role
|
||||
}
|
||||
}
|
||||
private fun fakeRustRoomMember(
|
||||
userId: UserId,
|
||||
displayName: String? = null,
|
||||
avatarUrl: String? = null,
|
||||
membership: MembershipState = MembershipState.JOIN,
|
||||
isNameAmbiguous: Boolean = false,
|
||||
powerLevel: Long = 0L,
|
||||
isIgnored: Boolean = false,
|
||||
role: RoomMemberRole = RoomMemberRole.USER,
|
||||
) = RoomMember(
|
||||
userId = userId.value,
|
||||
displayName = displayName,
|
||||
avatarUrl = avatarUrl,
|
||||
membership = membership,
|
||||
isNameAmbiguous = isNameAmbiguous,
|
||||
powerLevel = powerLevel,
|
||||
normalizedPowerLevel = powerLevel,
|
||||
isIgnored = isIgnored,
|
||||
suggestedRoleForPowerLevel = role,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user