start to rebuild in provider way
This commit is contained in:
parent
63dfee0ebf
commit
df772db864
|
@ -1,7 +1,11 @@
|
||||||
|
import 'package:dubp/dubp.dart';
|
||||||
|
import 'package:gecko/models/history.dart';
|
||||||
|
import 'package:gecko/models/myWallets.dart';
|
||||||
import 'package:gecko/ui/home.dart';
|
import 'package:gecko/ui/home.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:graphql_flutter/graphql_flutter.dart';
|
import 'package:graphql_flutter/graphql_flutter.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
|
@ -90,23 +94,41 @@ class Gecko extends StatelessWidget {
|
||||||
link: _httpLink,
|
link: _httpLink,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
return MaterialApp(
|
|
||||||
title: 'Ğecko',
|
DubpRust.setup();
|
||||||
theme: ThemeData(
|
return MultiProvider(
|
||||||
primaryColor: Color(0xffFFD58D),
|
providers: [
|
||||||
accentColor: Colors.grey[850],
|
// In this sample app, CatalogModel never changes, so a simple Provider
|
||||||
textTheme: TextTheme(
|
// is sufficient.
|
||||||
bodyText1: TextStyle(),
|
Provider(create: (context) => HistoryProvider()),
|
||||||
bodyText2: TextStyle(),
|
// CartModel is implemented as a ChangeNotifier, which calls for the use
|
||||||
).apply(
|
// of ChangeNotifierProvider. Moreover, CartModel depends
|
||||||
bodyColor: Color(0xff855F2D),
|
// on CatalogModel, so a ProxyProvider is needed.
|
||||||
// displayColor: Colors.blue,
|
ChangeNotifierProxyProvider<HistoryProvider, MyWalletsProvider>(
|
||||||
),
|
create: (context) => MyWalletsProvider(),
|
||||||
),
|
update: (context, history, myWallets) {
|
||||||
home: GraphQLProvider(
|
cart.catalog = catalog;
|
||||||
client: _client,
|
return cart;
|
||||||
child: HomeScreen(),
|
},
|
||||||
),
|
),
|
||||||
);
|
],
|
||||||
|
child: MaterialApp(
|
||||||
|
title: 'Ğecko',
|
||||||
|
theme: ThemeData(
|
||||||
|
primaryColor: Color(0xffFFD58D),
|
||||||
|
accentColor: Colors.grey[850],
|
||||||
|
textTheme: TextTheme(
|
||||||
|
bodyText1: TextStyle(),
|
||||||
|
bodyText2: TextStyle(),
|
||||||
|
).apply(
|
||||||
|
bodyColor: Color(0xff855F2D),
|
||||||
|
// displayColor: Colors.blue,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
home: GraphQLProvider(
|
||||||
|
client: _client,
|
||||||
|
child: HomeScreen(),
|
||||||
|
),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
|
import 'package:sentry/sentry.dart' as sentry;
|
||||||
|
import 'package:qrscan/qrscan.dart' as scanner;
|
||||||
|
|
||||||
|
class HistoryProvider with ChangeNotifier {
|
||||||
|
final TextEditingController _outputPubkey = new TextEditingController();
|
||||||
|
String pubkey = '';
|
||||||
|
|
||||||
|
ScrollController scrollController = new ScrollController();
|
||||||
|
|
||||||
|
Future scan() async {
|
||||||
|
await Permission.camera.request();
|
||||||
|
String barcode;
|
||||||
|
try {
|
||||||
|
barcode = await scanner.scan();
|
||||||
|
} catch (e, stack) {
|
||||||
|
print(e);
|
||||||
|
if (kReleaseMode) {
|
||||||
|
await sentry.Sentry.captureException(
|
||||||
|
e,
|
||||||
|
stackTrace: stack,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return 'false';
|
||||||
|
}
|
||||||
|
// this._outputPubkey.text = "";
|
||||||
|
if (barcode != null) {
|
||||||
|
this._outputPubkey.text = barcode;
|
||||||
|
isPubkey(barcode);
|
||||||
|
} else {
|
||||||
|
return 'false';
|
||||||
|
}
|
||||||
|
return barcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
String isPubkey(pubkey) {
|
||||||
|
final RegExp regExp = new RegExp(
|
||||||
|
r'^[a-zA-Z0-9]+$',
|
||||||
|
caseSensitive: false,
|
||||||
|
multiLine: false,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (regExp.hasMatch(pubkey) == true &&
|
||||||
|
pubkey.length > 42 &&
|
||||||
|
pubkey.length < 45) {
|
||||||
|
print("C'est une pubkey !!!");
|
||||||
|
|
||||||
|
this.pubkey = pubkey;
|
||||||
|
this._outputPubkey.text = pubkey;
|
||||||
|
notifyListeners();
|
||||||
|
|
||||||
|
return pubkey;
|
||||||
|
}
|
||||||
|
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
import 'dart:io';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'dart:async';
|
||||||
|
import 'package:path_provider/path_provider.dart';
|
||||||
|
|
||||||
|
class MyWalletsProvider with ChangeNotifier {
|
||||||
|
Directory appPath;
|
||||||
|
|
||||||
|
bool checkIfWalletExist() {
|
||||||
|
if (this.appPath == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var walletsFolder = new Directory("${this.appPath.path}/wallets/");
|
||||||
|
|
||||||
|
bool isWalletFolderExist = walletsFolder.existsSync();
|
||||||
|
|
||||||
|
if (!isWalletFolderExist) {
|
||||||
|
Directory(walletsFolder.path).createSync();
|
||||||
|
}
|
||||||
|
|
||||||
|
List contents = walletsFolder.listSync();
|
||||||
|
if (contents.length == 0) {
|
||||||
|
print('No wallets detected');
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
print('Some wallets have been detected:');
|
||||||
|
for (var _wallets in contents) {
|
||||||
|
print(_wallets);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// final bool isExist =
|
||||||
|
// File('${walletsFolder.path}/$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();
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future importWallet() async {}
|
||||||
|
}
|
|
@ -1,25 +1,15 @@
|
||||||
import 'package:gecko/parsingGVA.dart';
|
import 'package:gecko/parsingGVA.dart';
|
||||||
import 'package:gecko/query.dart';
|
import 'package:gecko/query.dart';
|
||||||
|
import 'package:gecko/models/history.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:qrscan/qrscan.dart' as scanner;
|
|
||||||
import 'dart:async';
|
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
import 'package:graphql_flutter/graphql_flutter.dart';
|
import 'package:graphql_flutter/graphql_flutter.dart';
|
||||||
import 'package:permission_handler/permission_handler.dart';
|
|
||||||
import 'package:sentry/sentry.dart' as sentry;
|
|
||||||
import 'package:truncate/truncate.dart';
|
import 'package:truncate/truncate.dart';
|
||||||
|
|
||||||
//ignore: must_be_immutable
|
//ignore: must_be_immutable
|
||||||
class HistoryScreen extends StatefulWidget {
|
class HistoryScreen extends StatelessWidget with ChangeNotifier {
|
||||||
const HistoryScreen({Key keyHistory}) : super(key: keyHistory);
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<StatefulWidget> createState() => HistoryScreenState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class HistoryScreenState extends State<HistoryScreen> {
|
|
||||||
Widget currentScreen;
|
Widget currentScreen;
|
||||||
|
|
||||||
Uint8List bytes = Uint8List(0);
|
Uint8List bytes = Uint8List(0);
|
||||||
|
@ -29,40 +19,25 @@ class HistoryScreenState extends State<HistoryScreen> {
|
||||||
// String pubkey = 'D2meevcAHFTS2gQMvmRW5Hzi25jDdikk4nC4u1FkwRaU'; // For debug
|
// String pubkey = 'D2meevcAHFTS2gQMvmRW5Hzi25jDdikk4nC4u1FkwRaU'; // For debug
|
||||||
String pubkey = '';
|
String pubkey = '';
|
||||||
bool isBuilding = true;
|
bool isBuilding = true;
|
||||||
ScrollController _scrollController = new ScrollController();
|
|
||||||
|
|
||||||
_scrollListener() {
|
HistoryProvider historyProvider = HistoryProvider();
|
||||||
if (_scrollController.offset >=
|
|
||||||
_scrollController.position.maxScrollExtent &&
|
scrollListener() {
|
||||||
!_scrollController.position.outOfRange) {
|
if (historyProvider.scrollController.offset >=
|
||||||
setState(() {
|
historyProvider.scrollController.position.maxScrollExtent &&
|
||||||
print("reach the bottom");
|
!historyProvider.scrollController.position.outOfRange) {
|
||||||
});
|
notifyListeners();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_scrollController = ScrollController();
|
|
||||||
_scrollController.addListener(_scrollListener);
|
|
||||||
|
|
||||||
// _scrollController
|
|
||||||
// ..addListener(() {
|
|
||||||
// if (_scrollController.position.pixels ==
|
|
||||||
// _scrollController.position.maxScrollExtent) {
|
|
||||||
// // print(
|
|
||||||
// // "DEBUG H fetchMoreCursor in scrollController: $fetchMoreCursor");
|
|
||||||
// fetchMore(opts);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
print('Build pubkey : ' + pubkey);
|
print('Build pubkey : ' + pubkey);
|
||||||
print('Build this.pubkey : ' + this.pubkey);
|
print('Build this.pubkey : ' + this.pubkey);
|
||||||
print('isBuilding: ' + isBuilding.toString());
|
print('isBuilding: ' + isBuilding.toString());
|
||||||
|
historyProvider.scrollController.addListener(scrollListener);
|
||||||
|
historyProvider.scrollController = ScrollController();
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
floatingActionButton: Container(
|
floatingActionButton: Container(
|
||||||
height: 80.0,
|
height: 80.0,
|
||||||
|
@ -71,7 +46,7 @@ class HistoryScreenState extends State<HistoryScreen> {
|
||||||
child: FloatingActionButton(
|
child: FloatingActionButton(
|
||||||
heroTag: "buttonScan",
|
heroTag: "buttonScan",
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await scan();
|
await historyProvider.scan();
|
||||||
// print(resultScan);
|
// print(resultScan);
|
||||||
// if (resultScan != 'false') {
|
// if (resultScan != 'false') {
|
||||||
// onTabTapped(0);
|
// onTabTapped(0);
|
||||||
|
@ -93,7 +68,7 @@ class HistoryScreenState extends State<HistoryScreen> {
|
||||||
onChanged: (text) {
|
onChanged: (text) {
|
||||||
print("Clé tappxé: $text");
|
print("Clé tappxé: $text");
|
||||||
this.pubkey = text;
|
this.pubkey = text;
|
||||||
isPubkey(text);
|
historyProvider.isPubkey(text);
|
||||||
},
|
},
|
||||||
controller: this._outputPubkey,
|
controller: this._outputPubkey,
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
|
@ -211,7 +186,7 @@ class HistoryScreenState extends State<HistoryScreen> {
|
||||||
// Build history list
|
// Build history list
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: ListView(
|
child: ListView(
|
||||||
controller: _scrollController,
|
controller: historyProvider.scrollController,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
SizedBox(height: 7),
|
SizedBox(height: 7),
|
||||||
if (this.pubkey != '')
|
if (this.pubkey != '')
|
||||||
|
@ -235,7 +210,7 @@ class HistoryScreenState extends State<HistoryScreen> {
|
||||||
Text(repository[5], style: TextStyle(fontSize: 14.0)),
|
Text(repository[5], style: TextStyle(fontSize: 14.0)),
|
||||||
dense: true,
|
dense: true,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
isPubkey(repository[2]);
|
historyProvider.isPubkey(repository[2]);
|
||||||
}),
|
}),
|
||||||
if (result.isLoading)
|
if (result.isLoading)
|
||||||
Row(
|
Row(
|
||||||
|
@ -252,58 +227,6 @@ class HistoryScreenState extends State<HistoryScreen> {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future scan() async {
|
|
||||||
await Permission.camera.request();
|
|
||||||
String barcode;
|
|
||||||
try {
|
|
||||||
barcode = await scanner.scan();
|
|
||||||
} catch (e, stack) {
|
|
||||||
print(e);
|
|
||||||
if (kReleaseMode) {
|
|
||||||
await sentry.Sentry.captureException(
|
|
||||||
e,
|
|
||||||
stackTrace: stack,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return 'false';
|
|
||||||
}
|
|
||||||
// this._outputPubkey.text = "";
|
|
||||||
if (barcode != null) {
|
|
||||||
this._outputPubkey.text = barcode;
|
|
||||||
isPubkey(barcode);
|
|
||||||
} else {
|
|
||||||
return 'false';
|
|
||||||
}
|
|
||||||
return barcode;
|
|
||||||
}
|
|
||||||
|
|
||||||
String isPubkey(pubkey) {
|
|
||||||
final RegExp regExp = new RegExp(
|
|
||||||
r'^[a-zA-Z0-9]+$',
|
|
||||||
caseSensitive: false,
|
|
||||||
multiLine: false,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (regExp.hasMatch(pubkey) == true &&
|
|
||||||
pubkey.length > 42 &&
|
|
||||||
pubkey.length < 45) {
|
|
||||||
print("C'est une pubkey !!!");
|
|
||||||
|
|
||||||
setState(() {
|
|
||||||
this.pubkey = pubkey;
|
|
||||||
this._outputPubkey.text = pubkey;
|
|
||||||
});
|
|
||||||
|
|
||||||
// setState(() {
|
|
||||||
// this._outputBalance.text = balance.toString();
|
|
||||||
// });
|
|
||||||
|
|
||||||
return pubkey;
|
|
||||||
}
|
|
||||||
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
num removeDecimalZero(double n) {
|
num removeDecimalZero(double n) {
|
||||||
String result = n.toStringAsFixed(n.truncateToDouble() == n ? 0 : 1);
|
String result = n.toStringAsFixed(n.truncateToDouble() == n ? 0 : 1);
|
||||||
return num.parse(result);
|
return num.parse(result);
|
||||||
|
|
|
@ -15,8 +15,6 @@ class HomeScreen extends StatefulWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class HomeScreenState extends State<HomeScreen> {
|
class HomeScreenState extends State<HomeScreen> {
|
||||||
GlobalKey<HistoryScreenState> _keyHistory = GlobalKey();
|
|
||||||
|
|
||||||
int currentIndex = 0;
|
int currentIndex = 0;
|
||||||
Widget currentScreen;
|
Widget currentScreen;
|
||||||
String appName;
|
String appName;
|
||||||
|
@ -101,9 +99,7 @@ class HomeScreenState extends State<HomeScreen> {
|
||||||
child: IndexedStack(
|
child: IndexedStack(
|
||||||
index: currentIndex,
|
index: currentIndex,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
HistoryScreen(
|
HistoryScreen(),
|
||||||
keyHistory: _keyHistory,
|
|
||||||
),
|
|
||||||
WalletsHome(),
|
WalletsHome(),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -26,7 +26,6 @@ class ChangePinScreenState extends State<ChangePinScreen> {
|
||||||
|
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
DubpRust.setup();
|
|
||||||
changePin(widget.walletName, widget.oldPin);
|
changePin(widget.walletName, widget.oldPin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@ class GenerateWalletsState extends State<GenerateWalletsScreen> {
|
||||||
// GlobalKey<ValidStoreWalletState> _keyValidWallets = GlobalKey();
|
// GlobalKey<ValidStoreWalletState> _keyValidWallets = GlobalKey();
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
DubpRust.setup();
|
|
||||||
generateMnemonic();
|
generateMnemonic();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,6 @@ class WalletOptionsState extends State<WalletOptions> {
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
errorController = StreamController<ErrorAnimationType>();
|
errorController = StreamController<ErrorAnimationType>();
|
||||||
DubpRust.setup();
|
|
||||||
isWalletUnlock = false;
|
isWalletUnlock = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,12 @@
|
||||||
|
import 'package:gecko/models/myWallets.dart';
|
||||||
import 'package:gecko/ui/myWallets/generateWalletsScreen.dart';
|
import 'package:gecko/ui/myWallets/generateWalletsScreen.dart';
|
||||||
import 'package:gecko/ui/myWallets/myWalletsList.dart';
|
import 'package:gecko/ui/myWallets/myWalletsList.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:dubp/dubp.dart';
|
import 'package:dubp/dubp.dart';
|
||||||
import 'dart:io';
|
|
||||||
import 'dart:async';
|
|
||||||
import 'package:path_provider/path_provider.dart';
|
|
||||||
|
|
||||||
class WalletsHome extends StatefulWidget {
|
class WalletsHome extends StatelessWidget with ChangeNotifier {
|
||||||
const WalletsHome({Key keyGenWallet}) : super(key: keyGenWallet);
|
MyWalletsProvider historyProvider = MyWalletsProvider();
|
||||||
@override
|
|
||||||
WalletsHomeState createState() => WalletsHomeState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class WalletsHomeState extends State<WalletsHome> {
|
|
||||||
GlobalKey<WalletsHomeState> _keyWalletsHome = GlobalKey();
|
|
||||||
// GlobalKey<MyWalletState> _keyMyWallets = GlobalKey();
|
|
||||||
// GlobalKey<ValidStoreWalletState> _keyValidWallets = GlobalKey();
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
DubpRust.setup();
|
|
||||||
getAppDirectory();
|
|
||||||
// _keyWalletsHome.currentState.getAllWalletsNames();
|
|
||||||
// _keyMyWallets.currentState.getAllWalletsNames();
|
|
||||||
}
|
|
||||||
|
|
||||||
String generatedMnemonic;
|
String generatedMnemonic;
|
||||||
bool walletIsGenerated = false;
|
bool walletIsGenerated = false;
|
||||||
|
@ -34,15 +17,14 @@ class WalletsHomeState extends State<WalletsHome> {
|
||||||
String validPin = 'NO PIN';
|
String validPin = 'NO PIN';
|
||||||
String currentText = "";
|
String currentText = "";
|
||||||
var pinColor = Colors.grey[300];
|
var pinColor = Colors.grey[300];
|
||||||
Directory appPath;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
// getAppDirectory();
|
historyProvider.getAppDirectory();
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
floatingActionButton: Visibility(
|
floatingActionButton: Visibility(
|
||||||
visible:
|
visible: (historyProvider
|
||||||
(checkIfWalletExist()), //!checkIfWalletExist('MonWallet') &&
|
.checkIfWalletExist()), //!checkIfWalletExist('MonWallet') &&
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 80.0,
|
height: 80.0,
|
||||||
width: 80.0,
|
width: 80.0,
|
||||||
|
@ -55,10 +37,7 @@ class WalletsHomeState extends State<WalletsHome> {
|
||||||
MaterialPageRoute(builder: (context) {
|
MaterialPageRoute(builder: (context) {
|
||||||
return GenerateWalletsScreen();
|
return GenerateWalletsScreen();
|
||||||
}),
|
}),
|
||||||
).then((value) => setState(() {
|
);
|
||||||
this.newWalletName = value;
|
|
||||||
checkIfWalletExist();
|
|
||||||
}));
|
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 40.0,
|
height: 40.0,
|
||||||
|
@ -69,7 +48,8 @@ class WalletsHomeState extends State<WalletsHome> {
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
child: Column(children: <Widget>[
|
child: Column(children: <Widget>[
|
||||||
Visibility(
|
Visibility(
|
||||||
visible: (!checkIfWalletExist() && !walletIsGenerated),
|
visible:
|
||||||
|
(!historyProvider.checkIfWalletExist() && !walletIsGenerated),
|
||||||
child: Column(children: <Widget>[
|
child: Column(children: <Widget>[
|
||||||
SizedBox(height: 120),
|
SizedBox(height: 120),
|
||||||
Center(
|
Center(
|
||||||
|
@ -88,10 +68,7 @@ class WalletsHomeState extends State<WalletsHome> {
|
||||||
MaterialPageRoute(builder: (context) {
|
MaterialPageRoute(builder: (context) {
|
||||||
return GenerateWalletsScreen();
|
return GenerateWalletsScreen();
|
||||||
}),
|
}),
|
||||||
).then((value) => setState(() {
|
),
|
||||||
this.newWalletName = value;
|
|
||||||
checkIfWalletExist();
|
|
||||||
})),
|
|
||||||
child: Text('Générer un portefeuille',
|
child: Text('Générer un portefeuille',
|
||||||
style: TextStyle(fontSize: 20))),
|
style: TextStyle(fontSize: 20))),
|
||||||
SizedBox(height: 15),
|
SizedBox(height: 15),
|
||||||
|
@ -106,13 +83,13 @@ class WalletsHomeState extends State<WalletsHome> {
|
||||||
primary: Color(0xffFFD68E), // background
|
primary: Color(0xffFFD68E), // background
|
||||||
onPrimary: Colors.black, // foreground
|
onPrimary: Colors.black, // foreground
|
||||||
),
|
),
|
||||||
onPressed: () => importWallet(),
|
onPressed: () => historyProvider.importWallet(),
|
||||||
child: Text('Importer un portefeuille existant',
|
child: Text('Importer un portefeuille existant',
|
||||||
style: TextStyle(fontSize: 20))),
|
style: TextStyle(fontSize: 20))),
|
||||||
])),
|
])),
|
||||||
Visibility(
|
Visibility(
|
||||||
visible: checkIfWalletExist(),
|
visible: historyProvider.checkIfWalletExist(),
|
||||||
child: MyWalletsList(keyMyWallets: _keyWalletsHome))
|
child: MyWalletsList())
|
||||||
])));
|
])));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,48 +105,4 @@ class WalletsHomeState extends State<WalletsHome> {
|
||||||
// });
|
// });
|
||||||
// }
|
// }
|
||||||
|
|
||||||
bool checkIfWalletExist() {
|
|
||||||
if (this.appPath == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var walletsFolder = new Directory("${this.appPath.path}/wallets/");
|
|
||||||
|
|
||||||
bool isWalletFolderExist = walletsFolder.existsSync();
|
|
||||||
|
|
||||||
if (!isWalletFolderExist) {
|
|
||||||
Directory(walletsFolder.path).createSync();
|
|
||||||
}
|
|
||||||
|
|
||||||
List contents = walletsFolder.listSync();
|
|
||||||
if (contents.length == 0) {
|
|
||||||
print('No wallets detected');
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
print('Some wallets have been detected:');
|
|
||||||
for (var _wallets in contents) {
|
|
||||||
print(_wallets);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// final bool isExist =
|
|
||||||
// File('${walletsFolder.path}/$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 {}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue