From acdbec2de2ae322fca10b3c0d771db8bde2df9ef Mon Sep 17 00:00:00 2001 From: Jorge Martin Espinosa Date: Mon, 5 Jan 2026 16:06:00 +0100 Subject: [PATCH] Use `VerificationState.VERIFIED` as soon as it's available (#5973) This can't be a false positive like `VerificationState.UNKNOWN` or `VerificationState.UNVERIFIED`, so it makes sense to return it as fast as possible instead of waiting for the whole encryption layer to be fully loaded. --- .../matrix/impl/verification/RustSessionVerificationService.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt index f613ce8dff..7fb2935897 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/verification/RustSessionVerificationService.kt @@ -72,7 +72,8 @@ class RustSessionVerificationService( // Listen for changes in verification status and update accordingly private val verificationStateListenerTaskHandle = encryptionService.verificationStateListener(object : VerificationStateListener { override fun onUpdate(status: VerificationState) { - if (!isInitialized.get()) { + // If the status is verified, just use it. It can't be a false positive like unknown or unverified + if (!isInitialized.get() && status != VerificationState.VERIFIED) { Timber.d("Discarding new verifications state: $status. E2EE is not initialised yet") return }