fix: No roomId in BasicRoomEvent stores roomaccountdata silently wrong
This commit is contained in:
parent
32e051c439
commit
50ac4b55b2
|
|
@ -2670,7 +2670,7 @@ class Client extends MatrixApi {
|
||||||
final accountData = syncRoomUpdate.accountData;
|
final accountData = syncRoomUpdate.accountData;
|
||||||
if (accountData != null && accountData.isNotEmpty) {
|
if (accountData != null && accountData.isNotEmpty) {
|
||||||
for (final event in accountData) {
|
for (final event in accountData) {
|
||||||
await database?.storeRoomAccountData(event);
|
await database?.storeRoomAccountData(room.id, event);
|
||||||
room.roomAccountData[event.type] = event;
|
room.roomAccountData[event.type] = event;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2739,7 +2739,7 @@ class Client extends MatrixApi {
|
||||||
roomId: room.id,
|
roomId: room.id,
|
||||||
content: receiptStateContent.toJson(),
|
content: receiptStateContent.toJson(),
|
||||||
);
|
);
|
||||||
await database?.storeRoomAccountData(event);
|
await database?.storeRoomAccountData(room.id, event);
|
||||||
room.roomAccountData[event.type] = event;
|
room.roomAccountData[event.type] = event;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,7 @@ abstract class DatabaseApi {
|
||||||
|
|
||||||
Future storeAccountData(String type, Map<String, Object?> content);
|
Future storeAccountData(String type, Map<String, Object?> content);
|
||||||
|
|
||||||
Future storeRoomAccountData(BasicRoomEvent event);
|
Future storeRoomAccountData(String roomId, BasicRoomEvent event);
|
||||||
|
|
||||||
Future<Map<String, DeviceKeysList>> getUserDeviceKeys(Client client);
|
Future<Map<String, DeviceKeysList>> getUserDeviceKeys(Client client);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1096,9 +1096,9 @@ class HiveCollectionsDatabase extends DatabaseApi {
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> storeRoomAccountData(BasicRoomEvent event) async {
|
Future<void> storeRoomAccountData(String roomId, BasicRoomEvent event) async {
|
||||||
await _roomAccountDataBox.put(
|
await _roomAccountDataBox.put(
|
||||||
TupleKey(event.roomId ?? '', event.type).toString(),
|
TupleKey(roomId, event.type).toString(),
|
||||||
copyMap(event.toJson()),
|
copyMap(event.toJson()),
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -1084,9 +1084,9 @@ class MatrixSdkDatabase extends DatabaseApi with DatabaseFileStorage {
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> storeRoomAccountData(BasicRoomEvent event) async {
|
Future<void> storeRoomAccountData(String roomId, BasicRoomEvent event) async {
|
||||||
await _roomAccountDataBox.put(
|
await _roomAccountDataBox.put(
|
||||||
TupleKey(event.roomId ?? '', event.type).toString(),
|
TupleKey(roomId, event.type).toString(),
|
||||||
event.toJson(),
|
event.toJson(),
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -256,6 +256,7 @@ void main() {
|
||||||
);
|
);
|
||||||
|
|
||||||
await database.storeRoomAccountData(
|
await database.storeRoomAccountData(
|
||||||
|
roomid,
|
||||||
BasicRoomEvent(
|
BasicRoomEvent(
|
||||||
content: {'foo': 'bar'},
|
content: {'foo': 'bar'},
|
||||||
type: 'm.test',
|
type: 'm.test',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue