Skip to content
Snippets Groups Projects
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();