diff --git a/lib/pangea/activity_generator/activity_plan_card.dart b/lib/pangea/activity_generator/activity_plan_card.dart index 8291d8de1..621a5a6a0 100644 --- a/lib/pangea/activity_generator/activity_plan_card.dart +++ b/lib/pangea/activity_generator/activity_plan_card.dart @@ -81,8 +81,10 @@ class ActivityPlanCardState extends State { ); } - await widget.controller.launchToSpace(); - context.go("/rooms?spaceId=${widget.controller.room.id}"); + final ids = await widget.controller.launchToSpace(); + ids.length == 1 + ? context.go("/rooms/${ids.first}") + : context.go("/rooms?spaceId=${widget.controller.room.id}"); Navigator.of(context).pop(); }, ); diff --git a/lib/pangea/activity_planner/activity_planner_builder.dart b/lib/pangea/activity_planner/activity_planner_builder.dart index d05b047b1..b16fa6c17 100644 --- a/lib/pangea/activity_planner/activity_planner_builder.dart +++ b/lib/pangea/activity_planner/activity_planner_builder.dart @@ -261,13 +261,14 @@ class ActivityPlannerBuilderState extends State { setLaunchState(ActivityLaunchState.base); } - Future launchToSpace() async { + Future> launchToSpace() async { final List activityRoomIDs = []; try { - await Future.wait( + return Future.wait( List.generate(numActivities, (i) async { final id = await _launchActivityRoom(i); activityRoomIDs.add(id); + return id; }), ); } catch (e) { diff --git a/lib/pangea/activity_suggestions/activity_suggestion_dialog.dart b/lib/pangea/activity_suggestions/activity_suggestion_dialog.dart index 86a523088..cdbb39bbc 100644 --- a/lib/pangea/activity_suggestions/activity_suggestion_dialog.dart +++ b/lib/pangea/activity_suggestions/activity_suggestion_dialog.dart @@ -54,8 +54,10 @@ class ActivitySuggestionDialogState extends State { _launchError = null; }); - await widget.controller.launchToSpace(); - context.go("/rooms?spaceId=${widget.controller.room.id}"); + final ids = await widget.controller.launchToSpace(); + ids.length == 1 + ? context.go("/rooms/${ids.first}") + : context.go("/rooms?spaceId=${widget.controller.room.id}"); Navigator.of(context).pop(); } catch (e, s) { _launchError = L10n.of(context).errorLaunchActivityMessage;