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/models/my_wallets.dart';
|
||||
import 'package:gecko/models/wallet_data.dart';
|
||||
import 'package:gecko/screens/common_elements.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/onBoarding/1.dart';
|
||||
import 'package:carousel_slider/carousel_slider.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
|
@ -137,7 +136,9 @@ class _ChooseChestState extends State<ChooseChest> {
|
|||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
FaderTransition(page: OnboardingStepOne(), isFast: false),
|
||||
MaterialPageRoute(builder: (context) {
|
||||
return GenerateFastChestScreen();
|
||||
}),
|
||||
);
|
||||
},
|
||||
child: SizedBox(
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.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:flutter/material.dart';
|
||||
import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
|
||||
import 'package:printing/printing.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:super_tooltip/super_tooltip.dart';
|
||||
|
||||
// ignore: must_be_immutable
|
||||
class GenerateWalletsScreen extends StatelessWidget {
|
||||
class GenerateFastChestScreen extends StatelessWidget {
|
||||
SuperTooltip tooltip;
|
||||
bool hasError = false;
|
||||
String validPin = 'NO PIN';
|
||||
|
@ -18,7 +20,7 @@ class GenerateWalletsScreen extends StatelessWidget {
|
|||
final GlobalKey _toolTipSentence = GlobalKey();
|
||||
final GlobalKey _toolTipSecret = GlobalKey();
|
||||
|
||||
GenerateWalletsScreen({Key key}) : super(key: key);
|
||||
GenerateFastChestScreen({Key key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -27,6 +29,8 @@ class GenerateWalletsScreen extends StatelessWidget {
|
|||
Provider.of<GenerateWalletsProvider>(context);
|
||||
_generateWalletProvider.generateMnemonic();
|
||||
|
||||
MyWalletsProvider _myWalletClass = MyWalletsProvider();
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
|
@ -102,10 +106,10 @@ class GenerateWalletsScreen extends StatelessWidget {
|
|||
onPrimary: Colors.black, // foreground
|
||||
),
|
||||
onPressed: _generateWalletProvider.walletIsGenerated
|
||||
? () {
|
||||
? () async {
|
||||
_generateWalletProvider.nbrWord =
|
||||
_generateWalletProvider.getRandomInt();
|
||||
Navigator.push(
|
||||
await Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) {
|
||||
return ConfirmStoreWallet(
|
||||
|
@ -116,6 +120,16 @@ class GenerateWalletsScreen extends StatelessWidget {
|
|||
.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,
|
||||
child: const Text('Enregistrer ce trousseau',
|
||||
|
|
|
@ -287,7 +287,7 @@ class WalletOptions extends StatelessWidget {
|
|||
Image.asset(
|
||||
'assets/walletOptions/key.png',
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
const SizedBox(width: 20),
|
||||
Text("${shortPubkey.split(':')[0]}:",
|
||||
style: const TextStyle(
|
||||
fontSize: 22,
|
||||
|
@ -341,7 +341,7 @@ class WalletOptions extends StatelessWidget {
|
|||
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)),
|
||||
|
@ -368,7 +368,7 @@ class WalletOptions extends StatelessWidget {
|
|||
child: Image.asset(
|
||||
'assets/walletOptions/android-checkmark.png',
|
||||
)),
|
||||
const SizedBox(width: 12),
|
||||
const SizedBox(width: 22),
|
||||
Text(
|
||||
_walletOptions.isDefaultWallet
|
||||
? 'Ce portefeuille est celui par defaut'
|
||||
|
@ -400,7 +400,7 @@ class WalletOptions extends StatelessWidget {
|
|||
Image.asset(
|
||||
'assets/walletOptions/trash.png',
|
||||
),
|
||||
const SizedBox(width: 14),
|
||||
const SizedBox(width: 24),
|
||||
const Text('Supprimer ce portefeuille',
|
||||
style: TextStyle(
|
||||
fontSize: 20, color: Color(0xffD80000))),
|
||||
|
|
|
@ -8,6 +8,7 @@ import 'package:gecko/models/wallet_options.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/screens/common_elements.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/wallet_options.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: [
|
||||
const SizedBox(height: 50),
|
||||
SizedBox(
|
||||
|
@ -92,7 +94,12 @@ class WalletsHome extends StatelessWidget {
|
|||
primary: floattingYellow, // background
|
||||
onPrimary: Colors.black, // foreground
|
||||
),
|
||||
onPressed: () => null,
|
||||
onPressed: () => Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) {
|
||||
return ChestOptions(walletProvider: _myWalletProvider);
|
||||
}),
|
||||
),
|
||||
label: const Text(
|
||||
" Paramétrer ce coffre",
|
||||
style: TextStyle(
|
||||
|
@ -286,7 +293,7 @@ class WalletsHome extends StatelessWidget {
|
|||
// ))
|
||||
]),
|
||||
// SliverToBoxAdapter(child: Spacer()),
|
||||
SliverToBoxAdapter(child: chestOptions(context)),
|
||||
SliverToBoxAdapter(child: chestOptions(context, _myWalletProvider)),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
@ -74,11 +74,9 @@ class SettingsScreen extends StatelessWidget {
|
|||
onPressed: () => Navigator.push(
|
||||
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",
|
||||
style: TextStyle(fontSize: 16)))),
|
||||
Expanded(
|
||||
|
|
Loading…
Reference in New Issue