Add chest options for standart chests: Can change pin code and delete chest
This commit is contained in:
parent
dfbab5a219
commit
f36529819c
|
@ -0,0 +1,102 @@
|
||||||
|
import 'dart:ui';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:gecko/globals.dart';
|
||||||
|
import 'package:gecko/models/chest_data.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:gecko/models/chest_provider.dart';
|
||||||
|
import 'package:gecko/models/my_wallets.dart';
|
||||||
|
import 'package:gecko/screens/myWallets/change_pin.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class ChestOptions extends StatelessWidget {
|
||||||
|
const ChestOptions({Key keyMyWallets, @required this.walletProvider})
|
||||||
|
: super(key: keyMyWallets);
|
||||||
|
final MyWalletsProvider walletProvider;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
||||||
|
ChestProvider _chestProvider =
|
||||||
|
Provider.of<ChestProvider>(context, listen: false);
|
||||||
|
|
||||||
|
ChestData currentChest = chestBox.get(configBox.get('currentChest'));
|
||||||
|
|
||||||
|
return Scaffold(
|
||||||
|
resizeToAvoidBottomInset: false,
|
||||||
|
appBar: AppBar(
|
||||||
|
toolbarHeight: 60 * ratio,
|
||||||
|
leading: IconButton(
|
||||||
|
icon: const Icon(Icons.arrow_back, color: Colors.black),
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.popUntil(
|
||||||
|
context,
|
||||||
|
ModalRoute.withName('/mywallets'),
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
title: SizedBox(
|
||||||
|
height: 22,
|
||||||
|
child: Text(currentChest.name),
|
||||||
|
)),
|
||||||
|
body: Builder(
|
||||||
|
builder: (ctx) => SafeArea(
|
||||||
|
child: Column(children: <Widget>[
|
||||||
|
SizedBox(height: 30 * ratio),
|
||||||
|
InkWell(
|
||||||
|
key: const Key('changePin'),
|
||||||
|
onTap: () async {
|
||||||
|
// await _chestProvider.changePin(context, cesiumWallet);
|
||||||
|
walletProvider.pinCode = await Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) {
|
||||||
|
return ChangePinScreen(
|
||||||
|
walletName: currentChest.name,
|
||||||
|
walletProvider: walletProvider,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
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: 10 * ratio),
|
||||||
|
InkWell(
|
||||||
|
key: const Key('deleteChest'),
|
||||||
|
onTap: () async {
|
||||||
|
await _chestProvider.deleteChest(context, currentChest);
|
||||||
|
},
|
||||||
|
child: SizedBox(
|
||||||
|
height: 50,
|
||||||
|
child: Row(children: <Widget>[
|
||||||
|
const SizedBox(width: 33),
|
||||||
|
Image.asset(
|
||||||
|
'assets/walletOptions/trash.png',
|
||||||
|
),
|
||||||
|
const SizedBox(width: 24),
|
||||||
|
const Text(
|
||||||
|
'Supprimer ce coffre',
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 20,
|
||||||
|
color: Color(0xffD80000),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,10 +2,9 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/models/my_wallets.dart';
|
import 'package:gecko/models/my_wallets.dart';
|
||||||
import 'package:gecko/models/wallet_data.dart';
|
import 'package:gecko/models/wallet_data.dart';
|
||||||
import 'package:gecko/screens/common_elements.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:gecko/screens/myWallets/generate_wallets.dart';
|
||||||
import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
|
import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
|
||||||
import 'package:gecko/screens/onBoarding/1.dart';
|
|
||||||
import 'package:carousel_slider/carousel_slider.dart';
|
import 'package:carousel_slider/carousel_slider.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
@ -137,7 +136,9 @@ class _ChooseChestState extends State<ChooseChest> {
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
FaderTransition(page: OnboardingStepOne(), isFast: false),
|
MaterialPageRoute(builder: (context) {
|
||||||
|
return GenerateFastChestScreen();
|
||||||
|
}),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/models/generate_wallets.dart';
|
import 'package:gecko/models/generate_wallets.dart';
|
||||||
|
import 'package:gecko/models/my_wallets.dart';
|
||||||
import 'package:gecko/screens/myWallets/confirm_wallet_storage.dart';
|
import 'package:gecko/screens/myWallets/confirm_wallet_storage.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
|
||||||
import 'package:printing/printing.dart';
|
import 'package:printing/printing.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:super_tooltip/super_tooltip.dart';
|
import 'package:super_tooltip/super_tooltip.dart';
|
||||||
|
|
||||||
// ignore: must_be_immutable
|
// ignore: must_be_immutable
|
||||||
class GenerateWalletsScreen extends StatelessWidget {
|
class GenerateFastChestScreen extends StatelessWidget {
|
||||||
SuperTooltip tooltip;
|
SuperTooltip tooltip;
|
||||||
bool hasError = false;
|
bool hasError = false;
|
||||||
String validPin = 'NO PIN';
|
String validPin = 'NO PIN';
|
||||||
|
@ -18,7 +20,7 @@ class GenerateWalletsScreen extends StatelessWidget {
|
||||||
final GlobalKey _toolTipSentence = GlobalKey();
|
final GlobalKey _toolTipSentence = GlobalKey();
|
||||||
final GlobalKey _toolTipSecret = GlobalKey();
|
final GlobalKey _toolTipSecret = GlobalKey();
|
||||||
|
|
||||||
GenerateWalletsScreen({Key key}) : super(key: key);
|
GenerateFastChestScreen({Key key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -27,6 +29,8 @@ class GenerateWalletsScreen extends StatelessWidget {
|
||||||
Provider.of<GenerateWalletsProvider>(context);
|
Provider.of<GenerateWalletsProvider>(context);
|
||||||
_generateWalletProvider.generateMnemonic();
|
_generateWalletProvider.generateMnemonic();
|
||||||
|
|
||||||
|
MyWalletsProvider _myWalletClass = MyWalletsProvider();
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
toolbarHeight: 60 * ratio,
|
toolbarHeight: 60 * ratio,
|
||||||
|
@ -102,10 +106,10 @@ class GenerateWalletsScreen extends StatelessWidget {
|
||||||
onPrimary: Colors.black, // foreground
|
onPrimary: Colors.black, // foreground
|
||||||
),
|
),
|
||||||
onPressed: _generateWalletProvider.walletIsGenerated
|
onPressed: _generateWalletProvider.walletIsGenerated
|
||||||
? () {
|
? () async {
|
||||||
_generateWalletProvider.nbrWord =
|
_generateWalletProvider.nbrWord =
|
||||||
_generateWalletProvider.getRandomInt();
|
_generateWalletProvider.getRandomInt();
|
||||||
Navigator.push(
|
await Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(builder: (context) {
|
MaterialPageRoute(builder: (context) {
|
||||||
return ConfirmStoreWallet(
|
return ConfirmStoreWallet(
|
||||||
|
@ -116,6 +120,16 @@ class GenerateWalletsScreen extends StatelessWidget {
|
||||||
.actualWallet);
|
.actualWallet);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
await Future.delayed(
|
||||||
|
const Duration(milliseconds: 20));
|
||||||
|
await Navigator.pushAndRemoveUntil(context,
|
||||||
|
MaterialPageRoute(builder: (context) {
|
||||||
|
return UnlockingWallet(
|
||||||
|
wallet: _myWalletClass.getDefaultWallet(
|
||||||
|
configBox.get('currentChest')),
|
||||||
|
action: "mywallets",
|
||||||
|
);
|
||||||
|
}), ModalRoute.withName('/'));
|
||||||
}
|
}
|
||||||
: null,
|
: null,
|
||||||
child: const Text('Enregistrer ce trousseau',
|
child: const Text('Enregistrer ce trousseau',
|
||||||
|
|
|
@ -287,7 +287,7 @@ class WalletOptions extends StatelessWidget {
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'assets/walletOptions/key.png',
|
'assets/walletOptions/key.png',
|
||||||
),
|
),
|
||||||
const SizedBox(width: 10),
|
const SizedBox(width: 20),
|
||||||
Text("${shortPubkey.split(':')[0]}:",
|
Text("${shortPubkey.split(':')[0]}:",
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 22,
|
fontSize: 22,
|
||||||
|
@ -341,7 +341,7 @@ class WalletOptions extends StatelessWidget {
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'assets/walletOptions/clock.png',
|
'assets/walletOptions/clock.png',
|
||||||
),
|
),
|
||||||
const SizedBox(width: 12),
|
const SizedBox(width: 22),
|
||||||
const Text('Historique des transactions',
|
const Text('Historique des transactions',
|
||||||
style:
|
style:
|
||||||
TextStyle(fontSize: 20, color: Colors.black)),
|
TextStyle(fontSize: 20, color: Colors.black)),
|
||||||
|
@ -368,7 +368,7 @@ class WalletOptions extends StatelessWidget {
|
||||||
child: Image.asset(
|
child: Image.asset(
|
||||||
'assets/walletOptions/android-checkmark.png',
|
'assets/walletOptions/android-checkmark.png',
|
||||||
)),
|
)),
|
||||||
const SizedBox(width: 12),
|
const SizedBox(width: 22),
|
||||||
Text(
|
Text(
|
||||||
_walletOptions.isDefaultWallet
|
_walletOptions.isDefaultWallet
|
||||||
? 'Ce portefeuille est celui par defaut'
|
? 'Ce portefeuille est celui par defaut'
|
||||||
|
@ -400,7 +400,7 @@ class WalletOptions extends StatelessWidget {
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'assets/walletOptions/trash.png',
|
'assets/walletOptions/trash.png',
|
||||||
),
|
),
|
||||||
const SizedBox(width: 14),
|
const SizedBox(width: 24),
|
||||||
const Text('Supprimer ce portefeuille',
|
const Text('Supprimer ce portefeuille',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 20, color: Color(0xffD80000))),
|
fontSize: 20, color: Color(0xffD80000))),
|
||||||
|
|
|
@ -8,6 +8,7 @@ import 'package:gecko/models/wallet_options.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/screens/common_elements.dart';
|
import 'package:gecko/screens/common_elements.dart';
|
||||||
import 'package:gecko/screens/myWallets/cesium_wallet_options.dart';
|
import 'package:gecko/screens/myWallets/cesium_wallet_options.dart';
|
||||||
|
import 'package:gecko/screens/myWallets/chest_options.dart';
|
||||||
import 'package:gecko/screens/myWallets/choose_chest.dart';
|
import 'package:gecko/screens/myWallets/choose_chest.dart';
|
||||||
import 'package:gecko/screens/myWallets/wallet_options.dart';
|
import 'package:gecko/screens/myWallets/wallet_options.dart';
|
||||||
import 'package:gecko/screens/onBoarding/0_no_keychain_found.dart';
|
import 'package:gecko/screens/onBoarding/0_no_keychain_found.dart';
|
||||||
|
@ -77,7 +78,8 @@ class WalletsHome extends StatelessWidget {
|
||||||
// ]);
|
// ]);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
Widget chestOptions(BuildContext context) {
|
Widget chestOptions(
|
||||||
|
BuildContext context, MyWalletsProvider _myWalletProvider) {
|
||||||
return Column(children: [
|
return Column(children: [
|
||||||
const SizedBox(height: 50),
|
const SizedBox(height: 50),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
|
@ -92,7 +94,12 @@ class WalletsHome extends StatelessWidget {
|
||||||
primary: floattingYellow, // background
|
primary: floattingYellow, // background
|
||||||
onPrimary: Colors.black, // foreground
|
onPrimary: Colors.black, // foreground
|
||||||
),
|
),
|
||||||
onPressed: () => null,
|
onPressed: () => Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(builder: (context) {
|
||||||
|
return ChestOptions(walletProvider: _myWalletProvider);
|
||||||
|
}),
|
||||||
|
),
|
||||||
label: const Text(
|
label: const Text(
|
||||||
" Paramétrer ce coffre",
|
" Paramétrer ce coffre",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
|
@ -286,7 +293,7 @@ class WalletsHome extends StatelessWidget {
|
||||||
// ))
|
// ))
|
||||||
]),
|
]),
|
||||||
// SliverToBoxAdapter(child: Spacer()),
|
// SliverToBoxAdapter(child: Spacer()),
|
||||||
SliverToBoxAdapter(child: chestOptions(context)),
|
SliverToBoxAdapter(child: chestOptions(context, _myWalletProvider)),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -74,11 +74,9 @@ class SettingsScreen extends StatelessWidget {
|
||||||
onPressed: () => Navigator.push(
|
onPressed: () => Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(builder: (context) {
|
MaterialPageRoute(builder: (context) {
|
||||||
return GenerateWalletsScreen();
|
return GenerateFastChestScreen();
|
||||||
}),
|
}),
|
||||||
).then((value) => {
|
),
|
||||||
if (value == true) {Navigator.pop(context)}
|
|
||||||
}),
|
|
||||||
child: const Text("Générer un nouveau trousseau",
|
child: const Text("Générer un nouveau trousseau",
|
||||||
style: TextStyle(fontSize: 16)))),
|
style: TextStyle(fontSize: 16)))),
|
||||||
Expanded(
|
Expanded(
|
||||||
|
|
Loading…
Reference in New Issue