feat: Join room by alias by tpying alias in searchbar

pull/827/head
krille-chan 1 year ago
parent 5a6a366028
commit a7e8ec78ed
No known key found for this signature in database

@ -214,12 +214,34 @@ class ChatListController extends State<ChatList>
} }
SearchUserDirectoryResponse? userSearchResult; SearchUserDirectoryResponse? userSearchResult;
QueryPublicRoomsResponse? roomSearchResult; QueryPublicRoomsResponse? roomSearchResult;
final searchQuery = searchController.text.trim();
try { try {
roomSearchResult = await client.queryPublicRooms( roomSearchResult = await client.queryPublicRooms(
server: searchServer, server: searchServer,
filter: PublicRoomQueryFilter(genericSearchTerm: searchController.text), filter: PublicRoomQueryFilter(genericSearchTerm: searchQuery),
limit: 20, limit: 20,
); );
if (searchQuery.isValidMatrixId &&
searchQuery.sigil == '#' &&
roomSearchResult.chunk
.any((room) => room.canonicalAlias == searchQuery) ==
false) {
final response = await client.getRoomIdByAlias(searchQuery);
final roomId = response.roomId;
if (roomId != null) {
roomSearchResult.chunk.add(
PublicRoomsChunk(
name: searchQuery,
guestCanJoin: false,
numJoinedMembers: 0,
roomId: roomId,
worldReadable: false,
canonicalAlias: searchQuery,
),
);
}
}
userSearchResult = await client.searchUserDirectory( userSearchResult = await client.searchUserDirectory(
searchController.text, searchController.text,
limit: 20, limit: 20,

Loading…
Cancel
Save