From 3a7dff596e0ce7896a19ea57d2cf637e24402ae7 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Mon, 14 Oct 2019 16:50:10 +0000 Subject: [PATCH] [ContactSearch] Hotfix --- lib/src/Client.dart | 9 +++++---- test/Client_test.dart | 27 ++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/lib/src/Client.dart b/lib/src/Client.dart index 9a68d9c..f2422f4 100644 --- a/lib/src/Client.dart +++ b/lib/src/Client.dart @@ -299,13 +299,14 @@ class Client { if (contactDiscoveryRoom != null) contacts = await contactDiscoveryRoom.requestParticipants(); else { - Map userMap = {}; + Map userMap = {}; for (int i = 0; i < roomList.rooms.length; i++) { List roomUsers = roomList.rooms[i].getParticipants(); - for (int j = 0; j < roomUsers.length; j++) - userMap[roomUsers[i].id] = roomUsers[i]; + for (int j = 0; j < roomUsers.length; j++) { + if (userMap[roomUsers[j].id] != true) contacts.add(roomUsers[j]); + userMap[roomUsers[j].id] = true; + } } - userMap.forEach((String id, User user) => contacts.add(user)); } return contacts; } diff --git a/test/Client_test.dart b/test/Client_test.dart index fd0ed4f..1726c79 100644 --- a/test/Client_test.dart +++ b/test/Client_test.dart @@ -133,6 +133,31 @@ void main() { matrix.presences["@alice:example.com"].content["presence"], "online"); expect(presenceCounter, 1); expect(accountDataCounter, 2); + + matrix.connection.onEvent.add( + EventUpdate( + roomID: "!726s6s6q:example.com", + type: "state", + eventType: "m.room.canonical_alias", + content: { + "sender": "@alice:example.com", + "type": "m.room.canonical_alias", + "content": {"alias": ""}, + "state_key": "", + "origin_server_ts": 1417731086799, + "event_id": "66697273743033:example.com" + }, + ), + ); + await new Future.delayed(new Duration(milliseconds: 50)); + + expect( + matrix.roomList.getRoomByAlias( + "#famedlyContactDiscovery:${matrix.userID.split(":")[1]}"), + null); + final List altContacts = await matrix.loadFamedlyContacts(); + expect(altContacts.length, 2); + expect(altContacts[0].senderId, "@alice:example.com"); }); test('Try to get ErrorResponse', () async { @@ -198,7 +223,7 @@ void main() { List eventUpdateList = await eventUpdateListFuture; - expect(eventUpdateList.length, 8); + expect(eventUpdateList.length, 9); expect(eventUpdateList[0].eventType, "m.room.member"); expect(eventUpdateList[0].roomID, "!726s6s6q:example.com");