From e4296bedd2a197d1678464f4dbfbe8a7ba4deb09 Mon Sep 17 00:00:00 2001
From: poka <poka@p2p.legal>
Date: Sun, 7 Nov 2021 07:25:15 +0100
Subject: [PATCH] Fix: State refresh when changing default wallet; State
 refresh whern deleting all wallets; Tests are OK

---
 lib/main.dart                            |  4 +++-
 lib/models/myWallets.dart                |  3 ---
 lib/models/walletOptions.dart            | 19 -------------------
 lib/screens/myWallets/walletOptions.dart |  1 +
 lib/screens/settings.dart                |  8 +++++++-
 5 files changed, 11 insertions(+), 24 deletions(-)

diff --git a/lib/main.dart b/lib/main.dart
index b04164d9..90bd4d4f 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -43,9 +43,9 @@ Future<void> main() async {
   WidgetsFlutterBinding.ensureInitialized();
 
   HomeProvider _homeProvider = HomeProvider();
+  MyWalletsProvider _walletsProvider = MyWalletsProvider();
   appPath = await getApplicationDocumentsDirectory();
   await _homeProvider.createDefaultAvatar();
-  // _walletsProvider.getDefaultWallet();
   appVersion = await _homeProvider.getAppVersion();
   prefs = await SharedPreferences.getInstance();
 
@@ -56,6 +56,8 @@ Future<void> main() async {
   chestBox = await Hive.openBox("chestBox");
   configBox = await Hive.openBox("configBox");
 
+  _walletsProvider.getDefaultWallet();
+
   // final HiveStore _store =
   //     await HiveStore.open(path: '${appPath.path}/gqlCache');
 
diff --git a/lib/models/myWallets.dart b/lib/models/myWallets.dart
index ac108890..3cd63c49 100644
--- a/lib/models/myWallets.dart
+++ b/lib/models/myWallets.dart
@@ -79,9 +79,6 @@ class MyWalletsProvider with ChangeNotifier {
         await walletBox.clear();
         await chestBox.clear();
         await configBox.delete('defaultWallet');
-        checkIfWalletExist();
-        notifyListeners();
-        rebuildWidget();
 
         Navigator.pop(context);
       }
diff --git a/lib/models/walletOptions.dart b/lib/models/walletOptions.dart
index 35c9cda5..ba3da484 100644
--- a/lib/models/walletOptions.dart
+++ b/lib/models/walletOptions.dart
@@ -244,25 +244,6 @@ class WalletOptionsProvider with ChangeNotifier {
     );
   }
 
-  Future<NewWallet> changePin(_name, _oldPin) async {
-    try {
-      final _dewif = chestBox.get(0);
-
-      NewWallet newWalletFile = await DubpRust.changeDewifPin(
-        dewif: _dewif,
-        oldPin: _oldPin,
-      );
-
-      newPin.text = newWalletFile.pin;
-      ischangedPin = true;
-      // notifyListeners();
-      return newWalletFile;
-    } catch (e) {
-      log.e('Impossible de changer le code PIN.');
-      return badWallet;
-    }
-  }
-
   snackCopyKey(context) {
     final snackBar = SnackBar(
         content:
diff --git a/lib/screens/myWallets/walletOptions.dart b/lib/screens/myWallets/walletOptions.dart
index cd7eb8c1..121e7c19 100644
--- a/lib/screens/myWallets/walletOptions.dart
+++ b/lib/screens/myWallets/walletOptions.dart
@@ -364,6 +364,7 @@ class WalletOptions extends StatelessWidget {
                             defaultWallet = wallet;
                             configBox.put('defaultWallet', wallet.id());
                             _myWalletProvider.readAllWallets(_currentChest);
+                            _myWalletProvider.rebuildWidget();
                           }
                         : null,
                     child: SizedBox(
diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart
index 56a26285..851a4c58 100644
--- a/lib/screens/settings.dart
+++ b/lib/screens/settings.dart
@@ -1,11 +1,13 @@
 import 'package:flutter/material.dart';
 import 'package:dubp/dubp.dart';
 import 'package:flutter/services.dart';
+import 'package:gecko/models/home.dart';
 import 'package:gecko/models/myWallets.dart';
 import 'package:gecko/screens/myWallets/generateWallets.dart';
 import 'dart:io';
 import 'package:gecko/screens/myWallets/importWallet.dart';
 import 'package:gecko/globals.dart';
+import 'package:provider/provider.dart';
 
 // ignore: must_be_immutable
 class SettingsScreen extends StatelessWidget {
@@ -25,6 +27,8 @@ class SettingsScreen extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
+    HomeProvider _homeProvider = Provider.of<HomeProvider>(context);
+
     // getAppDirectory();
     return Scaffold(
         appBar: AppBar(
@@ -91,7 +95,9 @@ class SettingsScreen extends StatelessWidget {
                           ),
                           onPressed: () async => {
                                 log.i('Suppression de tous les wallets'),
-                                await _myWallets.deleteAllWallet(context)
+                                await _myWallets
+                                    .deleteAllWallet(context)
+                                    .then((v) => _homeProvider.rebuildWidget())
                               },
                           child: Text("EFFACER TOUS MES PORTEFEUILLES",
                               style: TextStyle(fontSize: 20)))))),
-- 
GitLab