From 2c5b54e5a2d3eec53d0616b625c0bd394d859052 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Thu, 9 Nov 2023 16:15:14 +0200 Subject: [PATCH] Fix key sharing --- .idea/jarRepositories.xml | 5 +++++ .../session/room/membership/DefaultMembershipService.kt | 8 +------- .../android/sdk/internal/crypto/RustCryptoService.kt | 2 ++ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml index c6930dba..3547ecd1 100644 --- a/.idea/jarRepositories.xml +++ b/.idea/jarRepositories.xml @@ -36,5 +36,10 @@ <option name="name" value="MavenRepo" /> <option name="url" value="https://repo.maven.apache.org/maven2/" /> </remote-repository> + <remote-repository> + <option name="id" value="maven2" /> + <option name="name" value="maven2" /> + <option name="url" value="https://gitlab.futo.org/api/v4/projects/130/packages/maven" /> + </remote-repository> </component> </project> \ No newline at end of file diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt index fa6c2a95..477d970f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/membership/DefaultMembershipService.kt @@ -30,8 +30,6 @@ import org.matrix.android.sdk.api.session.room.members.MembershipService import org.matrix.android.sdk.api.session.room.members.RoomMemberQueryParams import org.matrix.android.sdk.api.session.room.model.Membership import org.matrix.android.sdk.api.session.room.model.RoomMemberSummary -import org.matrix.android.sdk.internal.crypto.store.db.model.CryptoRoomEntity -import org.matrix.android.sdk.internal.crypto.store.db.query.getById import org.matrix.android.sdk.internal.database.mapper.asDomain import org.matrix.android.sdk.internal.database.model.RoomMemberSummaryEntity import org.matrix.android.sdk.internal.database.model.RoomMemberSummaryEntityFields @@ -157,11 +155,7 @@ internal class DefaultMembershipService @AssistedInject constructor( } private suspend fun sendShareHistoryKeysIfNeeded(userId: String) { - val room = monarchy.fetchCopied { - CryptoRoomEntity.getById(it, roomId) - } ?: return - if (room.shouldEncryptForInvitedMembers == true && room.shouldShareHistory) - cryptoService.sendSharedHistoryKeys(roomId, userId, null) + cryptoService.sendSharedHistoryKeys(roomId, userId, null) } override suspend fun invite3pid(threePid: ThreePid) { diff --git a/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt b/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt index a1a31698..3cb7aabb 100755 --- a/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt +++ b/matrix-sdk-android/src/rustCrypto/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt @@ -901,6 +901,8 @@ internal class RustCryptoService @Inject constructor( override suspend fun prepareToEncrypt(roomId: String) = prepareToEncrypt.invoke(roomId, ensureAllMembersAreLoaded = true) override suspend fun sendSharedHistoryKeys(roomId: String, userId: String, sessionInfoSet: Set<SessionInfo>?) { + val cryptoInfo = cryptoStore.getRoomCryptoInfo(roomId) ?: return + if (cryptoInfo.shouldShareHistory.not()) return withContext(coroutineDispatchers.crypto) { downloadKeysIfNeeded(listOf(userId)) getUserDevices(userId) -- GitLab