diff --git a/lib/encryption/key_manager.dart b/lib/encryption/key_manager.dart index 786a76b5..9be67bf3 100644 --- a/lib/encryption/key_manager.dart +++ b/lib/encryption/key_manager.dart @@ -382,6 +382,15 @@ class KeyManager { .where((e) => !e.value) .map((e) => e.key)) : {}; + + // check if a device got removed + if (oldDeviceIds.difference(newDeviceIds).isNotEmpty) { + print("Device deleted, rotating megolm session"); + wipe = true; + break; + } + + // check if any new devices need keys final newDevices = newDeviceIds.difference(oldDeviceIds); if (newDeviceIds.isNotEmpty) { devicesToReceive.addAll(newDeviceKeys.where(