import 'package:gecko/ui/myWallets/generateWalletsScreen.dart'; import 'package:gecko/ui/myWallets/myWalletsList.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:dubp/dubp.dart'; import 'dart:io'; import 'dart:async'; import 'package:path_provider/path_provider.dart'; class WalletsHome extends StatefulWidget { const WalletsHome({Key keyGenWallet}) : super(key: keyGenWallet); @override WalletsHomeState createState() => WalletsHomeState(); } class WalletsHomeState extends State { GlobalKey _keyWalletsHome = GlobalKey(); // GlobalKey _keyMyWallets = GlobalKey(); // GlobalKey _keyValidWallets = GlobalKey(); void initState() { super.initState(); DubpRust.setup(); getAppDirectory(); // _keyWalletsHome.currentState.getAllWalletsNames(); // _keyMyWallets.currentState.getAllWalletsNames(); } String generatedMnemonic; bool walletIsGenerated = false; NewWallet actualWallet; bool hasError = false; String validPin = 'NO PIN'; String currentText = ""; var pinColor = Colors.grey[300]; Directory appPath; @override Widget build(BuildContext context) { // getAppDirectory(); return Scaffold( floatingActionButton: Visibility( visible: (checkIfWalletExist( 'MonWallet')), //!checkIfWalletExist('MonWallet') && child: Container( height: 80.0, width: 80.0, child: FittedBox( child: FloatingActionButton( heroTag: "buttonGenerateWallet", onPressed: () { Navigator.push( context, MaterialPageRoute(builder: (context) { return GenerateWalletsScreen(); }), ); }, child: Container( height: 40.0, width: 40.0, child: Icon(Icons.person_add_alt_1_rounded)), backgroundColor: Color(0xffEFEFBF))))), body: SafeArea( child: Column(children: [ Visibility( visible: (!checkIfWalletExist('MonWallet') && !walletIsGenerated), child: Column(children: [ SizedBox(height: 120), Center( child: Text("Vous n'avez encore généré aucun portefeuille.", style: TextStyle( fontSize: 20, fontWeight: FontWeight.w500), textAlign: TextAlign.center)), SizedBox(height: 80), ElevatedButton( style: ElevatedButton.styleFrom( primary: Color(0xffFFD68E), // background onPrimary: Colors.black, // foreground ), onPressed: () => Navigator.push( context, MaterialPageRoute(builder: (context) { return GenerateWalletsScreen(); }), ), child: Text('Générer un portefeuille', style: TextStyle(fontSize: 20))), SizedBox(height: 15), Center( child: Text("ou", style: TextStyle( fontSize: 20, fontWeight: FontWeight.w500), textAlign: TextAlign.center)), SizedBox(height: 15), ElevatedButton( style: ElevatedButton.styleFrom( primary: Color(0xffFFD68E), // background onPrimary: Colors.black, // foreground ), onPressed: () => importWallet(), child: Text('Importer un portefeuille existant', style: TextStyle(fontSize: 20))), ])), Visibility( visible: checkIfWalletExist('MonWallet'), child: MyWalletsScreen(keyMyWallets: _keyWalletsHome)) ]))); } // Future resetWalletState() async { // final bool _isExist = await checkIfWalletExist('MonWallet'); // print('The wallet exist in resetWalletState(): ' + _isExist.toString()); // // initState(); // // _keyMyWallets.currentState.setState(() {}); // // _keyMyWallets.currentState.initAppDirectory(); // setState(() { // // getAllWalletsNames(); // // this.walletIsGenerated = true; // }); // } bool checkIfWalletExist(_name) { if (this.appPath == null) { return false; } final bool isExist = File('${this.appPath.path}/wallets/$_name/wallet.dewif').existsSync(); print(this.appPath.path); print('Wallet existe ? : ' + isExist.toString()); print('Is wallet generated ? : ' + walletIsGenerated.toString()); if (isExist) { print('Un wallet existe !'); return true; } else { return false; } } Future getAppDirectory() async { this.appPath = await getApplicationDocumentsDirectory(); setState(() {}); } Future importWallet() async {} }