Skip to content
Snippets Groups Projects
Commit 2b11a9af authored by vjrj's avatar vjrj
Browse files

Tutorials only on request

parent 054bae3d
No related branches found
No related tags found
No related merge requests found
...@@ -6,7 +6,6 @@ import 'package:share_plus/share_plus.dart'; ...@@ -6,7 +6,6 @@ import 'package:share_plus/share_plus.dart';
import '../../data/models/app_cubit.dart'; import '../../data/models/app_cubit.dart';
import '../../data/models/app_state.dart'; import '../../data/models/app_state.dart';
import '../../data/models/bottom_nav_cubit.dart';
import '../../data/models/theme_cubit.dart'; import '../../data/models/theme_cubit.dart';
import '../../shared_prefs.dart'; import '../../shared_prefs.dart';
import '../tutorial.dart'; import '../tutorial.dart';
...@@ -37,9 +36,6 @@ class _FifthScreenState extends State<FifthScreen> { ...@@ -37,9 +36,6 @@ class _FifthScreenState extends State<FifthScreen> {
@override @override
void initState() { void initState() {
tutorial = FifthTutorial(context); tutorial = FifthTutorial(context);
if (context.read<BottomNavCubit>().state == 4) {
Future<void>.delayed(Duration.zero, () => tutorial.showTutorial());
}
super.initState(); super.initState();
} }
...@@ -63,6 +59,12 @@ class _FifthScreenState extends State<FifthScreen> { ...@@ -63,6 +59,12 @@ class _FifthScreenState extends State<FifthScreen> {
: ThemeMode.dark)); : ThemeMode.dark));
}, },
), ),
IconButton(
icon: const Icon(Icons.info_outline),
onPressed: () {
tutorial.showTutorial(showAlways: true);
},
),
const SizedBox(width: 10), const SizedBox(width: 10),
], ],
), ),
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../data/models/bottom_nav_cubit.dart';
import '../tutorial.dart';
import '../widgets/fourth_screen/fourth_tutorial.dart';
import '../widgets/fourth_screen/transaction_page.dart'; import '../widgets/fourth_screen/transaction_page.dart';
class FourthScreen extends StatefulWidget { class FourthScreen extends StatefulWidget {
...@@ -14,17 +10,6 @@ class FourthScreen extends StatefulWidget { ...@@ -14,17 +10,6 @@ class FourthScreen extends StatefulWidget {
} }
class _FourthScreenState extends State<FourthScreen> { class _FourthScreenState extends State<FourthScreen> {
late Tutorial tutorial;
@override
void initState() {
super.initState();
if (context.read<BottomNavCubit>().state == 3) {
tutorial = FourthTutorial(context);
Future<void>.delayed(Duration.zero, () => tutorial.showTutorial());
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return const TransactionsAndBalanceWidget(); return const TransactionsAndBalanceWidget();
......
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../data/models/bottom_nav_cubit.dart';
import '../tutorial.dart'; import '../tutorial.dart';
import '../widgets/card_drawer.dart'; import '../widgets/card_drawer.dart';
import '../widgets/second_screen/card_terminal.dart'; import '../widgets/second_screen/card_terminal.dart';
...@@ -21,16 +19,23 @@ class _SecondScreenState extends State<SecondScreen> { ...@@ -21,16 +19,23 @@ class _SecondScreenState extends State<SecondScreen> {
@override @override
void initState() { void initState() {
tutorial = SecondTutorial(context); tutorial = SecondTutorial(context);
if (context.read<BottomNavCubit>().state == 1) {
Future<void>.delayed(Duration.zero, () => tutorial.showTutorial());
}
super.initState(); super.initState();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar(title: Text(tr('receive_g1'))), appBar: AppBar(
title: Text(tr('receive_g1')),
actions: <Widget>[
IconButton(
icon: const Icon(Icons.info_outline),
onPressed: () {
tutorial.showTutorial(showAlways: true);
},
),
],
),
drawer: const CardDrawer(), drawer: const CardDrawer(),
body: body:
const Column(children: <Widget>[SizedBox(height: 2), CardTerminal()]), const Column(children: <Widget>[SizedBox(height: 2), CardTerminal()]),
......
...@@ -2,7 +2,6 @@ import 'package:easy_localization/easy_localization.dart'; ...@@ -2,7 +2,6 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import '../../data/models/bottom_nav_cubit.dart';
import '../../data/models/contact.dart'; import '../../data/models/contact.dart';
import '../../data/models/contact_cubit.dart'; import '../../data/models/contact_cubit.dart';
import '../../g1/g1_helper.dart'; import '../../g1/g1_helper.dart';
...@@ -29,9 +28,6 @@ class _ThirdScreenState extends State<ThirdScreen> { ...@@ -29,9 +28,6 @@ class _ThirdScreenState extends State<ThirdScreen> {
@override @override
void initState() { void initState() {
tutorial = ThirdTutorial(context); tutorial = ThirdTutorial(context);
if (context.read<BottomNavCubit>().state == 2) {
Future<void>.delayed(Duration.zero, () => tutorial.showTutorial());
}
super.initState(); super.initState();
} }
...@@ -56,7 +52,7 @@ class _ThirdScreenState extends State<ThirdScreen> { ...@@ -56,7 +52,7 @@ class _ThirdScreenState extends State<ThirdScreen> {
final String? pubKey = await QrManager.qrScan(context); final String? pubKey = await QrManager.qrScan(context);
if (pubKey != null && validateKey(pubKey)) { if (pubKey != null && validateKey(pubKey)) {
final Contact contact = final Contact contact =
await ContactsCache().getContact(pubKey); await ContactsCache().getContact(pubKey);
if (!mounted) { if (!mounted) {
return; return;
} }
...@@ -85,6 +81,12 @@ class _ThirdScreenState extends State<ThirdScreen> { ...@@ -85,6 +81,12 @@ class _ThirdScreenState extends State<ThirdScreen> {
); );
} }
}), }),
IconButton(
icon: const Icon(Icons.info_outline),
onPressed: () {
tutorial.showTutorial(showAlways: true);
},
),
const SizedBox(width: 5), const SizedBox(width: 5),
]), ]),
drawer: const CardDrawer(), drawer: const CardDrawer(),
......
...@@ -34,11 +34,10 @@ abstract class Tutorial { ...@@ -34,11 +34,10 @@ abstract class Tutorial {
late TutorialCoachMark _tutorial; late TutorialCoachMark _tutorial;
final BuildContext context; final BuildContext context;
final String tutorialId; final String tutorialId;
bool showAlways = false;
List<TargetFocus> createTargets(); List<TargetFocus> createTargets();
void showTutorial() { void showTutorial({bool showAlways = false}) {
if ((inDevelopment && showAlways) || if ((inDevelopment && showAlways) ||
!context.read<AppCubit>().wasTutorialShown(tutorialId)) { !context.read<AppCubit>().wasTutorialShown(tutorialId)) {
_tutorial.show(context: context); _tutorial.show(context: context);
......
...@@ -7,14 +7,21 @@ import '../../tutorial_keys.dart'; ...@@ -7,14 +7,21 @@ import '../../tutorial_keys.dart';
import '../../tutorial_target.dart'; import '../../tutorial_target.dart';
class FirstTutorial extends Tutorial { class FirstTutorial extends Tutorial {
FirstTutorial(BuildContext context) FirstTutorial(BuildContext context, this.onPress)
: super(tutorialId: 'first_screen', context: context); : super(tutorialId: 'first_screen', context: context);
final bool onPress;
@override @override
List<TargetFocus> createTargets() { List<TargetFocus> createTargets() {
final List<TargetFocus> targets = <TargetFocus>[]; final List<TargetFocus> targets = <TargetFocus>[];
targets.add(TutorialTarget( targets.add(TutorialTarget(
identify: !kIsWeb ? 'creditCardKey' : 'creditCardKey_web', identify: onPress
? !kIsWeb
? 'creditCardKey_button'
: 'creditCardKey_button_web'
: !kIsWeb
? 'creditCardKey'
: 'creditCardKey_web',
keyTarget: creditCardKey, keyTarget: creditCardKey,
shape: ShapeLightFocus.RRect, shape: ShapeLightFocus.RRect,
)); ));
......
...@@ -19,8 +19,10 @@ import '../../../data/models/transactions_bloc.dart'; ...@@ -19,8 +19,10 @@ import '../../../data/models/transactions_bloc.dart';
import '../../../g1/currency.dart'; import '../../../g1/currency.dart';
import '../../../shared_prefs.dart'; import '../../../shared_prefs.dart';
import '../../logger.dart'; import '../../logger.dart';
import '../../tutorial.dart';
import '../../tutorial_keys.dart'; import '../../tutorial_keys.dart';
import '../../ui_helpers.dart'; import '../../ui_helpers.dart';
import 'fourth_tutorial.dart';
import 'transaction_item.dart'; import 'transaction_item.dart';
class TransactionsAndBalanceWidget extends StatefulWidget { class TransactionsAndBalanceWidget extends StatefulWidget {
...@@ -50,6 +52,7 @@ class _TransactionsAndBalanceWidgetState ...@@ -50,6 +52,7 @@ class _TransactionsAndBalanceWidgetState
final int _pendingPageSize = 30; final int _pendingPageSize = 30;
final Cron cron = Cron(); final Cron cron = Cron();
static const double balanceFontSize = 36.0; static const double balanceFontSize = 36.0;
late Tutorial tutorial;
@override @override
void initState() { void initState() {
...@@ -106,6 +109,7 @@ class _TransactionsAndBalanceWidgetState ...@@ -106,6 +109,7 @@ class _TransactionsAndBalanceWidgetState
logger('---------- fetchTransactions via cron'); logger('---------- fetchTransactions via cron');
_refresh(); _refresh();
}); });
tutorial = FourthTutorial(context);
super.initState(); super.initState();
} }
...@@ -183,6 +187,12 @@ class _TransactionsAndBalanceWidgetState ...@@ -183,6 +187,12 @@ class _TransactionsAndBalanceWidgetState
Backdrop.of(lContext).concealBackLayer(); Backdrop.of(lContext).concealBackLayer();
} }
})), })),
IconButton(
icon: const Icon(Icons.info_outline),
onPressed: () {
tutorial.showTutorial(showAlways: true);
},
),
const SizedBox(width: 10), const SizedBox(width: 10),
], ],
), ),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment