From dfbab5a219cf4bd9a68293185b62d7ece6469c66 Mon Sep 17 00:00:00 2001
From: poka <poka@p2p.legal>
Date: Thu, 18 Nov 2021 02:37:46 +0100
Subject: [PATCH] Can change pin code of Cesium chest

---
 assets/chests/secret_code.png                 | Bin 0 -> 6765 bytes
 lib/models/change_pin.dart                    |  22 +++--
 lib/models/chest_provider.dart                |  12 ++-
 lib/screens/home.dart                         |   2 +-
 .../myWallets/cesium_wallet_options.dart      |  68 ++++++++++---
 lib/screens/myWallets/change_pin.dart         |  90 ++++++++++--------
 lib/screens/myWallets/wallets_home.dart       |   3 +-
 packages/dubp_rs/pubspec.lock                 |  10 +-
 pubspec.yaml                                  |   2 +-
 9 files changed, 134 insertions(+), 75 deletions(-)
 create mode 100755 assets/chests/secret_code.png

diff --git a/assets/chests/secret_code.png b/assets/chests/secret_code.png
new file mode 100755
index 0000000000000000000000000000000000000000..10ef999edbde1ee10c2b680667db3849947799a3
GIT binary patch
literal 6765
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

literal 0
HcmV?d00001

diff --git a/lib/models/change_pin.dart b/lib/models/change_pin.dart
index b65e74c4..cb31cca2 100644
--- a/lib/models/change_pin.dart
+++ b/lib/models/change_pin.dart
@@ -3,24 +3,24 @@ import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'dart:async';
 import 'package:gecko/globals.dart';
-import 'package:gecko/models/chest_data.dart';
 
 class ChangePinProvider with ChangeNotifier {
   bool ischangedPin = false;
   TextEditingController newPin = TextEditingController();
+  String pinToGive;
 
   Future<NewWallet> get badWallet => null;
 
-  Future<NewWallet> changePin(_name, _oldPin) async {
+  Future<NewWallet> changePin(String _oldPin) async {
     try {
       final _dewif = chestBox.get(configBox.get('currentChest')).dewif;
 
       NewWallet newWalletFile = await DubpRust.changeDewifPin(
         dewif: _dewif,
-        oldPin: _oldPin,
+        oldPin: _oldPin.toUpperCase(),
       );
 
-      newPin.text = newWalletFile.pin;
+      newPin.text = pinToGive = newWalletFile.pin;
       ischangedPin = true;
       notifyListeners();
       return newWalletFile;
@@ -30,12 +30,14 @@ class ChangePinProvider with ChangeNotifier {
     }
   }
 
-  Future storeNewPinChest(context, NewWallet _newWalletFile) async {
-    ChestData currentChest = chestBox.getAt(configBox.get('currentChest'));
-    currentChest.dewif = _newWalletFile.dewif;
-    // currentChest.name = _name;
-    chestBox.add(currentChest);
+  void storeNewPinChest(context, NewWallet _newWalletFile) {
+    // ChestData currentChest = chestBox.getAt(configBox.get('currentChest'));
+    // currentChest.dewif = _newWalletFile.dewif;
+    // await chestBox.add(currentChest);
 
-    Navigator.pop(context);
+    chestBox.get(configBox.get('currentChest')).dewif = _newWalletFile.dewif;
+
+    Navigator.pop(context, pinToGive);
+    pinToGive = '';
   }
 }
diff --git a/lib/models/chest_provider.dart b/lib/models/chest_provider.dart
index c466e502..748315b6 100644
--- a/lib/models/chest_provider.dart
+++ b/lib/models/chest_provider.dart
@@ -12,15 +12,19 @@ class ChestProvider with ChangeNotifier {
     final bool _answer = await _confirmDeletingChest(context, _chest.name);
 
     if (_answer) {
-      chestBox.delete(_chest.key);
-      int lastChest = chestBox.toMap().keys.first;
-      configBox.put('currentChest', lastChest);
-      notifyListeners();
+      await chestBox.delete(_chest.key);
+      if (chestBox.isEmpty) {
+        await configBox.put('currentChest', 0);
+      } else {
+        int lastChest = chestBox.toMap().keys.first;
+        await configBox.put('currentChest', lastChest);
+      }
 
       Navigator.popUntil(
         context,
         ModalRoute.withName('/'),
       );
+      notifyListeners();
     }
   }
 
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 71305698..f305064f 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -174,7 +174,7 @@ class HomeScreen extends StatelessWidget {
                   ]),
             ),
             Padding(
-              padding: EdgeInsets.only(top: isTall ? 70 : 60),
+              padding: EdgeInsets.only(top: isTall ? 100 : 60),
               child: Row(
                   mainAxisAlignment: MainAxisAlignment.center,
                   children: <Widget>[
diff --git a/lib/screens/myWallets/cesium_wallet_options.dart b/lib/screens/myWallets/cesium_wallet_options.dart
index 4e48b47c..1d8854d8 100644
--- a/lib/screens/myWallets/cesium_wallet_options.dart
+++ b/lib/screens/myWallets/cesium_wallet_options.dart
@@ -6,8 +6,10 @@ import 'package:gecko/globals.dart';
 import 'package:gecko/models/chest_data.dart';
 import 'package:gecko/models/chest_provider.dart';
 import 'package:gecko/models/history.dart';
+import 'package:gecko/models/my_wallets.dart';
 import 'package:gecko/models/queries.dart';
 import 'package:gecko/models/wallet_options.dart';
+import 'package:gecko/screens/myWallets/change_pin.dart';
 import 'package:graphql_flutter/graphql_flutter.dart';
 import 'package:provider/provider.dart';
 import 'package:flutter/services.dart';
@@ -15,11 +17,13 @@ import 'package:flutter/services.dart';
 int _nbrLinesName = 1;
 bool _isNewNameValid = false;
 
-Widget cesiumWalletOptions(BuildContext context, ChestData cesiumWallet) {
+Widget cesiumWalletOptions(BuildContext context, ChestData cesiumWallet,
+    MyWalletsProvider _myWalletProvider) {
   SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
   WalletOptionsProvider _walletOptions =
       Provider.of<WalletOptionsProvider>(context);
-  ChestProvider _chestProvider = Provider.of<ChestProvider>(context);
+  ChestProvider _chestProvider =
+      Provider.of<ChestProvider>(context, listen: false);
   HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
 
   final String shortPubkey =
@@ -231,7 +235,7 @@ Widget cesiumWalletOptions(BuildContext context, ChestData cesiumWallet) {
                     Image.asset(
                       'assets/walletOptions/key.png',
                     ),
-                    const SizedBox(width: 10),
+                    const SizedBox(width: 20),
                     Text("${shortPubkey.split(':')[0]}:",
                         style: const TextStyle(
                             fontSize: 22,
@@ -284,25 +288,63 @@ Widget cesiumWalletOptions(BuildContext context, ChestData cesiumWallet) {
                     Image.asset(
                       'assets/walletOptions/clock.png',
                     ),
-                    const SizedBox(width: 12),
+                    const SizedBox(width: 22),
                     const Text('Historique des transactions',
                         style: TextStyle(fontSize: 20, color: Colors.black)),
                   ]))),
-          SizedBox(height: 12 * ratio),
+          SizedBox(height: 7 * ratio),
           InkWell(
-              key: const Key('deleteWallet'),
-              onTap: () async {
-                await _chestProvider.deleteChest(context, cesiumWallet);
-              },
+            key: const Key('changePin'),
+            onTap: () async {
+              // await _chestProvider.changePin(context, cesiumWallet);
+              _myWalletProvider.pinCode = await Navigator.push(
+                context,
+                MaterialPageRoute(
+                  builder: (context) {
+                    return ChangePinScreen(
+                      walletName: cesiumWallet.name,
+                      walletProvider: _myWalletProvider,
+                    );
+                  },
+                ),
+              );
+            },
+            child: SizedBox(
+                height: 50,
+                child: Row(children: <Widget>[
+                  const SizedBox(width: 28),
+                  Image.asset(
+                    'assets/chests/secret_code.png',
+                  ),
+                  const SizedBox(width: 18),
+                  const Text('Changer mon code secret',
+                      style: TextStyle(fontSize: 20, color: Colors.black)),
+                ])),
+          ),
+          SizedBox(height: 7 * ratio),
+          InkWell(
+            key: const Key('deleteWallet'),
+            onTap: () async {
+              await _chestProvider.deleteChest(context, cesiumWallet);
+            },
+            child: SizedBox(
+              height: 50,
               child: Row(children: <Widget>[
                 const SizedBox(width: 33),
                 Image.asset(
                   'assets/walletOptions/trash.png',
                 ),
-                const SizedBox(width: 14),
-                const Text('Supprimer ce coffre',
-                    style: TextStyle(fontSize: 20, color: Color(0xffD80000))),
-              ])),
+                const SizedBox(width: 25),
+                const Text(
+                  'Supprimer ce coffre',
+                  style: TextStyle(
+                    fontSize: 20,
+                    color: Color(0xffD80000),
+                  ),
+                ),
+              ]),
+            ),
+          ),
         ]),
       ),
     ),
diff --git a/lib/screens/myWallets/change_pin.dart b/lib/screens/myWallets/change_pin.dart
index 477e25cc..25ba873f 100644
--- a/lib/screens/myWallets/change_pin.dart
+++ b/lib/screens/myWallets/change_pin.dart
@@ -4,16 +4,19 @@ import 'package:dubp/dubp.dart';
 import 'package:flutter/services.dart';
 import 'package:gecko/globals.dart';
 import 'package:gecko/models/change_pin.dart';
+import 'package:gecko/models/my_wallets.dart';
 import 'dart:io';
 import 'package:provider/provider.dart';
 
 // ignore: must_be_immutable
 class ChangePinScreen extends StatelessWidget with ChangeNotifier {
   ChangePinScreen(
-      {Key keyMyWallets, @required this.walletName, @required this.oldPin})
+      {Key keyMyWallets,
+      @required this.walletName,
+      @required this.walletProvider})
       : super(key: keyMyWallets);
   final String walletName;
-  final String oldPin;
+  final MyWalletsProvider walletProvider;
   Directory appPath;
   NewWallet _newWalletFile;
 
@@ -24,27 +27,27 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
     // _walletOptions.changePin(walletName, oldPin);
     // _walletOptions.newPin.text = _tmpPin;
     return WillPopScope(
-        onWillPop: () {
-          _changePin.newPin.text = '';
-          return Future<bool>.value(true);
-        },
-        child: Scaffold(
-            resizeToAvoidBottomInset: false,
-            appBar: AppBar(
-                toolbarHeight: 60 * ratio,
-                leading: IconButton(
-                    icon: const Icon(Icons.arrow_back, color: Colors.black),
-                    onPressed: () {
-                      _changePin.newPin.text = '';
-                      Navigator.of(context).pop();
-                    }),
-                title: SizedBox(
-                  height: 22,
-                  child: Text(walletName),
-                )),
-            body: Center(
-                child: SafeArea(
-                    child: Column(children: <Widget>[
+      onWillPop: () {
+        _changePin.newPin.text = '';
+        return Future<bool>.value(true);
+      },
+      child: Scaffold(
+        resizeToAvoidBottomInset: false,
+        appBar: AppBar(
+            toolbarHeight: 60 * ratio,
+            leading: IconButton(
+                icon: const Icon(Icons.arrow_back, color: Colors.black),
+                onPressed: () {
+                  _changePin.newPin.text = '';
+                  Navigator.of(context).pop();
+                }),
+            title: SizedBox(
+              height: 22,
+              child: Text(walletName),
+            )),
+        body: Center(
+          child: SafeArea(
+            child: Column(children: <Widget>[
               const SizedBox(height: 80),
               Text(
                 'Choisissez un code secret autogénéré :',
@@ -59,7 +62,7 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
                 alignment: Alignment.centerRight,
                 children: <Widget>[
                   TextField(
-                      enabled: true,
+                      enabled: false,
                       controller: _changePin.newPin,
                       maxLines: 1,
                       textAlign: TextAlign.center,
@@ -73,7 +76,7 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
                     color: orangeC,
                     onPressed: () async {
                       _newWalletFile =
-                          await _changePin.changePin(walletName, oldPin);
+                          await _changePin.changePin(walletProvider.pinCode);
                     },
                   ),
                 ],
@@ -83,21 +86,28 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
                 width: 200,
                 height: 50,
                 child: ElevatedButton(
-                    style: ElevatedButton.styleFrom(
-                      elevation: 12,
-                      primary: Colors.green[400], //smoothYellow, // background
-                      onPrimary: Colors.black, // foreground
-                    ),
-                    onPressed: _changePin.newPin.text != ''
-                        ? () {
-                            _changePin.newPin.text = '';
-                            _changePin.storeNewPinChest(
-                                context, _newWalletFile);
-                          }
-                        : null,
-                    child: const Text('Confirmer',
-                        style: TextStyle(fontSize: 28))),
+                  style: ElevatedButton.styleFrom(
+                    elevation: 12,
+                    primary: Colors.green[400], //smoothYellow, // background
+                    onPrimary: Colors.black, // foreground
+                  ),
+                  onPressed: _changePin.newPin.text != ''
+                      ? () {
+                          _changePin.newPin.text = '';
+                          _changePin.storeNewPinChest(context, _newWalletFile);
+                          walletProvider.pinCode = _changePin.newPin.text;
+                        }
+                      : null,
+                  child: const Text(
+                    'Confirmer',
+                    style: TextStyle(fontSize: 28),
+                  ),
+                ),
               )
-            ])))));
+            ]),
+          ),
+        ),
+      ),
+    );
   }
 }
diff --git a/lib/screens/myWallets/wallets_home.dart b/lib/screens/myWallets/wallets_home.dart
index 453382ec..26af3ba4 100644
--- a/lib/screens/myWallets/wallets_home.dart
+++ b/lib/screens/myWallets/wallets_home.dart
@@ -63,7 +63,8 @@ class WalletsHome extends StatelessWidget {
           child: !isWalletsExists
               ? const NoKeyChainScreen()
               : _currentChest.isCesium
-                  ? cesiumWalletOptions(context, _currentChest)
+                  ? cesiumWalletOptions(
+                      context, _currentChest, myWalletProvider)
                   : myWalletsTiles(context),
         ),
       ),
diff --git a/packages/dubp_rs/pubspec.lock b/packages/dubp_rs/pubspec.lock
index 98f95626..e6f0b3d9 100644
--- a/packages/dubp_rs/pubspec.lock
+++ b/packages/dubp_rs/pubspec.lock
@@ -7,7 +7,7 @@ packages:
       name: async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.5.0"
+    version: "2.8.1"
   boolean_selector:
     dependency: transitive
     description:
@@ -28,7 +28,7 @@ packages:
       name: charcode
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0"
+    version: "1.3.1"
   clock:
     dependency: transitive
     description:
@@ -108,7 +108,7 @@ packages:
       name: meta
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.0"
+    version: "1.7.0"
   path:
     dependency: transitive
     description:
@@ -127,7 +127,7 @@ packages:
       name: source_span
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.8.0"
+    version: "1.8.1"
   stack_trace:
     dependency: transitive
     description:
@@ -169,7 +169,7 @@ packages:
       name: test_api
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.2.19"
+    version: "0.4.2"
   typed_data:
     dependency: transitive
     description:
diff --git a/pubspec.yaml b/pubspec.yaml
index df555200..7de7c38d 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -5,7 +5,7 @@ description: Pay with G1.
 # pub.dev using `pub publish`. This is preferred for private packages.
 publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 
-version: 0.0.2+10
+version: 0.0.2+11
 
 environment:
   sdk: ">=2.7.0 <3.0.0"
-- 
GitLab