my_wallets.dart 3.65 KiB
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:gecko/globals.dart';
import 'package:gecko/models/wallet_data.dart';
class MyWalletsProvider with ChangeNotifier {
List<WalletData> listWallets = [];
late String pinCode;
int? pinLenght;
int? getCurrentChest() {
if (configBox.get('currentChest') == null) {
configBox.put('currentChest', 0);
}
return configBox.get('currentChest');
}
bool checkIfWalletExist() {
if (chestBox.isEmpty) {
log.i('No wallets detected');
return false;
} else {
return true;
}
}
List<WalletData> readAllWallets(int? _chest) {
listWallets.clear();
walletBox.toMap().forEach((key, value) {
if (value.chest == _chest) {
listWallets.add(value);
}
});
return listWallets;
}
WalletData? getWalletData(List<int?> _id) {
if (_id.isEmpty) return WalletData();
int? _chest = _id[0];
int? _nbr = _id[1];
WalletData? _targetedWallet;
walletBox.toMap().forEach((key, value) {
if (value.chest == _chest && value.number == _nbr) {
_targetedWallet = value;
return;
}
});
return _targetedWallet;
}
WalletData? getDefaultWallet(int? chest) {
if (chestBox.isEmpty) {
return WalletData(chest: 0, number: 0);
} else {
int? defaultWalletNumber = chestBox.get(chest)!.defaultWallet;
return getWalletData([chest, defaultWalletNumber]);
}
}
Future<int> deleteAllWallet(context) async {
try {
log.w('DELETE ALL WALLETS ?');
final bool _answer = await (_confirmDeletingAllWallets(context) as FutureOr<bool>);
if (_answer) {
await walletBox.clear();