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 a685e5a0e..a24167a28 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 @@ -199,7 +199,7 @@ class ActivitySessionStartController extends State if (mounted) setState(() => _selectedRoleId = id); } - Future courseHasEnoughParticipants() async { + Future neededCourseParticipants() async { final courseParticipants = await courseParent?.requestParticipants( [Membership.join, Membership.invite, Membership.knock], false, @@ -214,7 +214,10 @@ class ActivitySessionStartController extends State final addBotToAvailableUsers = !botInCourse && !isBotRoomMember; final availableParticipants = courseParticipants.length + (addBotToAvailableUsers ? 1 : 0); - return availableParticipants >= (activity?.req.numberOfParticipants ?? 0); + if (availableParticipants >= (activity?.req.numberOfParticipants ?? 0)) { + return 0; + } + return (activity?.req.numberOfParticipants ?? 0) - availableParticipants; } Future _loadActivity() async { 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 50b98a86e..e07189307 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 @@ -258,21 +258,20 @@ class _ActivityStartButtons extends StatelessWidget { Widget build(BuildContext context) { final hasActiveSession = controller.canJoinExistingSession; return FutureBuilder( - future: controller.courseHasEnoughParticipants(), + future: controller.neededCourseParticipants(), builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { return const LinearProgressIndicator(); } - final bool hasEnoughParticipants = snapshot.data ?? true; + final int neededParticipants = snapshot.data ?? 0; + final bool hasEnoughParticipants = neededParticipants <= 0; return Column( spacing: 16.0, children: [ if (!hasEnoughParticipants) ...[ Text( - L10n.of(context).activityNeedsMembers( - (controller.activity?.req.numberOfParticipants ?? 2) - 1, - ), + L10n.of(context).activityNeedsMembers(neededParticipants), textAlign: TextAlign.center, ), if (controller.courseParent?.canInvite ?? false)