diff --git a/lib/pangea/activity_sessions/activity_session_start/activity_session_start_page.dart b/lib/pangea/activity_sessions/activity_session_start/activity_session_start_page.dart index 57af3ee51..726c4d148 100644 --- a/lib/pangea/activity_sessions/activity_session_start/activity_session_start_page.dart +++ b/lib/pangea/activity_sessions/activity_session_start/activity_session_start_page.dart @@ -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 { 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)), ); diff --git a/lib/pangea/activity_sessions/activity_session_start/activity_sessions_start_view.dart b/lib/pangea/activity_sessions/activity_session_start/activity_sessions_start_view.dart index 220cb8a70..7493f706d 100644 --- a/lib/pangea/activity_sessions/activity_session_start/activity_sessions_start_view.dart +++ b/lib/pangea/activity_sessions/activity_session_start/activity_sessions_start_view.dart @@ -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: