From 30d5cd2e31f4243ed16723914d86676a6972a72a Mon Sep 17 00:00:00 2001 From: poka Date: Mon, 15 Nov 2021 00:39:40 +0100 Subject: [PATCH] Improve choose_chest and unlocking_wallet screens --- assets/avatars/3.png | Bin 0 -> 6994 bytes lib/models/my_wallets.dart | 2 +- lib/screens/myWallets/choose_chest.dart | 63 ++++++++++++++------ lib/screens/myWallets/unlocking_wallet.dart | 38 +++++++++--- lib/screens/myWallets/wallets_home.dart | 2 +- pubspec.lock | 2 +- pubspec.yaml | 4 +- 7 files changed, 80 insertions(+), 31 deletions(-) create mode 100755 assets/avatars/3.png diff --git a/assets/avatars/3.png b/assets/avatars/3.png new file mode 100755 index 0000000000000000000000000000000000000000..47e563e14283862667587106398567eee52ebd1e GIT binary patch literal 6994 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 createState() { + return _ChooseChestState(); + } +} + // ignore: must_be_immutable -class ChooseChest extends StatelessWidget { +class _ChooseChestState extends State { TextEditingController tplController = TextEditingController(); CarouselController buttonCarouselController = CarouselController(); - - ChooseChest({Key key}) : super(key: key); + int currentChest = configBox.get('currentChest'); @override Widget build(BuildContext context) { @@ -20,8 +30,6 @@ class ChooseChest extends StatelessWidget { MyWalletsProvider _myWalletProvider = Provider.of(context); - int currentChest = configBox.get('currentChest'); - return Scaffold( appBar: AppBar( title: const SizedBox( @@ -30,13 +38,14 @@ class ChooseChest extends StatelessWidget { )), body: SafeArea( child: Column(children: [ - const SizedBox(height: 190), + SizedBox(height: 160 * ratio), CarouselSlider( carouselController: buttonCarouselController, options: CarouselOptions( height: 210, onPageChanged: (index, reason) { currentChest = index; + setState(() {}); }, enableInfiniteScroll: false, initialPage: currentChest, @@ -60,14 +69,29 @@ class ChooseChest extends StatelessWidget { ); }).toList(), ), - Image.asset('assets/chests/vector.png'), - const SizedBox(height: 15), - const Text( - 'Choisir un autre\ncoffre', - textAlign: TextAlign.center, - style: TextStyle(fontSize: 13), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: chestBox.toMap().entries.map((entry) { + return GestureDetector( + onTap: () => + buttonCarouselController.animateToPage(entry.key), + child: Container( + width: 12.0, + height: 12.0, + margin: const EdgeInsets.symmetric( + vertical: 8.0, horizontal: 4.0), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: (Theme.of(context).brightness == Brightness.dark + ? Colors.white + : Colors.black) + .withOpacity( + currentChest == entry.key ? 0.9 : 0.4)), + ), + ); + }).toList(), ), - const SizedBox(height: 80), + SizedBox(height: 80 * ratio), SizedBox( width: 400, height: 70, @@ -78,11 +102,16 @@ class ChooseChest extends StatelessWidget { ), onPressed: () { configBox.put('currentChest', currentChest); + WalletData defaultWallet = _myWalletProvider + .getDefaultWallet(configBox.get('currentChest')); _myWalletProvider.rebuildWidget(); - Navigator.popUntil( - context, - ModalRoute.withName('/mywallets'), - ); + Navigator.pushAndRemoveUntil(context, + MaterialPageRoute(builder: (context) { + return UnlockingWallet( + wallet: defaultWallet, + action: "mywallets", + ); + }), ModalRoute.withName('/')); }, child: Text( 'Ouvrir ce coffre', diff --git a/lib/screens/myWallets/unlocking_wallet.dart b/lib/screens/myWallets/unlocking_wallet.dart index 7e810a2..d06eccf 100644 --- a/lib/screens/myWallets/unlocking_wallet.dart +++ b/lib/screens/myWallets/unlocking_wallet.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:dubp/dubp.dart'; import 'package:flutter/services.dart'; +import 'package:gecko/models/chest_data.dart'; import 'package:gecko/models/history.dart'; import 'package:gecko/models/my_wallets.dart'; import 'package:gecko/models/wallet_data.dart'; @@ -37,6 +38,7 @@ class UnlockingWallet extends StatelessWidget { // log.d("defaultWallet: " + defaultWallet.toString()); final int _pinLenght = _walletOptions.getPinLenght(wallet.number); errorController = StreamController(); + ChestData currentChest = chestBox.get(wallet.chest); return Scaffold( // backgroundColor: Colors.brown[600], @@ -45,15 +47,33 @@ class UnlockingWallet extends StatelessWidget { const SizedBox(height: 20), Expanded( child: Column(children: [ - const SizedBox(height: 150), - const Text( - 'Veuillez tapper votre code secret pour dévérouiller votre portefeuille.', - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 15.0, - color: Colors.black, - fontWeight: FontWeight.w400), - ), + const SizedBox(height: 50), + Row(mainAxisAlignment: MainAxisAlignment.center, children: [ + Image.asset( + 'assets/chests/${currentChest.imageName}', + ), + const SizedBox(width: 5), + SizedBox( + width: 250, + child: Text( + currentChest.name, + textAlign: TextAlign.center, + style: const TextStyle( + fontSize: 25, + color: Colors.black, + fontWeight: FontWeight.w700), + )), + ]), + const SizedBox(height: 50), + const SizedBox( + width: 400, + child: Text( + 'Pour déverrouiller votre coffre, composez votre code secret à l’abri des lézards indiscrets :', + style: TextStyle( + fontSize: 19, + color: Colors.black, + fontWeight: FontWeight.w400), + )), const SizedBox(height: 50), pinForm(context, _pinLenght, wallet.number, wallet.derivation), ]), diff --git a/lib/screens/myWallets/wallets_home.dart b/lib/screens/myWallets/wallets_home.dart index 81b5be9..ed2a036 100644 --- a/lib/screens/myWallets/wallets_home.dart +++ b/lib/screens/myWallets/wallets_home.dart @@ -113,7 +113,7 @@ class WalletsHome extends StatelessWidget { onPressed: () => Navigator.push( context, MaterialPageRoute(builder: (context) { - return ChooseChest(); + return const ChooseChest(); }), ), label: const Text( diff --git a/pubspec.lock b/pubspec.lock index 7ff1640..97d22f2 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -814,7 +814,7 @@ packages: name: pin_code_fields url: "https://pub.dartlang.org" source: hosted - version: "6.1.0" + version: "7.3.0" platform: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index b5a9772..92f56f5 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+7 +version: 0.0.2+8 environment: sdk: ">=2.7.0 <3.0.0" @@ -36,7 +36,7 @@ dependencies: path_provider: ^2.0.3 pdf: ^3.5.0 permission_handler: 8.1.6 - pin_code_fields: ^6.0.2 + pin_code_fields: ^7.3.0 printing: ^5.6.0 provider: ^6.0.0 qrscan: ^0.3.2