Improve refresh rename wallet; Clean code; Clean logs; Improve build script

This commit is contained in:
poka 2021-01-28 21:45:35 +01:00
parent aa320a1587
commit ba95a262e0
10 changed files with 64 additions and 84 deletions

View File

@ -64,23 +64,6 @@ class Gecko extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
// FutureBuilder<dynamic>(
// future: getAppPath(), // async work
// builder: (BuildContext context, AsyncSnapshot snapshot) {
// // switch (snapshot.connectionState) {
// // case ConnectionState.waiting:
// // return Text('Loading....');
// // default:
// // if (snapshot.hasError)
// // return Text('Error: ${snapshot.error}');
// // else
// // return Text('Result: ${snapshot.data}');
// // }
// print('FutureBuilder: ' + appPath.path);
// return;
// },
// );
final _httpLink = HttpLink( final _httpLink = HttpLink(
// 'http://192.168.1.91:10060/gva', // 'http://192.168.1.91:10060/gva',
randomEndpoint, randomEndpoint,
@ -97,7 +80,6 @@ class Gecko extends StatelessWidget {
return MultiProvider( return MultiProvider(
providers: [ providers: [
// Provider(create: (context) => HistoryProvider()), // Provider(create: (context) => HistoryProvider()),
// Provider(create: (context) => MyWalletsProvider()),
ChangeNotifierProvider(create: (_) => HomeProvider()), ChangeNotifierProvider(create: (_) => HomeProvider()),
ChangeNotifierProvider(create: (_) => HistoryProvider('')), ChangeNotifierProvider(create: (_) => HistoryProvider('')),
ChangeNotifierProvider(create: (_) => MyWalletsProvider()), ChangeNotifierProvider(create: (_) => MyWalletsProvider()),
@ -116,7 +98,6 @@ class Gecko extends StatelessWidget {
bodyText2: TextStyle(), bodyText2: TextStyle(),
).apply( ).apply(
bodyColor: Color(0xff855F2D), bodyColor: Color(0xff855F2D),
// displayColor: Colors.blue,
), ),
), ),
home: HomeScreen(), home: HomeScreen(),

View File

@ -35,7 +35,7 @@ class GenerateWalletsProvider with ChangeNotifier {
return 'Exist: DENY'; return 'Exist: DENY';
} }
walletNameDirectory.createSync(); await walletNameDirectory.create();
walletFile.writeAsString('${wallet.dewif}'); walletFile.writeAsString('${wallet.dewif}');
Navigator.pop(context, true); Navigator.pop(context, true);

View File

@ -15,26 +15,18 @@ class HomeProvider with ChangeNotifier {
set currentIndex(int index) { set currentIndex(int index) {
_currentIndex = index; _currentIndex = index;
print('current index setter: ' + index.toString());
notifyListeners(); notifyListeners();
} }
Future getAppVersion() async { Future getAppVersion() async {
PackageInfo packageInfo = await PackageInfo.fromPlatform(); PackageInfo packageInfo = await PackageInfo.fromPlatform();
String appName = packageInfo.appName;
String version = packageInfo.version; String version = packageInfo.version;
String buildNumber = packageInfo.buildNumber; String buildNumber = packageInfo.buildNumber;
print(appName);
notifyListeners(); notifyListeners();
return version + '+' + buildNumber; return version + '+' + buildNumber;
} }
// void onTabTapped(int index) {
// currentIndex = index;
// notifyListeners();
// }
Future<String> getRandomEndpoint() async { Future<String> getRandomEndpoint() async {
// TODO: Improve implemention of getRandomEndpoint() // TODO: Improve implemention of getRandomEndpoint()
// final _json = json.decode(await getJsonEndpoints()); // final _json = json.decode(await getJsonEndpoints());
@ -50,7 +42,6 @@ class HomeProvider with ChangeNotifier {
final response = await http.post(_endpoint); final response = await http.post(_endpoint);
if (response.statusCode != 400) { if (response.statusCode != 400) {
print('Endpoint statutcode: ' + response.statusCode.toString()); print('Endpoint statutcode: ' + response.statusCode.toString());
// _endpoint = getRandomElement(_list);
return 'HS'; return 'HS';
} }
@ -60,7 +51,6 @@ class HomeProvider with ChangeNotifier {
Future getAppPath() async { Future getAppPath() async {
appPath = await getApplicationDocumentsDirectory(); appPath = await getApplicationDocumentsDirectory();
walletsDirectory = Directory('${appPath.path}/wallets'); walletsDirectory = Directory('${appPath.path}/wallets');
print('AAAAPPPATH: ' + appPath.path);
} }
T getRandomElement<T>(List<T> list) { T getRandomElement<T>(List<T> list) {

View File

@ -26,10 +26,7 @@ class MyWalletsProvider with ChangeNotifier {
print('No wallets detected'); print('No wallets detected');
return false; return false;
} else { } else {
print('Some wallets have been detected:'); print('Some wallets have been detected.');
for (var _wallets in contents) {
print(_wallets);
}
return true; return true;
} }
} }
@ -38,9 +35,7 @@ class MyWalletsProvider with ChangeNotifier {
List getAllWalletsNames() { List getAllWalletsNames() {
listWallets.clear(); listWallets.clear();
print('1');
print(walletsDirectory.path); print(walletsDirectory.path);
print('2');
walletsDirectory walletsDirectory
.listSync(recursive: false, followLinks: false) .listSync(recursive: false, followLinks: false)

View File

@ -51,6 +51,7 @@ class WalletOptionsProvider with ChangeNotifier {
} }
Future readLocalWallet(String _name, String _pin) async { Future readLocalWallet(String _name, String _pin) async {
isWalletUnlock = false;
print('NOM: ' + _name); print('NOM: ' + _name);
try { try {
File _walletFile = File('${walletsDirectory.path}/$_name/wallet.dewif'); File _walletFile = File('${walletsDirectory.path}/$_name/wallet.dewif');
@ -113,7 +114,8 @@ class WalletOptionsProvider with ChangeNotifier {
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
_renameWallet(_walletName, this._newWalletName.text); _renameWallet(_walletName, this._newWalletName.text);
}); });
notifyListeners(); // notifyListeners();
Navigator.pop(context, true);
Navigator.pop(context, true); Navigator.pop(context, true);
}, },
), ),
@ -131,8 +133,7 @@ class WalletOptionsProvider with ChangeNotifier {
final bool _answer = await _confirmDeletingWallet(context, _name); final bool _answer = await _confirmDeletingWallet(context, _name);
if (_answer) { if (_answer) {
_walletFile.deleteSync(recursive: true); await _walletFile.delete(recursive: true);
isWalletUnlock = false;
Navigator.pop(context); Navigator.pop(context);
} }
return 0; return 0;

View File

@ -28,7 +28,6 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
Provider.of<GenerateWalletsProvider>(context); Provider.of<GenerateWalletsProvider>(context);
MyWalletsProvider _myWalletProvider = MyWalletsProvider _myWalletProvider =
Provider.of<MyWalletsProvider>(context); Provider.of<MyWalletsProvider>(context);
print("JE BUILD !!!");
this._mnemonicController.text = generatedMnemonic; this._mnemonicController.text = generatedMnemonic;
this._pubkey.text = generatedWallet.publicKey; this._pubkey.text = generatedWallet.publicKey;
@ -142,8 +141,8 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
onPressed: (_generateWalletProvider onPressed: (_generateWalletProvider
.isAskedWordValid && .isAskedWordValid &&
this.walletName.text != '') this.walletName.text != '')
? () { ? () async {
_generateWalletProvider.storeWallet( await _generateWalletProvider.storeWallet(
generatedWallet, generatedWallet,
walletName.text, walletName.text,
context); context);

View File

@ -1,9 +1,9 @@
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 'package:gecko/models/myWallets.dart';
import 'package:gecko/models/walletOptions.dart'; import 'package:gecko/models/walletOptions.dart';
import 'package:gecko/screens/myWallets/changePin.dart'; import 'package:gecko/screens/myWallets/changePin.dart';
import 'dart:io';
import 'dart:async'; import 'dart:async';
import 'package:pin_code_fields/pin_code_fields.dart'; import 'package:pin_code_fields/pin_code_fields.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -15,11 +15,9 @@ class WalletOptions extends StatelessWidget with ChangeNotifier {
String walletName; String walletName;
StreamController<ErrorAnimationType> errorController; StreamController<ErrorAnimationType> errorController;
Directory appPath;
TextEditingController _enterPin = new TextEditingController(); TextEditingController _enterPin = new TextEditingController();
final formKey = GlobalKey<FormState>(); final formKey = GlobalKey<FormState>();
bool hasError = false; bool hasError = false;
String validPin = 'NO PIN';
var pinColor = Color(0xffF9F9F1); var pinColor = Color(0xffF9F9F1);
var walletPin = ''; var walletPin = '';
@ -27,8 +25,11 @@ class WalletOptions extends StatelessWidget with ChangeNotifier {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
print("Build walletOptions");
WalletOptionsProvider _walletOptions = WalletOptionsProvider _walletOptions =
Provider.of<WalletOptionsProvider>(context); Provider.of<WalletOptionsProvider>(context);
MyWalletsProvider _myWalletProvider =
Provider.of<MyWalletsProvider>(context);
errorController = StreamController<ErrorAnimationType>(); errorController = StreamController<ErrorAnimationType>();
// _walletOptions.isWalletUnlock = false; // _walletOptions.isWalletUnlock = false;
return WillPopScope( return WillPopScope(
@ -88,8 +89,16 @@ class WalletOptions extends StatelessWidget with ChangeNotifier {
onPressed: () => _walletOptions onPressed: () => _walletOptions
.renameWalletAlerte( .renameWalletAlerte(
context, walletName) context, walletName)
.then((_) { .then((_result) {
notifyListeners(); if (_result == true) {
WidgetsBinding.instance
.addPostFrameCallback((_) {
_myWalletProvider.listWallets =
_myWalletProvider
.getAllWalletsNames();
_myWalletProvider.rebuildWidget();
});
}
}), }),
child: Text('Renommer ce portefeuille', child: Text('Renommer ce portefeuille',
style: TextStyle(fontSize: 20)))))), style: TextStyle(fontSize: 20)))))),
@ -128,8 +137,14 @@ class WalletOptions extends StatelessWidget with ChangeNotifier {
.redAccent, //Color(0xffFFD68E), // background .redAccent, //Color(0xffFFD68E), // background
onPrimary: Colors.black, // foreground onPrimary: Colors.black, // foreground
), ),
onPressed: () { onPressed: () async {
_walletOptions.deleteWallet(context, walletName); await _walletOptions.deleteWallet(
context, walletName);
WidgetsBinding.instance.addPostFrameCallback((_) {
_myWalletProvider.listWallets =
_myWalletProvider.getAllWalletsNames();
_myWalletProvider.rebuildWidget();
});
}, },
child: Text('Supprimer ce portefeuille', child: Text('Supprimer ce portefeuille',
style: TextStyle(fontSize: 20)))), style: TextStyle(fontSize: 20)))),

View File

@ -1,4 +1,5 @@
import 'package:gecko/models/myWallets.dart'; import 'package:gecko/models/myWallets.dart';
import 'package:gecko/models/walletOptions.dart';
import 'package:gecko/screens/myWallets/generateWallets.dart'; import 'package:gecko/screens/myWallets/generateWallets.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:gecko/screens/myWallets/walletOptions.dart'; import 'package:gecko/screens/myWallets/walletOptions.dart';
@ -10,13 +11,16 @@ class WalletsHome extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
MyWalletsProvider myWalletProvider = MyWalletsProvider myWalletProvider =
Provider.of<MyWalletsProvider>(context); Provider.of<MyWalletsProvider>(context);
WalletOptionsProvider _walletOptions =
Provider.of<WalletOptionsProvider>(context);
print('BUILD: WalletsHome'); print('BUILD: WalletsHome');
myWalletProvider.checkIfWalletExist(); _walletOptions.isWalletUnlock = false;
myWalletProvider.listWallets = myWalletProvider.getAllWalletsNames(); myWalletProvider.listWallets = myWalletProvider.getAllWalletsNames();
final bool isWalletsExists = myWalletProvider.checkIfWalletExist();
return Scaffold( return Scaffold(
floatingActionButton: Visibility( floatingActionButton: Visibility(
visible: (myWalletProvider.checkIfWalletExist()), visible: (isWalletsExists),
child: Container( child: Container(
height: 80.0, height: 80.0,
width: 80.0, width: 80.0,
@ -40,7 +44,7 @@ class WalletsHome extends StatelessWidget {
body: SafeArea( body: SafeArea(
child: Column(children: <Widget>[ child: Column(children: <Widget>[
Visibility( Visibility(
visible: (!myWalletProvider.checkIfWalletExist()), visible: (!isWalletsExists),
child: Column(children: <Widget>[ child: Column(children: <Widget>[
SizedBox(height: 120), SizedBox(height: 120),
Center( Center(
@ -78,9 +82,7 @@ class WalletsHome extends StatelessWidget {
child: Text('Importer un portefeuille existant', child: Text('Importer un portefeuille existant',
style: TextStyle(fontSize: 20))), style: TextStyle(fontSize: 20))),
])), ])),
Visibility( Visibility(visible: isWalletsExists, child: myWalletsList(context))
visible: myWalletProvider.checkIfWalletExist(),
child: myWalletsList(context))
]))); ])));
} }

View File

@ -21,42 +21,42 @@ packages:
name: async name: async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.5.0-nullsafety.3" version: "2.5.0-nullsafety.1"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0-nullsafety.3" version: "2.1.0-nullsafety.1"
characters: characters:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0-nullsafety.5" version: "1.1.0-nullsafety.3"
charcode: charcode:
dependency: transitive dependency: transitive
description: description:
name: charcode name: charcode
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0-nullsafety.3" version: "1.2.0-nullsafety.1"
clock: clock:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0-nullsafety.3" version: "1.1.0-nullsafety.1"
collection: collection:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.15.0-nullsafety.5" version: "1.15.0-nullsafety.3"
connectivity: connectivity:
dependency: transitive dependency: transitive
description: description:
@ -112,7 +112,7 @@ packages:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0-nullsafety.3" version: "1.2.0-nullsafety.1"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
@ -282,27 +282,20 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.3" version: "2.0.3"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.3-nullsafety.3"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.10-nullsafety.3" version: "0.12.10-nullsafety.1"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0-nullsafety.6" version: "1.3.0-nullsafety.3"
nested: nested:
dependency: transitive dependency: transitive
description: description:
@ -330,7 +323,7 @@ packages:
name: path name: path
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.0-nullsafety.3" version: "1.8.0-nullsafety.1"
path_provider: path_provider:
dependency: "direct main" dependency: "direct main"
description: description:
@ -468,28 +461,28 @@ packages:
name: source_span name: source_span
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.0-nullsafety.4" version: "1.8.0-nullsafety.2"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.10.0-nullsafety.6" version: "1.10.0-nullsafety.1"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0-nullsafety.3" version: "2.1.0-nullsafety.1"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0-nullsafety.3" version: "1.1.0-nullsafety.1"
super_tooltip: super_tooltip:
dependency: "direct main" dependency: "direct main"
description: description:
@ -503,14 +496,14 @@ packages:
name: term_glyph name: term_glyph
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0-nullsafety.3" version: "1.2.0-nullsafety.1"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.19-nullsafety.6" version: "0.2.19-nullsafety.2"
truncate: truncate:
dependency: "direct main" dependency: "direct main"
description: description:
@ -524,7 +517,7 @@ packages:
name: typed_data name: typed_data
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0-nullsafety.5" version: "1.3.0-nullsafety.3"
uuid: uuid:
dependency: transitive dependency: transitive
description: description:
@ -545,7 +538,7 @@ packages:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0-nullsafety.5" version: "2.1.0-nullsafety.3"
websocket: websocket:
dependency: transitive dependency: transitive
description: description:
@ -582,5 +575,5 @@ packages:
source: hosted source: hosted
version: "2.2.1" version: "2.2.1"
sdks: sdks:
dart: ">=2.12.0-0.0 <3.0.0" dart: ">=2.10.0-110 <2.11.0"
flutter: ">=1.22.0" flutter: ">=1.22.0 <2.0.0"

View File

@ -12,8 +12,12 @@ echo "Nom du build final: ${APPNAME}-${VERSION}+${BUILD}.apk"
#flutter build apk --split-per-abi --build-name $VERSION --build-number $BUILD #flutter build apk --split-per-abi --build-name $VERSION --build-number $BUILD
flutter clean flutter clean
flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64 --build-name $VERSION --build-number $BUILD if [[ $1 == "bundle" ]]; then
flutter build appbundle --release --target-platform android-arm,android-arm64 --build-name $VERSION --build-number $BUILD
else
# flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64 --build-name $VERSION --build-number $BUILD
flutter build apk --release --build-name $VERSION --build-number $BUILD
fi
if [[ -d $HOME/Téléchargements ]]; then if [[ -d $HOME/Téléchargements ]]; then
DL="$HOME/Téléchargements" DL="$HOME/Téléchargements"