// ignore_for_file: file_names import 'package:flutter/services.dart'; import 'package:flutter/material.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/providers/generate_wallets.dart'; import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/screens/common_elements.dart'; import 'package:gecko/screens/onBoarding/6.dart'; import 'package:printing/printing.dart'; import 'package:provider/provider.dart'; AsyncSnapshot? mnemoList; class OnboardingStepFive extends StatelessWidget { const OnboardingStepFive({Key? key}) : super(key: key); @override Widget build(BuildContext context) { SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); GenerateWalletsProvider _generateWalletProvider = Provider.of(context, listen: false); CommonElements common = CommonElements(); return Scaffold( appBar: AppBar( toolbarHeight: 60 * ratio, title: const SizedBox( height: 22, child: Text( 'Votre phrase de restauration', style: TextStyle(fontWeight: FontWeight.w600), ), ), ), extendBodyBehindAppBar: true, body: SafeArea( child: Column(children: [ SizedBox(height: isTall ? 40 : 20), common.buildProgressBar(4), SizedBox(height: isTall ? 40 : 20), common.buildText( [ const TextSpan( text: 'Gecko a généré votre phrase de restauration ! Tâchez de la garder bien secrète, car elle permet à quiconque la connaît d’accéder à tous vos portefeuilles.'), ], ), const SizedBox(height: 40), sentanceArray(context), const SizedBox(height: 20), GestureDetector( onTap: () { Navigator.push( context, MaterialPageRoute(builder: (context) { return PrintWallet(_generateWalletProvider.generatedMnemonic); }), ); }, child: Image.asset( 'assets/printer.png', height: 45, ), ), const SizedBox(height: 40), Expanded( child: Align( alignment: Alignment.bottomCenter, child: SizedBox( width: 410, height: 70, child: ElevatedButton( key: const Key('generateMnemonic'), style: ElevatedButton.styleFrom( elevation: 4, primary: const Color(0xffFFD58D), onPrimary: Colors.black, // foreground ), onPressed: () { _generateWalletProvider.reloadBuild(); // setState(() {}); }, child: const Text("Choisir une autre phrase", style: TextStyle( fontSize: 24, fontWeight: FontWeight.w600))), ), ), ), const SizedBox(height: 25), nextButton(context, "J'ai noté ma phrase", false), const SizedBox(height: 40), ]), ), ); } } Widget sentanceArray(BuildContext context) { GenerateWalletsProvider _generateWalletProvider = Provider.of(context); return Padding( padding: const EdgeInsets.symmetric(horizontal: 3), child: Container( constraints: const BoxConstraints(maxWidth: 450), decoration: BoxDecoration( border: Border.all(color: Colors.black), color: const Color(0xffeeeedd), borderRadius: const BorderRadius.all( Radius.circular(10), )), padding: const EdgeInsets.all(20), child: FutureBuilder( future: _generateWalletProvider.generateWordList(context), builder: (BuildContext context, AsyncSnapshot _data) { if (!_data.hasData) { return const Text(''); } else { mnemoList = _data; return Column( mainAxisAlignment: MainAxisAlignment.center, mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.center, children: [ Row(children: [ arrayCell(_data.data![0]), arrayCell(_data.data![1]), arrayCell(_data.data![2]), arrayCell(_data.data![3]), ]), const SizedBox(height: 15), Row(children: [ arrayCell(_data.data![4]), arrayCell(_data.data![5]), arrayCell(_data.data![6]), arrayCell(_data.data![7]), ]), const SizedBox(height: 15), Row(children: [ arrayCell(_data.data![8]), arrayCell(_data.data![9]), arrayCell(_data.data![10]), arrayCell(_data.data![11]), ]), ]); } }), ), ); } Widget arrayCell(dataWord) { return SizedBox( width: 100, child: Column(children: [ Text( dataWord.split(':')[0], style: const TextStyle(fontSize: 15, color: Color(0xff6b6b52)), ), Text( dataWord.split(':')[1], key: Key('word${dataWord.split(':')[0]}'), style: const TextStyle(fontSize: 20, color: Colors.black), ), ]), ); } // ignore: must_be_immutable class PrintWallet extends StatelessWidget { const PrintWallet(this.sentence, {Key? key}) : super(key: key); final String? sentence; @override Widget build(BuildContext context) { GenerateWalletsProvider _generateWalletProvider = Provider.of(context); return MaterialApp( home: Scaffold( appBar: AppBar( leading: IconButton( icon: const Icon(Icons.arrow_back, color: Colors.black), onPressed: () { Navigator.pop(context); }), backgroundColor: yellowC, foregroundColor: Colors.black, toolbarHeight: 60 * ratio, title: const SizedBox( height: 22, child: Text( 'Imprimer ma phrase de restauration', style: TextStyle(fontWeight: FontWeight.w600), ), ), ), body: PdfPreview( canDebug: false, canChangeOrientation: false, build: (format) => _generateWalletProvider.printWallet(mnemoList), ), ), ); } } Widget nextButton(BuildContext context, String text, bool isFast) { GenerateWalletsProvider _generateWalletProvider = Provider.of(context, listen: false); MyWalletsProvider _myWalletProvider = Provider.of(context, listen: false); return SizedBox( width: 410, height: 70, child: ElevatedButton( style: ElevatedButton.styleFrom( elevation: 4, primary: orangeC, // background onPrimary: Colors.white, // foreground ), onPressed: () { _generateWalletProvider.nbrWord = _generateWalletProvider.getRandomInt(); _generateWalletProvider.nbrWordAlpha = _generateWalletProvider .intToString(_generateWalletProvider.nbrWord + 1); _myWalletProvider.mnemonic = _generateWalletProvider.generatedMnemonic!; Navigator.push( context, FaderTransition( page: OnboardingStepSix( generatedMnemonic: _generateWalletProvider.generatedMnemonic), isFast: true), ); }, child: Text( text, style: const TextStyle(fontSize: 24, fontWeight: FontWeight.w600), ), ), ); }