|
|
@ -64,17 +64,17 @@ class PublicRoomBottomSheet extends StatelessWidget {
|
|
|
|
|
|
|
|
|
|
|
|
bool _testRoom(PublicRoomsChunk r) => r.canonicalAlias == roomAlias;
|
|
|
|
bool _testRoom(PublicRoomsChunk r) => r.canonicalAlias == roomAlias;
|
|
|
|
|
|
|
|
|
|
|
|
Future<PublicRoomsChunk> _search(BuildContext context) async {
|
|
|
|
Future<PublicRoomsChunk> _search() async {
|
|
|
|
final chunk = this.chunk;
|
|
|
|
final chunk = this.chunk;
|
|
|
|
if (chunk != null) return chunk;
|
|
|
|
if (chunk != null) return chunk;
|
|
|
|
final query = await Matrix.of(context).client.queryPublicRooms(
|
|
|
|
final query = await Matrix.of(outerContext).client.queryPublicRooms(
|
|
|
|
server: roomAlias!.domain,
|
|
|
|
server: roomAlias!.domain,
|
|
|
|
filter: PublicRoomQueryFilter(
|
|
|
|
filter: PublicRoomQueryFilter(
|
|
|
|
genericSearchTerm: roomAlias,
|
|
|
|
genericSearchTerm: roomAlias,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
);
|
|
|
|
if (!query.chunk.any(_testRoom)) {
|
|
|
|
if (!query.chunk.any(_testRoom)) {
|
|
|
|
throw (L10n.of(context)!.noRoomsFound);
|
|
|
|
throw (L10n.of(outerContext)!.noRoomsFound);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return query.chunk.firstWhere(_testRoom);
|
|
|
|
return query.chunk.firstWhere(_testRoom);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -108,7 +108,7 @@ class PublicRoomBottomSheet extends StatelessWidget {
|
|
|
|
],
|
|
|
|
],
|
|
|
|
),
|
|
|
|
),
|
|
|
|
body: FutureBuilder<PublicRoomsChunk>(
|
|
|
|
body: FutureBuilder<PublicRoomsChunk>(
|
|
|
|
future: _search(context),
|
|
|
|
future: _search(),
|
|
|
|
builder: (context, snapshot) {
|
|
|
|
builder: (context, snapshot) {
|
|
|
|
final profile = snapshot.data;
|
|
|
|
final profile = snapshot.data;
|
|
|
|
return ListView(
|
|
|
|
return ListView(
|
|
|
@ -142,7 +142,7 @@ class PublicRoomBottomSheet extends StatelessWidget {
|
|
|
|
onPressed: () => _joinRoom(context),
|
|
|
|
onPressed: () => _joinRoom(context),
|
|
|
|
label: Text(
|
|
|
|
label: Text(
|
|
|
|
chunk?.joinRule == 'knock' &&
|
|
|
|
chunk?.joinRule == 'knock' &&
|
|
|
|
Matrix.of(context)
|
|
|
|
Matrix.of(outerContext)
|
|
|
|
.client
|
|
|
|
.client
|
|
|
|
.getRoomById(chunk!.roomId) ==
|
|
|
|
.getRoomById(chunk!.roomId) ==
|
|
|
|
null
|
|
|
|
null
|
|
|
|