From 5d73f06cd34023a372ef6bf4b3d72927cf2d9367 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Wed, 19 Feb 2020 10:54:08 +0100 Subject: [PATCH] [DevicekeysList] Clear outbound group session on blocking device --- lib/src/utils/device_keys_list.dart | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/src/utils/device_keys_list.dart b/lib/src/utils/device_keys_list.dart index 4304a2f..f24b229 100644 --- a/lib/src/utils/device_keys_list.dart +++ b/lib/src/utils/device_keys_list.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import '../client.dart'; +import '../room.dart'; class DeviceKeysList { String userId; @@ -55,6 +56,12 @@ class DeviceKeys { Future setBlocked(bool newBlocked, Client client) { blocked = newBlocked; + for (Room room in client.rooms) { + if (!room.encrypted) continue; + if (room.getParticipants().indexWhere((u) => u.id == userId) != -1) { + room.clearOutboundGroupSession(); + } + } return client.storeAPI.storeUserDeviceKeys(client.userDeviceKeys); }