Skip to content

Commit e329370

Browse files
authored
Merge pull request #3749 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-0.x
Update dependency org.matrix.rustcomponents:sdk-android to v0.2.58
2 parents c1aa553 + a899a0e commit e329370

File tree

6 files changed

+75
-40
lines changed

6 files changed

+75
-40
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ jsoup = "org.jsoup:jsoup:1.18.1"
169169
appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" }
170170
molecule-runtime = "app.cash.molecule:molecule-runtime:2.0.0"
171171
timber = "com.jakewharton.timber:timber:5.0.1"
172-
matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.2.57"
172+
matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.2.58"
173173
matrix_richtexteditor = { module = "io.element.android:wysiwyg", version.ref = "wysiwyg" }
174174
matrix_richtexteditor_compose = { module = "io.element.android:wysiwyg-compose", version.ref = "wysiwyg" }
175175
sqldelight-driver-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" }

libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/preview/RoomPreviewMapper.kt

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,28 @@ import io.element.android.libraries.matrix.api.core.RoomAlias
1111
import io.element.android.libraries.matrix.api.core.RoomId
1212
import io.element.android.libraries.matrix.api.room.preview.RoomPreview
1313
import io.element.android.libraries.matrix.impl.room.toRoomType
14+
import org.matrix.rustcomponents.sdk.JoinRule
15+
import org.matrix.rustcomponents.sdk.Membership
1416
import org.matrix.rustcomponents.sdk.RoomPreview as RustRoomPreview
1517

1618
object RoomPreviewMapper {
1719
fun map(roomPreview: RustRoomPreview): RoomPreview {
18-
return RoomPreview(
19-
roomId = RoomId(roomPreview.roomId),
20-
canonicalAlias = roomPreview.canonicalAlias?.let(::RoomAlias),
21-
name = roomPreview.name,
22-
topic = roomPreview.topic,
23-
avatarUrl = roomPreview.avatarUrl,
24-
numberOfJoinedMembers = roomPreview.numJoinedMembers.toLong(),
25-
roomType = roomPreview.roomType.toRoomType(),
26-
isHistoryWorldReadable = roomPreview.isHistoryWorldReadable,
27-
isJoined = roomPreview.isJoined,
28-
isInvited = roomPreview.isInvited,
29-
isPublic = roomPreview.isPublic,
30-
canKnock = roomPreview.canKnock
31-
)
20+
return roomPreview.use {
21+
val info = roomPreview.info()
22+
RoomPreview(
23+
roomId = RoomId(info.roomId),
24+
canonicalAlias = info.canonicalAlias?.let(::RoomAlias),
25+
name = info.name,
26+
topic = info.topic,
27+
avatarUrl = info.avatarUrl,
28+
numberOfJoinedMembers = info.numJoinedMembers.toLong(),
29+
roomType = info.roomType.toRoomType(),
30+
isHistoryWorldReadable = info.isHistoryWorldReadable,
31+
isJoined = info.membership == Membership.JOINED,
32+
isInvited = info.membership == Membership.INVITED,
33+
isPublic = info.joinRule == JoinRule.Public,
34+
canKnock = info.joinRule == JoinRule.Knock
35+
)
36+
}
3237
}
3338
}

libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import org.matrix.rustcomponents.sdk.RecoveryState
3535
import org.matrix.rustcomponents.sdk.RecoveryStateListener
3636
import org.matrix.rustcomponents.sdk.SessionVerificationController
3737
import org.matrix.rustcomponents.sdk.SessionVerificationControllerDelegate
38+
import org.matrix.rustcomponents.sdk.SessionVerificationRequestDetails
3839
import org.matrix.rustcomponents.sdk.VerificationState
3940
import org.matrix.rustcomponents.sdk.VerificationStateListener
4041
import org.matrix.rustcomponents.sdk.use
@@ -150,7 +151,7 @@ class RustSessionVerificationService(
150151
// It also sometimes unexpectedly fails to report the session as verified, so we have to handle that possibility and fail if needed
151152
runCatching {
152153
withTimeout(30.seconds) {
153-
while (!verificationController.isVerified()) {
154+
while (encryptionService.verificationState() != VerificationState.VERIFIED) {
154155
delay(100)
155156
}
156157
}
@@ -176,6 +177,10 @@ class RustSessionVerificationService(
176177
_verificationFlowState.value = VerificationFlowState.StartedSasVerification
177178
}
178179

180+
override fun didReceiveVerificationRequest(details: SessionVerificationRequestDetails) {
181+
// TODO
182+
}
183+
179184
// end-region
180185

181186
override suspend fun reset() {
@@ -227,7 +232,7 @@ class RustSessionVerificationService(
227232
Timber.d("Updating verification status: flow is pending or was finished some time ago")
228233
runCatching {
229234
initVerificationControllerIfNeeded()
230-
_sessionVerifiedStatus.value = if (verificationController.isVerified()) {
235+
_sessionVerifiedStatus.value = if (encryptionService.verificationState() == VerificationState.VERIFIED) {
231236
SessionVerifiedStatus.Verified
232237
} else {
233238
SessionVerifiedStatus.NotVerified

libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/RoomPreview.kt renamed to libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/fixtures/factories/RoomPreviewInfo.kt

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@ package io.element.android.libraries.matrix.impl.fixtures.factories
99

1010
import io.element.android.libraries.matrix.test.A_ROOM_ALIAS
1111
import io.element.android.libraries.matrix.test.A_ROOM_ID
12-
import org.matrix.rustcomponents.sdk.RoomPreview
12+
import org.matrix.rustcomponents.sdk.JoinRule
13+
import org.matrix.rustcomponents.sdk.Membership
14+
import org.matrix.rustcomponents.sdk.RoomPreviewInfo
1315

14-
internal fun aRustRoomPreview(
16+
internal fun aRustRoomPreviewInfo(
1517
canonicalAlias: String? = A_ROOM_ALIAS.value,
16-
isJoined: Boolean = true,
17-
isInvited: Boolean = true,
18-
isPublic: Boolean = true,
19-
canKnock: Boolean = true,
20-
): RoomPreview {
21-
return RoomPreview(
18+
membership: Membership? = Membership.JOINED,
19+
joinRule: JoinRule = JoinRule.Public,
20+
): RoomPreviewInfo {
21+
return RoomPreviewInfo(
2222
roomId = A_ROOM_ID.value,
2323
canonicalAlias = canonicalAlias,
2424
name = "name",
@@ -27,9 +27,7 @@ internal fun aRustRoomPreview(
2727
numJoinedMembers = 1u,
2828
roomType = null,
2929
isHistoryWorldReadable = true,
30-
isJoined = isJoined,
31-
isInvited = isInvited,
32-
isPublic = isPublic,
33-
canKnock = canKnock,
30+
membership = membership,
31+
joinRule = joinRule,
3432
)
3533
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/*
2+
* Copyright 2024 New Vector Ltd.
3+
*
4+
* SPDX-License-Identifier: AGPL-3.0-only
5+
* Please see LICENSE in the repository root for full details.
6+
*/
7+
8+
package io.element.android.libraries.matrix.impl.fixtures.fakes
9+
10+
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomPreviewInfo
11+
import org.matrix.rustcomponents.sdk.NoPointer
12+
import org.matrix.rustcomponents.sdk.RoomPreview
13+
import org.matrix.rustcomponents.sdk.RoomPreviewInfo
14+
15+
class FakeRustRoomPreview(
16+
private val info: RoomPreviewInfo = aRustRoomPreviewInfo(),
17+
) : RoomPreview(NoPointer) {
18+
override fun info(): RoomPreviewInfo {
19+
return info
20+
}
21+
}

libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/room/preview/RoomPreviewMapperTest.kt

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,23 @@ package io.element.android.libraries.matrix.impl.room.preview
1010
import com.google.common.truth.Truth.assertThat
1111
import io.element.android.libraries.matrix.api.room.RoomType
1212
import io.element.android.libraries.matrix.api.room.preview.RoomPreview
13-
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomPreview
13+
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomPreviewInfo
14+
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeRustRoomPreview
1415
import io.element.android.libraries.matrix.test.A_ROOM_ALIAS
1516
import io.element.android.libraries.matrix.test.A_ROOM_ID
1617
import org.junit.Test
18+
import org.matrix.rustcomponents.sdk.JoinRule
19+
import org.matrix.rustcomponents.sdk.Membership
1720

1821
class RoomPreviewMapperTest {
1922
@Test
2023
fun `map should map values 1`() {
2124
assertThat(
2225
RoomPreviewMapper.map(
23-
aRustRoomPreview(
24-
isJoined = false,
25-
isInvited = false,
26+
FakeRustRoomPreview(
27+
info = aRustRoomPreviewInfo(
28+
membership = null,
29+
)
2630
)
2731
)
2832
).isEqualTo(
@@ -38,7 +42,7 @@ class RoomPreviewMapperTest {
3842
isJoined = false,
3943
isInvited = false,
4044
isPublic = true,
41-
canKnock = true,
45+
canKnock = false,
4246
)
4347
)
4448
}
@@ -47,10 +51,12 @@ class RoomPreviewMapperTest {
4751
fun `map should map values 2`() {
4852
assertThat(
4953
RoomPreviewMapper.map(
50-
aRustRoomPreview(
51-
canonicalAlias = null,
52-
isPublic = false,
53-
canKnock = false,
54+
FakeRustRoomPreview(
55+
info = aRustRoomPreviewInfo(
56+
canonicalAlias = null,
57+
membership = Membership.JOINED,
58+
joinRule = JoinRule.Knock,
59+
)
5460
)
5561
)
5662
).isEqualTo(
@@ -64,9 +70,9 @@ class RoomPreviewMapperTest {
6470
roomType = RoomType.Room,
6571
isHistoryWorldReadable = true,
6672
isJoined = true,
67-
isInvited = true,
73+
isInvited = false,
6874
isPublic = false,
69-
canKnock = false,
75+
canKnock = true,
7076
)
7177
)
7278
}

0 commit comments

Comments
 (0)