feat: Join room by alias by tpying alias in searchbar
This commit is contained in:
parent
5a6a366028
commit
a7e8ec78ed
1 changed files with 23 additions and 1 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue