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