Skip to content

Commit

Permalink
refactor: Remove BasicRoomEvent type
Browse files Browse the repository at this point in the history
We actually never use the
roomId of this type and the
matrix spec has changed in
a way that the roomId is
never sent there actually. So
it was super easy to just
replace all BasicRoomEvent
with BasicEvent. The roomId
became nullable anyway.
  • Loading branch information
krille-chan committed Jan 9, 2025
1 parent 8d7b4dd commit 3f04532
Show file tree
Hide file tree
Showing 12 changed files with 36 additions and 86 deletions.
3 changes: 1 addition & 2 deletions lib/fake_matrix_api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -245,10 +245,9 @@ class FakeMatrixApi extends BaseClient {
join: {
roomId: JoinedRoomUpdate(
accountData: [
sdk.BasicRoomEvent(
sdk.BasicEvent(
content: decodeJson(data),
type: type,
roomId: roomId,
),
],
),
Expand Down
1 change: 0 additions & 1 deletion lib/matrix_api_lite.dart
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ export 'matrix_api_lite/model/auth/authentication_types.dart';
export 'matrix_api_lite/model/auth/authentication_user_identifier.dart';
export 'matrix_api_lite/model/basic_event.dart';
export 'matrix_api_lite/model/basic_event_with_sender.dart';
export 'matrix_api_lite/model/basic_room_event.dart';
export 'matrix_api_lite/model/event_types.dart';
export 'matrix_api_lite/model/events/forwarded_room_key_content.dart';
export 'matrix_api_lite/model/events/image_pack_content.dart';
Expand Down
45 changes: 0 additions & 45 deletions lib/matrix_api_lite/model/basic_room_event.dart

This file was deleted.

12 changes: 6 additions & 6 deletions lib/matrix_api_lite/model/sync_update.dart
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,8 @@ class JoinedRoomUpdate extends SyncRoomUpdate {
RoomSummary? summary;
List<MatrixEvent>? state;
TimelineUpdate? timeline;
List<BasicRoomEvent>? ephemeral;
List<BasicRoomEvent>? accountData;
List<BasicEvent>? ephemeral;
List<BasicEvent>? accountData;
UnreadNotificationCounts? unreadNotifications;

JoinedRoomUpdate({
Expand All @@ -192,11 +192,11 @@ class JoinedRoomUpdate extends SyncRoomUpdate {
timeline = json.tryGetFromJson('timeline', TimelineUpdate.fromJson),
ephemeral = json
.tryGetMap<String, List<Object?>>('ephemeral')?['events']
?.map((i) => BasicRoomEvent.fromJson(i as Map<String, Object?>))
?.map((i) => BasicEvent.fromJson(i as Map<String, Object?>))
.toList(),
accountData = json
.tryGetMap<String, List<Object?>>('account_data')?['events']
?.map((i) => BasicRoomEvent.fromJson(i as Map<String, Object?>))
?.map((i) => BasicEvent.fromJson(i as Map<String, Object?>))
.toList(),
unreadNotifications = json.tryGetFromJson(
'unread_notifications',
Expand Down Expand Up @@ -280,7 +280,7 @@ class KnockRoomUpdate extends SyncRoomUpdate {
class LeftRoomUpdate extends SyncRoomUpdate {
List<MatrixEvent>? state;
TimelineUpdate? timeline;
List<BasicRoomEvent>? accountData;
List<BasicEvent>? accountData;

LeftRoomUpdate({
this.state,
Expand All @@ -296,7 +296,7 @@ class LeftRoomUpdate extends SyncRoomUpdate {
timeline = json.tryGetFromJson('timeline', TimelineUpdate.fromJson),
accountData = json
.tryGetMap<String, List<Object?>>('account_data')?['events']
?.map((i) => BasicRoomEvent.fromJson(i as Map<String, Object?>))
?.map((i) => BasicEvent.fromJson(i as Map<String, Object?>))
.toList();

Map<String, Object?> toJson() {
Expand Down
7 changes: 3 additions & 4 deletions lib/src/client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1200,7 +1200,7 @@ class Client extends MatrixApi {
roomAccountData: roomUpdate.accountData
?.asMap()
.map((k, v) => MapEntry(v.type, v)) ??
<String, BasicRoomEvent>{},
<String, BasicEvent>{},
);
// Set membership of room to leave, in the case we got a left room passed, otherwise
// the left room would have still membership join, which would be wrong for the setState later
Expand Down Expand Up @@ -2713,7 +2713,7 @@ class Client extends MatrixApi {
}
}

Future<void> _handleEphemerals(Room room, List<BasicRoomEvent> events) async {
Future<void> _handleEphemerals(Room room, List<BasicEvent> events) async {
final List<ReceiptEventContent> receipts = [];

for (final event in events) {
Expand All @@ -2734,9 +2734,8 @@ class Client extends MatrixApi {
await receiptStateContent.update(e, room);
}

final event = BasicRoomEvent(
final event = BasicEvent(
type: LatestReceiptState.eventType,
roomId: room.id,
content: receiptStateContent.toJson(),
);
await database?.storeRoomAccountData(room.id, event);
Expand Down
2 changes: 1 addition & 1 deletion lib/src/database/database_api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ abstract class DatabaseApi {

Future storeAccountData(String type, Map<String, Object?> content);

Future storeRoomAccountData(String roomId, BasicRoomEvent event);
Future storeRoomAccountData(String roomId, BasicEvent event);

Future<Map<String, DeviceKeysList>> getUserDeviceKeys(Client client);

Expand Down
6 changes: 3 additions & 3 deletions lib/src/database/hive_collections_database.dart
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,7 @@ class HiveCollectionsDatabase extends DatabaseApi {

for (final data in roomAccountDataList) {
if (data == null) continue;
final event = BasicRoomEvent.fromJson(copyMap(data));
final event = BasicEvent.fromJson(copyMap(data));
room.roomAccountData[event.type] = event;
}

Expand Down Expand Up @@ -696,7 +696,7 @@ class HiveCollectionsDatabase extends DatabaseApi {
final roomAccountDataRaws = await _roomAccountDataBox.getAllValues();
for (final entry in roomAccountDataRaws.entries) {
final keys = TupleKey.fromString(entry.key);
final basicRoomEvent = BasicRoomEvent.fromJson(
final basicRoomEvent = BasicEvent.fromJson(
copyMap(entry.value),
);
final roomId = keys.parts.first;
Expand Down Expand Up @@ -1096,7 +1096,7 @@ class HiveCollectionsDatabase extends DatabaseApi {
}

@override
Future<void> storeRoomAccountData(String roomId, BasicRoomEvent event) async {
Future<void> storeRoomAccountData(String roomId, BasicEvent event) async {
await _roomAccountDataBox.put(
TupleKey(roomId, event.type).toString(),
copyMap(event.toJson()),
Expand Down
6 changes: 3 additions & 3 deletions lib/src/database/matrix_sdk_database.dart
Original file line number Diff line number Diff line change
Expand Up @@ -626,7 +626,7 @@ class MatrixSdkDatabase extends DatabaseApi with DatabaseFileStorage {

for (final data in roomAccountDataList) {
if (data == null) continue;
final event = BasicRoomEvent.fromJson(copyMap(data));
final event = BasicEvent.fromJson(copyMap(data));
room.roomAccountData[event.type] = event;
}

Expand Down Expand Up @@ -683,7 +683,7 @@ class MatrixSdkDatabase extends DatabaseApi with DatabaseFileStorage {
final roomAccountDataRaws = await _roomAccountDataBox.getAllValues();
for (final entry in roomAccountDataRaws.entries) {
final keys = TupleKey.fromString(entry.key);
final basicRoomEvent = BasicRoomEvent.fromJson(
final basicRoomEvent = BasicEvent.fromJson(
copyMap(entry.value),
);
final roomId = keys.parts.first;
Expand Down Expand Up @@ -1084,7 +1084,7 @@ class MatrixSdkDatabase extends DatabaseApi with DatabaseFileStorage {
}

@override
Future<void> storeRoomAccountData(String roomId, BasicRoomEvent event) async {
Future<void> storeRoomAccountData(String roomId, BasicEvent event) async {
await _roomAccountDataBox.put(
TupleKey(roomId, event.type).toString(),
event.toJson(),
Expand Down
13 changes: 6 additions & 7 deletions lib/src/room.dart
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ class Room {
Map<String, Map<String, StrippedStateEvent>> states = {};

/// Key-Value store for ephemerals.
Map<String, BasicRoomEvent> ephemerals = {};
Map<String, BasicEvent> ephemerals = {};

/// Key-Value store for private account data only visible for this user.
Map<String, BasicRoomEvent> roomAccountData = {};
Map<String, BasicEvent> roomAccountData = {};

final _sendingQueue = <Completer>[];

Expand Down Expand Up @@ -372,7 +372,7 @@ class Room {

Event? lastEvent;

void setEphemeral(BasicRoomEvent ephemeral) {
void setEphemeral(BasicEvent ephemeral) {
ephemerals[ephemeral.type] = ephemeral;
if (ephemeral.type == 'm.typing') {
_clearTypingIndicatorTimer?.cancel();
Expand Down Expand Up @@ -403,10 +403,10 @@ class Room {
this.highlightCount = 0,
this.prev_batch,
required this.client,
Map<String, BasicRoomEvent>? roomAccountData,
Map<String, BasicEvent>? roomAccountData,
RoomSummary? summary,
this.lastEvent,
}) : roomAccountData = roomAccountData ?? <String, BasicRoomEvent>{},
}) : roomAccountData = roomAccountData ?? <String, BasicEvent>{},
summary = summary ??
RoomSummary.fromJson({
'm.joined_member_count': 0,
Expand Down Expand Up @@ -572,9 +572,8 @@ class Room {
join: {
id: JoinedRoomUpdate(
accountData: [
BasicRoomEvent(
BasicEvent(
content: content,
roomId: id,
type: EventType.markedUnread,
),
],
Expand Down
3 changes: 1 addition & 2 deletions test/database_api_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -257,10 +257,9 @@ void main() {

await database.storeRoomAccountData(
roomid,
BasicRoomEvent(
BasicEvent(
content: {'foo': 'bar'},
type: 'm.test',
roomId: roomid,
),
);

Expand Down
8 changes: 4 additions & 4 deletions test/room_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,11 @@ void main() {
'm.heroes': heroes,
}),
roomAccountData: {
'com.test.foo': BasicRoomEvent(
'com.test.foo': BasicEvent(
type: 'com.test.foo',
content: {'foo': 'bar'},
),
'm.fully_read': BasicRoomEvent(
'm.fully_read': BasicEvent(
type: 'm.fully_read',
content: {'event_id': '\$event_id:example.com'},
),
Expand Down Expand Up @@ -1292,7 +1292,7 @@ void main() {
await room.addTag(TagType.favourite, order: 0.1);
await room.removeTag(TagType.favourite);
expect(room.isFavourite, false);
room.roomAccountData['m.tag'] = BasicRoomEvent.fromJson({
room.roomAccountData['m.tag'] = BasicEvent.fromJson({
'content': {
'tags': {
'm.favourite': {'order': 0.1},
Expand All @@ -1311,7 +1311,7 @@ void main() {
await room.markUnread(true);
await room.markUnread(false);
expect(room.markedUnread, false);
room.roomAccountData['m.marked_unread'] = BasicRoomEvent.fromJson({
room.roomAccountData['m.marked_unread'] = BasicEvent.fromJson({
'content': {'unread': true},
'type': 'm.marked_unread',
});
Expand Down
16 changes: 8 additions & 8 deletions test/timeline_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ void main() {
join: {
timeline.room.id: JoinedRoomUpdate(
ephemeral: [
BasicRoomEvent.fromJson({
BasicEvent.fromJson({
'type': 'm.receipt',
'content': {
timeline.events.first.eventId: {
Expand Down Expand Up @@ -294,7 +294,7 @@ void main() {
join: {
timeline.room.id: JoinedRoomUpdate(
ephemeral: [
BasicRoomEvent.fromJson({
BasicEvent.fromJson({
'type': 'm.receipt',
'content': {
'\$2': {
Expand Down Expand Up @@ -328,7 +328,7 @@ void main() {
join: {
timeline.room.id: JoinedRoomUpdate(
ephemeral: [
BasicRoomEvent.fromJson({
BasicEvent.fromJson({
'type': 'm.receipt',
'content': {
'\$2': {
Expand Down Expand Up @@ -371,7 +371,7 @@ void main() {
join: {
timeline.room.id: JoinedRoomUpdate(
ephemeral: [
BasicRoomEvent.fromJson({
BasicEvent.fromJson({
'type': 'm.receipt',
'content': {
'\$2': {
Expand Down Expand Up @@ -421,7 +421,7 @@ void main() {
join: {
timeline.room.id: JoinedRoomUpdate(
ephemeral: [
BasicRoomEvent.fromJson({
BasicEvent.fromJson({
'type': 'm.receipt',
'content': {
'\$1': {
Expand Down Expand Up @@ -467,7 +467,7 @@ void main() {
join: {
timeline.room.id: JoinedRoomUpdate(
ephemeral: [
BasicRoomEvent.fromJson({
BasicEvent.fromJson({
'type': 'm.receipt',
'content': {
'\$2': {
Expand Down Expand Up @@ -511,7 +511,7 @@ void main() {
join: {
timeline.room.id: JoinedRoomUpdate(
ephemeral: [
BasicRoomEvent.fromJson({
BasicEvent.fromJson({
'type': 'm.receipt',
'content': {
'\$2': {
Expand Down Expand Up @@ -559,7 +559,7 @@ void main() {
],
),
ephemeral: [
BasicRoomEvent.fromJson({
BasicEvent.fromJson({
'type': 'm.receipt',
'content': {
'\$2': {
Expand Down

0 comments on commit 3f04532

Please sign in to comment.