deps(sdk) : add fallbackToServer on userIdentity api.

This commit is contained in:
ganfra 2025-11-24 20:22:11 +01:00
parent 8a4bdfa1fd
commit 1246bfa21e
3 changed files with 8 additions and 17 deletions

View file

@ -64,8 +64,6 @@ interface EncryptionService {
*/
suspend fun startIdentityReset(): Result<IdentityResetHandle?>
suspend fun isUserVerified(userId: UserId): Result<Boolean>
/**
* Remember this identity, ensuring it does not result in a pin violation.
*/
@ -82,8 +80,10 @@ interface EncryptionService {
/**
* Get the identity state of a user, if known.
* @param userId the user id to get the identity for.
* @param fallbackToServer whether to fallback to fetching the identity from the server if not known locally. Defaults to true.
*/
suspend fun getUserIdentity(userId: UserId): Result<IdentityState?>
suspend fun getUserIdentity(userId: UserId, fallbackToServer: Boolean = true): Result<IdentityState?>
}
/**

View file

@ -240,10 +240,6 @@ class RustEncryptionService(
}
}
override suspend fun isUserVerified(userId: UserId): Result<Boolean> = runCatchingExceptions {
getUserIdentityInternal(userId).isVerified()
}
override suspend fun pinUserIdentity(userId: UserId): Result<Unit> = runCatchingExceptions {
getUserIdentityInternal(userId).pin()
}
@ -252,8 +248,8 @@ class RustEncryptionService(
getUserIdentityInternal(userId).withdrawVerification()
}
override suspend fun getUserIdentity(userId: UserId): Result<IdentityState?> = runCatchingExceptions {
val identity = getUserIdentityInternal(userId)
override suspend fun getUserIdentity(userId: UserId, fallbackToServer: Boolean): Result<IdentityState?> = runCatchingExceptions {
val identity = getUserIdentityInternal(userId, fallbackToServer)
val isVerified = identity.isVerified()
when {
identity.hasVerificationViolation() -> IdentityState.VerificationViolation
@ -263,10 +259,10 @@ class RustEncryptionService(
}
}
suspend fun getUserIdentityInternal(userId: UserId): UserIdentity {
private suspend fun getUserIdentityInternal(userId: UserId, fallbackToServer: Boolean = true): UserIdentity {
return service.userIdentity(
userId = userId.value,
// requestFromHomeserverIfNeeded = true,
fallbackToServer = fallbackToServer,
) ?: error("User identity not found")
}

View file

@ -26,7 +26,6 @@ import kotlinx.coroutines.flow.flowOf
class FakeEncryptionService(
var startIdentityResetLambda: () -> Result<IdentityResetHandle?> = { lambdaError() },
private val pinUserIdentityResult: (UserId) -> Result<Unit> = { lambdaError() },
private val isUserVerifiedResult: (UserId) -> Result<Boolean> = { lambdaError() },
private val withdrawVerificationResult: (UserId) -> Result<Unit> = { lambdaError() },
private val getUserIdentityResult: (UserId) -> Result<IdentityState?> = { lambdaError() },
private val enableRecoveryLambda: (Boolean) -> Result<Unit> = { lambdaError() },
@ -139,11 +138,7 @@ class FakeEncryptionService(
return withdrawVerificationResult(userId)
}
override suspend fun isUserVerified(userId: UserId): Result<Boolean> = simulateLongTask {
isUserVerifiedResult(userId)
}
override suspend fun getUserIdentity(userId: UserId): Result<IdentityState?> = simulateLongTask {
override suspend fun getUserIdentity(userId: UserId, fallbackToServer: Boolean): Result<IdentityState?> = simulateLongTask {
return getUserIdentityResult(userId)
}