From c94da38438105b262f32bc6a0d8c2e7707ad3125 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Wed, 13 Jan 2021 13:30:47 +0100 Subject: [PATCH] fix: Hide verification timeline events in lastEvent --- lib/src/room.dart | 8 +++++--- test/client_test.dart | 2 +- test/room_test.dart | 2 +- test_driver/famedlysdk_test.dart | 30 +++++++++++++++--------------- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/lib/src/room.dart b/lib/src/room.dart index 3add8c85..2ddb5952 100644 --- a/lib/src/room.dart +++ b/lib/src/room.dart @@ -141,8 +141,10 @@ class Room { } } if (!(state.stateKey is String) && - ![EventTypes.Message, EventTypes.Sticker, EventTypes.Encrypted] - .contains(state.type)) { + ![EventTypes.Message, EventTypes.Sticker, EventTypes.Encrypted] + .contains(state.type) || + (state.type == EventTypes.Message && + state.messageType.startsWith('m.room.verification.'))) { return; } final oldStateEvent = getState(state.type, state.stateKey ?? ''); @@ -367,7 +369,7 @@ class Room { return 'Empty chat'; } - /// The last message sent to this room. + @Deprecated('Use [lastEvent.body] instead') String get lastMessage { if (lastEvent != null) { return lastEvent.body; diff --git a/test/client_test.dart b/test/client_test.dart index bcd0631c..019eb9c1 100644 --- a/test/client_test.dart +++ b/test/client_test.dart @@ -342,7 +342,7 @@ void main() { expect(archive[0].id, '!5345234234:example.com'); expect(archive[0].membership, Membership.leave); expect(archive[0].name, 'The room name'); - expect(archive[0].lastMessage, 'This is an example text message'); + expect(archive[0].lastEvent.body, 'This is an example text message'); expect(archive[0].roomAccountData.length, 1); expect(archive[1].id, '!5345234235:example.com'); expect(archive[1].membership, Membership.leave); diff --git a/test/room_test.dart b/test/room_test.dart index 36f4df35..191128f3 100644 --- a/test/room_test.dart +++ b/test/room_test.dart @@ -177,7 +177,7 @@ void main() { content: {'msgtype': 'm.text', 'body': 'test'}, stateKey: ''); expect(room.lastEvent.eventId, '12345'); - expect(room.lastMessage, 'test'); + expect(room.lastEvent.body, 'test'); expect(room.timeCreated, room.lastEvent.originServerTs); }); diff --git a/test_driver/famedlysdk_test.dart b/test_driver/famedlysdk_test.dart index 3f2ccec1..90a66a61 100644 --- a/test_driver/famedlysdk_test.dart +++ b/test_driver/famedlysdk_test.dart @@ -149,10 +149,10 @@ void test() async { /*assert(inviteRoom.client.encryption.keyManager .getInboundGroupSession(inviteRoom.id, currentSessionIdA, '') != null);*/ - assert(room.lastMessage == testMessage); - assert(inviteRoom.lastMessage == testMessage); + assert(room.lastEvent.body == testMessage); + assert(inviteRoom.lastEvent.body == testMessage); Logs().i( - "++++ (Bob) Received decrypted message: '${inviteRoom.lastMessage}' ++++"); + "++++ (Bob) Received decrypted message: '${inviteRoom.lastEvent.body}' ++++"); Logs().i("++++ (Alice) Send again encrypted message: '$testMessage2' ++++"); await room.sendTextEvent(testMessage2); @@ -176,10 +176,10 @@ void test() async { /*assert(room.client.encryption.keyManager .getInboundGroupSession(room.id, currentSessionIdA, '') != null);*/ - assert(room.lastMessage == testMessage2); - assert(inviteRoom.lastMessage == testMessage2); + assert(room.lastEvent.body == testMessage2); + assert(inviteRoom.lastEvent.body == testMessage2); Logs().i( - "++++ (Bob) Received decrypted message: '${inviteRoom.lastMessage}' ++++"); + "++++ (Bob) Received decrypted message: '${inviteRoom.lastEvent.body}' ++++"); Logs().i("++++ (Bob) Send again encrypted message: '$testMessage3' ++++"); await inviteRoom.sendTextEvent(testMessage3); @@ -209,10 +209,10 @@ void test() async { inviteRoomOutboundGroupSession.outboundGroupSession.session_id(), '') != null);*/ - assert(inviteRoom.lastMessage == testMessage3); - assert(room.lastMessage == testMessage3); + assert(inviteRoom.lastEvent.body == testMessage3); + assert(room.lastEvent.body == testMessage3); Logs().i( - "++++ (Alice) Received decrypted message: '${room.lastMessage}' ++++"); + "++++ (Alice) Received decrypted message: '${room.lastEvent.body}' ++++"); Logs().i('++++ Login Bob in another client ++++'); var testClientC = Client('TestClientC', databaseBuilder: getDatabase); @@ -256,10 +256,10 @@ void test() async { /*assert(inviteRoom.client.encryption.keyManager .getInboundGroupSession(inviteRoom.id, currentSessionIdA, '') != null);*/ - assert(room.lastMessage == testMessage4); - assert(inviteRoom.lastMessage == testMessage4); + assert(room.lastEvent.body == testMessage4); + assert(inviteRoom.lastEvent.body == testMessage4); Logs().i( - "++++ (Bob) Received decrypted message: '${inviteRoom.lastMessage}' ++++"); + "++++ (Bob) Received decrypted message: '${inviteRoom.lastEvent.body}' ++++"); Logs().i('++++ Logout Bob another client ++++'); await testClientC.dispose(closeDatabase: false); @@ -292,10 +292,10 @@ void test() async { /*assert(inviteRoom.client.encryption.keyManager .getInboundGroupSession(inviteRoom.id, currentSessionIdA, '') != null);*/ - assert(room.lastMessage == testMessage6); - assert(inviteRoom.lastMessage == testMessage6); + assert(room.lastEvent.body == testMessage6); + assert(inviteRoom.lastEvent.body == testMessage6); Logs().i( - "++++ (Bob) Received decrypted message: '${inviteRoom.lastMessage}' ++++"); + "++++ (Bob) Received decrypted message: '${inviteRoom.lastEvent.body}' ++++"); await room.leave(); await room.forget();