WIP: constructor ChestData, json deserialisation, ect...
This commit is contained in:
parent
62c6a0aa15
commit
97c566f429
|
@ -8,6 +8,7 @@ Directory appPath;
|
|||
Directory walletsDirectory;
|
||||
File defaultWalletFile;
|
||||
File currentChestFile;
|
||||
File globalConf;
|
||||
|
||||
WalletData defaultWallet;
|
||||
String appVersion;
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue