mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:30:43 +00:00
Enforce HS disabling E2EE in DM creation too (Element Pro) (#7292)
This part was missing from the implementation of this Element Pro feature, which incorrectly only applied to rooms.
This commit is contained in:
committed by
GitHub
parent
00dcf48f28
commit
674354b1a6
+1
-1
@@ -84,7 +84,7 @@ interface MatrixClient {
|
||||
suspend fun ignoreUser(userId: UserId): Result<Unit>
|
||||
suspend fun unignoreUser(userId: UserId): Result<Unit>
|
||||
suspend fun createRoom(createRoomParams: CreateRoomParameters): Result<RoomId>
|
||||
suspend fun createDM(userId: UserId): Result<RoomId>
|
||||
suspend fun createDM(userId: UserId, isEncrypted: Boolean): Result<RoomId>
|
||||
suspend fun getProfile(userId: UserId): Result<MatrixUser>
|
||||
suspend fun searchUsers(searchTerm: String, limit: Long): Result<MatrixSearchUserResults>
|
||||
suspend fun setDisplayName(displayName: String): Result<Unit>
|
||||
|
||||
+2
-1
@@ -18,6 +18,7 @@ import io.element.android.libraries.matrix.api.core.UserId
|
||||
suspend fun MatrixClient.startDM(
|
||||
userId: UserId,
|
||||
createIfDmDoesNotExist: Boolean,
|
||||
isEncryped: Boolean,
|
||||
): StartDMResult {
|
||||
return findDM(userId)
|
||||
.fold(
|
||||
@@ -25,7 +26,7 @@ suspend fun MatrixClient.startDM(
|
||||
if (existingDM != null) {
|
||||
StartDMResult.Success(existingDM, isNew = false)
|
||||
} else if (createIfDmDoesNotExist) {
|
||||
createDM(userId).fold(
|
||||
createDM(userId, isEncryped).fold(
|
||||
{ StartDMResult.Success(it, isNew = true) },
|
||||
{ StartDMResult.Failure(it) }
|
||||
)
|
||||
|
||||
+2
-2
@@ -430,10 +430,10 @@ class RustMatrixClient(
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun createDM(userId: UserId): Result<RoomId> {
|
||||
override suspend fun createDM(userId: UserId, isEncrypted: Boolean): Result<RoomId> {
|
||||
val createRoomParams = CreateRoomParameters(
|
||||
name = null,
|
||||
isEncrypted = true,
|
||||
isEncrypted = isEncrypted,
|
||||
isDirect = true,
|
||||
visibility = RoomVisibility.Private,
|
||||
preset = RoomPreset.TRUSTED_PRIVATE_CHAT,
|
||||
|
||||
+1
-1
@@ -132,7 +132,7 @@ class RustMatrixClientTest {
|
||||
client = FakeFfiClient(createRoomResult = createRoomLambda)
|
||||
)
|
||||
|
||||
client.createDM(A_USER_ID)
|
||||
client.createDM(userId = A_USER_ID, isEncrypted = true)
|
||||
|
||||
createRoomLambda.assertions().isCalledOnce()
|
||||
assertThat(createParameters?.historyVisibilityOverride).isEqualTo(RoomHistoryVisibility.Invited)
|
||||
|
||||
+4
-4
@@ -145,7 +145,7 @@ class FakeMatrixClient(
|
||||
override val userProfile: StateFlow<MatrixUser> = _userProfile
|
||||
|
||||
var createRoomResult: (CreateRoomParameters) -> Result<RoomId> = { Result.success(A_ROOM_ID) }
|
||||
private var createDmResult: Result<RoomId> = Result.success(A_ROOM_ID)
|
||||
var createDmResult: (UserId, Boolean) -> Result<RoomId> = { _, _ -> Result.success(A_ROOM_ID) }
|
||||
private var findDmResult: Result<RoomId?> = Result.success(A_ROOM_ID)
|
||||
private val getRoomResults = mutableMapOf<RoomId, BaseRoom>()
|
||||
private val searchUserResults = mutableMapOf<String, Result<MatrixSearchUserResults>>()
|
||||
@@ -196,8 +196,8 @@ class FakeMatrixClient(
|
||||
return createRoomResult(createRoomParams)
|
||||
}
|
||||
|
||||
override suspend fun createDM(userId: UserId): Result<RoomId> = simulateLongTask {
|
||||
return createDmResult
|
||||
override suspend fun createDM(userId: UserId, isEncrypted: Boolean): Result<RoomId> = simulateLongTask {
|
||||
return createDmResult(userId, isEncrypted)
|
||||
}
|
||||
|
||||
override suspend fun getProfile(userId: UserId): Result<MatrixUser> {
|
||||
@@ -301,7 +301,7 @@ class FakeMatrixClient(
|
||||
}
|
||||
|
||||
fun givenCreateDmResult(result: Result<RoomId>) {
|
||||
createDmResult = result
|
||||
createDmResult = { _, _ -> result }
|
||||
}
|
||||
|
||||
fun givenFindDmResult(result: Result<RoomId?>) {
|
||||
|
||||
Reference in New Issue
Block a user