diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/IncomingVerificationRequestHandler.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/IncomingVerificationRequestHandler.kt index 9b137f3c02..0fbbccee8a 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/IncomingVerificationRequestHandler.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/IncomingVerificationRequestHandler.kt @@ -137,10 +137,6 @@ class IncomingVerificationRequestHandler @Inject constructor(private val context (weakCurrentActivity?.get() as? VectorBaseActivity)?.let { val roomId = pr.roomId if (roomId.isNullOrBlank()) { - session?.getVerificationService() - ?.readyPendingVerification(supportedVerificationMethods, - pr.otherUserId, - pr.transactionId ?: "") it.navigator.waitSessionVerification(it) } else { it.navigator.openRoom(it, roomId, pr.transactionId) diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheetViewModel.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheetViewModel.kt index 55394d6251..101310d20e 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheetViewModel.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheetViewModel.kt @@ -100,6 +100,16 @@ class VerificationBottomSheetViewModel @AssistedInject constructor(@Assisted ini // See if active tx for this user and take it session.getVerificationService().getExistingVerificationRequest(args.otherUserId) ?.firstOrNull { !it.isFinished } + ?.also { verificationRequest -> + if (verificationRequest.isIncoming && !verificationRequest.isReady) { + //auto ready in this case, as we are waiting + // TODO, can I be here in DM mode? in this case should test if roomID is null? + session.getVerificationService() + .readyPendingVerification(supportedVerificationMethods, + verificationRequest.otherUserId, + verificationRequest.transactionId ?: "") + } + } } else { session.getVerificationService().getExistingVerificationRequest(args.otherUserId, args.verificationId) } @@ -298,6 +308,15 @@ class VerificationBottomSheetViewModel @AssistedInject constructor(@Assisted ini if (state.waitForOtherUserMode && state.pendingRequest.invoke() == null && state.transactionId == null) { // is this an incoming with that user if (pr.isIncoming && pr.otherUserId == state.otherUserMxItem?.id) { + if (!pr.isReady) { + //auto ready in this case, as we are waiting + // TODO, can I be here in DM mode? in this case should test if roomID is null? + session.getVerificationService() + .readyPendingVerification(supportedVerificationMethods, + pr.otherUserId, + pr.transactionId ?: "") + } + // Use this one! setState { copy(