From 98b0bd43224cc79c5e606d48f0bccab2c91b58e5 Mon Sep 17 00:00:00 2001 From: Sorunome Date: Sat, 7 Aug 2021 16:31:21 +0200 Subject: [PATCH] feat: Add a way to get a verification request by its transaction id A client might find the need to get the verification request object by its transaction id, to be able to e.g. display for in-room verification an "accept verification request" button easily. --- lib/encryption/key_verification_manager.dart | 2 ++ test/encryption/key_verification_test.dart | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/lib/encryption/key_verification_manager.dart b/lib/encryption/key_verification_manager.dart index e956ac16..61a0b8c1 100644 --- a/lib/encryption/key_verification_manager.dart +++ b/lib/encryption/key_verification_manager.dart @@ -52,6 +52,8 @@ class KeyVerificationManager { _requests[request.transactionId] = request; } + KeyVerification getRequest(String requestId) => _requests[requestId]; + Future handleToDeviceEvent(ToDeviceEvent event) async { if (!event.type.startsWith('m.key.verification.') || client.verificationMethods.isEmpty) { diff --git a/test/encryption/key_verification_test.dart b/test/encryption/key_verification_test.dart index 4b57ba62..6feebd5f 100644 --- a/test/encryption/key_verification_test.dart +++ b/test/encryption/key_verification_test.dart @@ -128,6 +128,11 @@ void main() { await sub.cancel(); expect(req2 != null, true); + expect( + client2.encryption.keyVerificationManager + .getRequest(req2.transactionId), + req2); + // send ready FakeMatrixApi.calledEndpoints.clear(); await req2.acceptVerification();