From 18d3ae6955fa0e66a69566fd380898a050955939 Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Sat, 24 Apr 2021 08:51:56 +0200 Subject: [PATCH] Add new panes to tour --- lib/forez/tour/forez_tour_builder.dart | 36 +++++++++++++++++++-- lib/forez/tour/join_group_pane.dart | 4 +-- lib/ui/routes/push_notifications_route.dart | 5 ++- lib/ui/widgets/init_widget.dart | 12 +++---- 4 files changed, 45 insertions(+), 12 deletions(-) diff --git a/lib/forez/tour/forez_tour_builder.dart b/lib/forez/tour/forez_tour_builder.dart index 4ae9342..e1289fd 100644 --- a/lib/forez/tour/forez_tour_builder.dart +++ b/lib/forez/tour/forez_tour_builder.dart @@ -1,7 +1,12 @@ +import 'package:comunic/forez/helpers/forez_group_helper.dart'; import 'package:comunic/forez/tour/join_group_pane.dart'; +import 'package:comunic/ui/routes/forez_presence_settings_route.dart'; import 'package:comunic/ui/routes/tour_route.dart'; +import 'package:comunic/ui/widgets/tour/account_image_tour_pane.dart'; import 'package:comunic/ui/widgets/tour/first_pane.dart'; import 'package:comunic/ui/widgets/tour/last_pane.dart'; +import 'package:comunic/ui/widgets/tour/presentation_pane.dart'; +import 'package:comunic/ui/widgets/tour/tour_notifications_pane.dart'; import 'package:comunic/utils/intl_utils.dart'; import 'package:flutter/material.dart'; @@ -21,13 +26,38 @@ List buildTour(TourRouteState state) { FirstTourPane( msgOne: tr( "Welcome to #Forez, the central application dedicated to events planning in the Forez plain!"), - msgTwo: tr( - "Let's configure the application and present you some essential features!"), + msgTwo: tr("Let's first join a Forez group!"), ), - JoinGroupPane( + JoinForezGroupPane( key: state.pubKeys[_JOIN_GROUP_KEY_ID], onUpdated: () => state.rebuild(), ), + FirstTourPane( + msgOne: tr("Great, you are now a member of a Forez group!"), + msgTwo: tr( + "Before we continue, you must be aware that #Forez is now based on Comunic, so you are using Comunic in fact..."), + ), + AccountImageTourPane( + user: state.currUser, + onUpdated: (ctx) => state.setStateKeepCurrentIndex(ctx), + ), + TourNotificationsPane( + pushNotificationsKey: state.pushNotificationsKey, + onConfigured: state.rebuild, + onChanged: state.rebuild, + ), + + // Forez specific features + PresentationPane( + icon: Icons.calendar_today, + title: tr("Forez in presence"), + text: tr( + "Easily specify the days you are in Forez plain, so that everyone can know it!"), + actionTitle: tr("Do it now!"), + onActionTap: (context) async => + showPresenceSettingsRoute(context, await ForezGroupHelper.getId()), + ), + LastTourPane(), ]; } diff --git a/lib/forez/tour/join_group_pane.dart b/lib/forez/tour/join_group_pane.dart index 2c3e890..47db1c2 100644 --- a/lib/forez/tour/join_group_pane.dart +++ b/lib/forez/tour/join_group_pane.dart @@ -14,8 +14,8 @@ import 'package:flutter/material.dart'; /// /// @author Pierre Hubert -class JoinGroupPane extends PresentationPane { - JoinGroupPane({ +class JoinForezGroupPane extends PresentationPane { + JoinForezGroupPane({ @required Function() onUpdated, @required GlobalKey key, }) : super( diff --git a/lib/ui/routes/push_notifications_route.dart b/lib/ui/routes/push_notifications_route.dart index 82a5da2..d412eb5 100644 --- a/lib/ui/routes/push_notifications_route.dart +++ b/lib/ui/routes/push_notifications_route.dart @@ -114,7 +114,10 @@ class PushNotificationsConfigurationWidgetState child: Column( children: [ Text( - tr("Comunic can send you push notifications to your device."), + tr("%app% can send you push notifications to your device.", + args: { + "app": config().appName, + }), textAlign: TextAlign.center, ), SizedBox(height: 10), diff --git a/lib/ui/widgets/init_widget.dart b/lib/ui/widgets/init_widget.dart index 1f320b2..1177658 100644 --- a/lib/ui/widgets/init_widget.dart +++ b/lib/ui/widgets/init_widget.dart @@ -78,18 +78,18 @@ class _InitializeWidgetState extends SafeState { return; } - final prefs = await PreferencesHelper.getInstance(); - if (!prefs.getBool(PreferencesKeyList.IS_TOUR_SEEN)) - await showTour(context); - - print("Attempting WebSocket connection..."); - setState(() { _error = false; }); await WebSocketHelper.connect(); + final prefs = await PreferencesHelper.getInstance(); + if (!prefs.getBool(PreferencesKeyList.IS_TOUR_SEEN)) + await showTour(context); + + print("Attempting WebSocket connection..."); + setState(() {}); } catch (e, stack) { print("Could not connect to server! $e");