Don't show play with bots button if bot has already been invited (#3860)

* Don't show play with bots button if bot has already been invited

* Check participant list for bot directly, move bot presence check

---------

Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com>
pull/2245/head
Kelrap 2 months ago committed by GitHub
parent 57f906b99e
commit 58fec71756
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -7,6 +7,7 @@ import 'package:matrix/matrix.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pangea/activity_sessions/activity_room_extension.dart';
import 'package:fluffychat/pangea/activity_sessions/activity_session_start/activity_sessions_start_view.dart';
import 'package:fluffychat/pangea/bot/utils/bot_name.dart';
import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart';
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart';
import 'package:fluffychat/widgets/future_loading_dialog.dart';
@ -50,6 +51,10 @@ class ActivitySessionStartController extends State<ActivitySessionStartPage> {
Room get room => widget.room;
bool get isBotRoomMember => room.getParticipants().any(
(p) => p.id == BotName.byEnvironment,
);
String get displayname => room.getLocalizedDisplayname(
MatrixLocals(L10n.of(context)),
);

@ -129,29 +129,30 @@ class ActivitySessionStartView extends StatelessWidget {
),
),
if (controller.room.isRoomAdmin) ...[
ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor:
theme.colorScheme.primaryContainer,
foregroundColor:
theme.colorScheme.onPrimaryContainer,
padding: const EdgeInsets.all(8.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20.0),
if (!controller.isBotRoomMember)
ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor:
theme.colorScheme.primaryContainer,
foregroundColor:
theme.colorScheme.onPrimaryContainer,
padding: const EdgeInsets.all(8.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20.0),
),
),
onPressed: () => showFutureLoadingDialog(
context: context,
future: () => controller.room
.invite(BotName.byEnvironment),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(L10n.of(context).playWithBot),
],
),
),
onPressed: () => showFutureLoadingDialog(
context: context,
future: () => controller.room
.invite(BotName.byEnvironment),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(L10n.of(context).playWithBot),
],
),
),
ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor:

Loading…
Cancel
Save