Skip to content
Snippets Groups Projects
Commit 2c5b54e5 authored by Taras's avatar Taras
Browse files

Fix key sharing

parent 1b15e9bf
No related branches found
No related tags found
No related merge requests found
...@@ -36,5 +36,10 @@ ...@@ -36,5 +36,10 @@
<option name="name" value="MavenRepo" /> <option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" /> <option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository> </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> </component>
</project> </project>
\ No newline at end of file
...@@ -30,8 +30,6 @@ import org.matrix.android.sdk.api.session.room.members.MembershipService ...@@ -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.members.RoomMemberQueryParams
import org.matrix.android.sdk.api.session.room.model.Membership 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.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.mapper.asDomain
import org.matrix.android.sdk.internal.database.model.RoomMemberSummaryEntity import org.matrix.android.sdk.internal.database.model.RoomMemberSummaryEntity
import org.matrix.android.sdk.internal.database.model.RoomMemberSummaryEntityFields import org.matrix.android.sdk.internal.database.model.RoomMemberSummaryEntityFields
...@@ -157,11 +155,7 @@ internal class DefaultMembershipService @AssistedInject constructor( ...@@ -157,11 +155,7 @@ internal class DefaultMembershipService @AssistedInject constructor(
} }
private suspend fun sendShareHistoryKeysIfNeeded(userId: String) { private suspend fun sendShareHistoryKeysIfNeeded(userId: String) {
val room = monarchy.fetchCopied { cryptoService.sendSharedHistoryKeys(roomId, userId, null)
CryptoRoomEntity.getById(it, roomId)
} ?: return
if (room.shouldEncryptForInvitedMembers == true && room.shouldShareHistory)
cryptoService.sendSharedHistoryKeys(roomId, userId, null)
} }
override suspend fun invite3pid(threePid: ThreePid) { override suspend fun invite3pid(threePid: ThreePid) {
......
...@@ -901,6 +901,8 @@ internal class RustCryptoService @Inject constructor( ...@@ -901,6 +901,8 @@ internal class RustCryptoService @Inject constructor(
override suspend fun prepareToEncrypt(roomId: String) = prepareToEncrypt.invoke(roomId, ensureAllMembersAreLoaded = true) override suspend fun prepareToEncrypt(roomId: String) = prepareToEncrypt.invoke(roomId, ensureAllMembersAreLoaded = true)
override suspend fun sendSharedHistoryKeys(roomId: String, userId: String, sessionInfoSet: Set<SessionInfo>?) { 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) { withContext(coroutineDispatchers.crypto) {
downloadKeysIfNeeded(listOf(userId)) downloadKeysIfNeeded(listOf(userId))
getUserDevices(userId) getUserDevices(userId)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment