From 59ec9de8e8d702e742f7a2bddb267c5220ade706 Mon Sep 17 00:00:00 2001 From: Sorunome Date: Sat, 21 Nov 2020 15:16:32 +0100 Subject: [PATCH] fix: Suggest correct rooms --- lib/components/input_bar.dart | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/lib/components/input_bar.dart b/lib/components/input_bar.dart index 9c871298..e5629e63 100644 --- a/lib/components/input_bar.dart +++ b/lib/components/input_bar.dart @@ -103,19 +103,24 @@ class InputBar extends StatelessWidget { if (roomMatch != null) { final roomSearch = roomMatch[1].toLowerCase(); for (final r in room.client.rooms) { - final state = r.getState('m.room.canonical_alias'); - if (state != null && - ((state.content['alias'] is String && - state.content['alias'] - .split(':')[0] - .toLowerCase() - .contains(roomSearch)) || - (state.content['alt_aliases'] is List && - state.content['alt_aliases'].any((l) => - l is String && - l.split(':')[0].toLowerCase().contains(roomSearch))) || - (room.name != null && - room.name.toLowerCase().contains(roomSearch)))) { + if (r.getState(EventTypes.RoomTombstone) != null) { + continue; // we don't care about tombstoned rooms + } + final state = r.getState(EventTypes.RoomCanonicalAlias); + if ((state != null && + ((state.content['alias'] is String && + state.content['alias'] + .split(':')[0] + .toLowerCase() + .contains(roomSearch)) || + (state.content['alt_aliases'] is List && + state.content['alt_aliases'].any((l) => + l is String && + l + .split(':')[0] + .toLowerCase() + .contains(roomSearch))))) || + (r.name != null && r.name.toLowerCase().contains(roomSearch))) { ret.add({ 'type': 'room', 'mxid': (r.canonicalAlias != null && r.canonicalAlias.isNotEmpty)