Compare commits

...

3 Commits

9 changed files with 71 additions and 39 deletions

View File

@ -8,6 +8,7 @@ Directory appPath;
Directory walletsDirectory;
File defaultWalletFile;
File currentChestFile;
File globalConf;
WalletData defaultWallet;
String appVersion;

View File

@ -44,6 +44,7 @@ Future<void> main() async {
await _homeProvider.getAppPath();
await _homeProvider.createDefaultAvatar();
await _walletsProvider.initWalletFolder();
await _walletsProvider.loadGlobalConfig();
// _walletsProvider.getDefaultWallet();
appVersion = await _homeProvider.getAppVersion();
prefs = await SharedPreferences.getInstance();

23
lib/models/chestData.dart Normal file
View File

@ -0,0 +1,23 @@
import 'dart:io';
class ChestData {
String dewif;
Map<int, WalletData> accounts;
int defaultWallet;
ChestData({dewif, accounts, defaultWallet});
factory ChestData.fromJson(Map<String, dynamic> json) =>
_$ChestDataFromJson(json);
Map<String, dynamic> toJson() => _$ChestDataToJson(this);
// Representation of ChestData when debugging
@override
String toString() {
return this.accounts.entries.join();
}
}
class WalletData {
String name;
File avatar;
}

View File

@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'dart:async';
import 'package:gecko/globals.dart';
import 'package:provider/provider.dart';
import 'dart:convert';
class MyWalletsProvider with ChangeNotifier {
List<WalletData> listWallets = [];
@ -11,32 +12,30 @@ class MyWalletsProvider with ChangeNotifier {
int pinLenght;
Future initWalletFolder() async {
// getDefaultWallet();
final bool isWalletFolderExist = await walletsDirectory.exists();
if (!isWalletFolderExist) {
await Directory(walletsDirectory.path).create();
}
File _currentChestFile = File('${walletsDirectory.path}/currentChest.conf');
// File _currentChestFile = File('${walletsDirectory.path}/currentChest.conf');
globalConf = File('${appPath.path}/config.json');
await _currentChestFile.create();
await _currentChestFile.writeAsString('0');
await globalConf.create();
await globalConf.writeAsString('0');
final bool isChestsExist =
await Directory('${walletsDirectory.path}/0').exists();
if (!isChestsExist) {
await Directory('${walletsDirectory.path}/0').create();
await Directory('${walletsDirectory.path}/1').create();
await File('${walletsDirectory.path}/0/list.conf').create();
await File('${walletsDirectory.path}/0/order.conf').create();
await File('${walletsDirectory.path}/1/list.conf').create();
await File('${walletsDirectory.path}/1/order.conf').create();
await File('${walletsDirectory.path}/0/chest.json').create();
await File('${walletsDirectory.path}/1/chest.json').create();
// getDefaultWallet();
}
await getDefaultWalletAsync();
}
Future loadGlobalConfig() async {}
int getCurrentChest() {
File _currentChestFile = File('${walletsDirectory.path}/currentChest.conf');
@ -105,29 +104,6 @@ class MyWalletsProvider with ChangeNotifier {
configLines.firstWhere((element) => element.startsWith(_id)));
}
void getDefaultWallet() {
defaultWalletFile = File('${appPath.path}/defaultWallet');
if (!defaultWalletFile.existsSync()) {
File(defaultWalletFile.path).createSync();
defaultWalletFile.writeAsStringSync("0:0");
}
defaultWallet = getWalletData(defaultWalletFile.readAsStringSync());
}
Future getDefaultWalletAsync() async {
defaultWalletFile = File('${appPath.path}/defaultWallet');
if (!await defaultWalletFile.exists()) {
await File(defaultWalletFile.path).create();
await defaultWalletFile.writeAsString("0:0");
} else {
defaultWallet =
await getWalletDataAsync(await defaultWalletFile.readAsString());
}
}
Future<int> deleteAllWallet(context) async {
MyWalletsProvider _myWalletProvider =
Provider.of<MyWalletsProvider>(context, listen: false);
@ -256,3 +232,34 @@ class WalletData {
return "${this.chest}:${this.number}";
}
}
// Chest data constructor
class ChestData {
String dewif;
Map accounts;
List<int> derivations;
Map<int, String> name;
Map<int, File> avatar;
int defaultWallet;
// Load data from JSON
ChestData(String elements) {
if (elements.isNotEmpty) {
Map<String, dynamic> jsonElements = jsonDecode(elements);
this.dewif = jsonElements['dewif'];
this.accounts = jsonElements['accounts'];
for (int _key in this.accounts.keys) {
derivations.add(_key);
this.name[_key] = this.accounts[_key]['name'];
this.avatar[_key] = this.accounts[_key]['avatar'];
}
}
}
// Representation of ChestData when debugging
@override
String toString() {
return this.accounts.entries.join();
}
}

View File

@ -29,14 +29,14 @@ const String getHistory = r'''
issuers
comment
outputs
writtenTime
receivedTime
}
sending {
currency
issuers
comment
outputs
writtenTime
receivedTime
}
}
currentUd {

View File

@ -146,7 +146,7 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier {
_myWalletProvider.listWallets =
_myWalletProvider
.readAllWallets(_currentChest);
_myWalletProvider.getDefaultWallet();
// _myWalletProvider.getDefaultWallet();
scheduleMicrotask(() {
_walletOptions.reloadBuild();
_myWalletProvider.rebuildWidget();

View File

@ -46,7 +46,7 @@ class WalletOptions extends StatelessWidget {
_walletOptions.walletID = '0:${wallet.number}';
_myWalletProvider.getDefaultWallet();
// _myWalletProvider.getDefaultWallet();
_walletOptions.isDefaultWallet =
(defaultWallet.id() == _walletOptions.walletID);

View File

@ -28,7 +28,7 @@ class WalletsHome extends StatelessWidget {
if (myWalletProvider.listWallets.isEmpty) {
firstWalletDerivation = myWalletProvider.listWallets[0].derivation;
myWalletProvider.getDefaultWallet();
// myWalletProvider.getDefaultWallet();
}
log.d("${myWalletProvider.pinCode},${myWalletProvider.pinLenght}");

View File

@ -122,7 +122,7 @@ class OnboardingStepFourteen extends StatelessWidget {
await _generateWalletProvider.storeHDWChest(
generatedWallet, 'Mon portefeuille courant', context);
_myWalletProvider.readAllWallets(_currentChest);
await _myWalletProvider.getDefaultWalletAsync();
// await _myWalletProvider.getDefaultWalletAsync();
scheduleMicrotask(() {
_walletOptions.reloadBuild();
_myWalletProvider.rebuildWidget();