diff --git a/lib/src/database/hive_collections_database.dart b/lib/src/database/hive_collections_database.dart index 8d0a6d1b..3c2ee5e2 100644 --- a/lib/src/database/hive_collections_database.dart +++ b/lib/src/database/hive_collections_database.dart @@ -570,6 +570,20 @@ class HiveCollectionsDatabase extends DatabaseApi { if (roomData == null) return null; final room = Room.fromJson(copyMap(roomData), client); + // Get the room account data + final allKeys = await _roomAccountDataBox.getAllKeys(); + final roomAccountDataKeys = allKeys + .where((key) => TupleKey.fromString(key).parts.first == roomId) + .toList(); + final roomAccountDataList = + await _roomAccountDataBox.getAll(roomAccountDataKeys); + + for (final data in roomAccountDataList) { + if (data == null) continue; + final event = BasicRoomEvent.fromJson(copyMap(data)); + room.roomAccountData[event.type] = event; + } + // Get important states: if (loadImportantStates) { final dbKeys = client.importantStateEvents diff --git a/lib/src/database/matrix_sdk_database.dart b/lib/src/database/matrix_sdk_database.dart index 7db3bfe5..bd1e6cfb 100644 --- a/lib/src/database/matrix_sdk_database.dart +++ b/lib/src/database/matrix_sdk_database.dart @@ -591,6 +591,20 @@ class MatrixSdkDatabase extends DatabaseApi with DatabaseFileStorage { if (roomData == null) return null; final room = Room.fromJson(copyMap(roomData), client); + // Get the room account data + final allKeys = await _roomAccountDataBox.getAllKeys(); + final roomAccountDataKeys = allKeys + .where((key) => TupleKey.fromString(key).parts.first == roomId) + .toList(); + final roomAccountDataList = + await _roomAccountDataBox.getAll(roomAccountDataKeys); + + for (final data in roomAccountDataList) { + if (data == null) continue; + final event = BasicRoomEvent.fromJson(copyMap(data)); + room.roomAccountData[event.type] = event; + } + // Get important states: if (loadImportantStates) { final preloadRoomStateKeys = await _preloadRoomStateBox.getAllKeys();