New import Chest screen
This commit is contained in:
parent
b24211e43d
commit
fbff8a6a91
File diff suppressed because it is too large
Load Diff
|
@ -5,6 +5,7 @@ import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
|
import 'package:gecko/models/bip39_words.dart';
|
||||||
import 'package:gecko/models/chest_data.dart';
|
import 'package:gecko/models/chest_data.dart';
|
||||||
import 'package:gecko/models/wallet_data.dart';
|
import 'package:gecko/models/wallet_data.dart';
|
||||||
import 'package:pdf/pdf.dart';
|
import 'package:pdf/pdf.dart';
|
||||||
|
@ -39,6 +40,21 @@ class GenerateWalletsProvider with ChangeNotifier {
|
||||||
bool canImport = false;
|
bool canImport = false;
|
||||||
bool isPinChanged = false;
|
bool isPinChanged = false;
|
||||||
|
|
||||||
|
// Import Chest
|
||||||
|
TextEditingController cellController0 = TextEditingController();
|
||||||
|
TextEditingController cellController1 = TextEditingController();
|
||||||
|
TextEditingController cellController2 = TextEditingController();
|
||||||
|
TextEditingController cellController3 = TextEditingController();
|
||||||
|
TextEditingController cellController4 = TextEditingController();
|
||||||
|
TextEditingController cellController5 = TextEditingController();
|
||||||
|
TextEditingController cellController6 = TextEditingController();
|
||||||
|
TextEditingController cellController7 = TextEditingController();
|
||||||
|
TextEditingController cellController8 = TextEditingController();
|
||||||
|
TextEditingController cellController9 = TextEditingController();
|
||||||
|
TextEditingController cellController10 = TextEditingController();
|
||||||
|
TextEditingController cellController11 = TextEditingController();
|
||||||
|
bool isFirstTimeSentenceComplete = true;
|
||||||
|
|
||||||
Future storeHDWChest(
|
Future storeHDWChest(
|
||||||
NewWallet _wallet, String _name, BuildContext context) async {
|
NewWallet _wallet, String _name, BuildContext context) async {
|
||||||
int chestNumber = 0;
|
int chestNumber = 0;
|
||||||
|
@ -140,7 +156,7 @@ class GenerateWalletsProvider with ChangeNotifier {
|
||||||
Future<String> generateMnemonic() async {
|
Future<String> generateMnemonic() async {
|
||||||
try {
|
try {
|
||||||
generatedMnemonic = await DubpRust.genMnemonic(language: Language.french);
|
generatedMnemonic = await DubpRust.genMnemonic(language: Language.french);
|
||||||
actualWallet = await generateWallet(generatedMnemonic);
|
actualWallet = await generateWallet(generatedMnemonic, isImport: false);
|
||||||
walletIsGenerated = true;
|
walletIsGenerated = true;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log.e(e);
|
log.e(e);
|
||||||
|
@ -148,7 +164,8 @@ class GenerateWalletsProvider with ChangeNotifier {
|
||||||
return generatedMnemonic;
|
return generatedMnemonic;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<NewWallet> generateWallet(generatedMnemonic) async {
|
Future<NewWallet> generateWallet(String generatedMnemonic,
|
||||||
|
{@required bool isImport}) async {
|
||||||
try {
|
try {
|
||||||
actualWallet = await DubpRust.genWalletFromMnemonic(
|
actualWallet = await DubpRust.genWalletFromMnemonic(
|
||||||
language: Language.french,
|
language: Language.french,
|
||||||
|
@ -159,8 +176,10 @@ class GenerateWalletsProvider with ChangeNotifier {
|
||||||
log.e(e);
|
log.e(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
mnemonicController.text = generatedMnemonic;
|
if (!isImport) {
|
||||||
pin.text = actualWallet.pin;
|
mnemonicController.text = generatedMnemonic;
|
||||||
|
pin.text = actualWallet.pin;
|
||||||
|
}
|
||||||
// notifyListeners();
|
// notifyListeners();
|
||||||
|
|
||||||
return actualWallet;
|
return actualWallet;
|
||||||
|
@ -288,15 +307,9 @@ class GenerateWalletsProvider with ChangeNotifier {
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
void resetImportView() {
|
void resetCesiumImportView() {
|
||||||
cesiumID.text = '';
|
cesiumID.text = cesiumPWD.text = cesiumPubkey.text = pin.text = '';
|
||||||
cesiumPWD.text = '';
|
canImport = isPinChanged = isCesiumIDVisible = isCesiumPWDVisible = false;
|
||||||
cesiumPubkey.text = '';
|
|
||||||
pin.text = '';
|
|
||||||
canImport = false;
|
|
||||||
isPinChanged = false;
|
|
||||||
isCesiumIDVisible = false;
|
|
||||||
isCesiumPWDVisible = false;
|
|
||||||
actualWallet = null;
|
actualWallet = null;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
@ -315,6 +328,78 @@ class GenerateWalletsProvider with ChangeNotifier {
|
||||||
return _wordsList;
|
return _wordsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isBipWord(String word) {
|
||||||
|
notifyListeners();
|
||||||
|
return bip39Words.contains(word);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isBipWordsList(List words) {
|
||||||
|
bool isValid = true;
|
||||||
|
for (String word in words) {
|
||||||
|
if (!bip39Words.contains(word)) {
|
||||||
|
isValid = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return isValid;
|
||||||
|
}
|
||||||
|
|
||||||
|
void resetImportView() {
|
||||||
|
cellController0.text = cellController1.text = cellController2.text =
|
||||||
|
cellController3.text = cellController4.text = cellController5.text =
|
||||||
|
cellController6.text = cellController7.text = cellController8.text =
|
||||||
|
cellController9.text =
|
||||||
|
cellController10.text = cellController11.text = '';
|
||||||
|
isFirstTimeSentenceComplete = true;
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isSentenceComplete(BuildContext context) {
|
||||||
|
if (isBipWordsList(
|
||||||
|
[
|
||||||
|
cellController0.text,
|
||||||
|
cellController1.text,
|
||||||
|
cellController2.text,
|
||||||
|
cellController3.text,
|
||||||
|
cellController4.text,
|
||||||
|
cellController5.text,
|
||||||
|
cellController6.text,
|
||||||
|
cellController7.text,
|
||||||
|
cellController8.text,
|
||||||
|
cellController9.text,
|
||||||
|
cellController10.text,
|
||||||
|
cellController11.text
|
||||||
|
],
|
||||||
|
)) {
|
||||||
|
if (isFirstTimeSentenceComplete) {
|
||||||
|
FocusScope.of(context).unfocus();
|
||||||
|
}
|
||||||
|
isFirstTimeSentenceComplete = false;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<bool> isSentenceValid() async {
|
||||||
|
String inputMnemonic =
|
||||||
|
'${cellController0.text} ${cellController1.text} ${cellController2.text} ${cellController3.text} ${cellController4.text} ${cellController5.text} ${cellController6.text} ${cellController7.text} ${cellController8.text} ${cellController9.text} ${cellController10.text} ${cellController11.text}';
|
||||||
|
//TODO: Fix bad accent management
|
||||||
|
|
||||||
|
// inputMnemonic = inputMnemonic.replaceAll('é', 'eM-LM-^A');
|
||||||
|
// inputMnemonic = inputMnemonic.replaceAll('è', 'eM-LM-^@');
|
||||||
|
|
||||||
|
NewWallet generatedWallet =
|
||||||
|
await generateWallet(inputMnemonic, isImport: true);
|
||||||
|
|
||||||
|
log.d(inputMnemonic);
|
||||||
|
|
||||||
|
if (generatedWallet == null) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void reloadBuild() {
|
void reloadBuild() {
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,6 +71,7 @@ class MyWalletsProvider with ChangeNotifier {
|
||||||
await walletBox.clear();
|
await walletBox.clear();
|
||||||
await chestBox.clear();
|
await chestBox.clear();
|
||||||
await configBox.delete('defaultWallet');
|
await configBox.delete('defaultWallet');
|
||||||
|
rebuildWidget();
|
||||||
|
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/models/home.dart';
|
import 'package:gecko/models/home.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/myWallets/restore_chest.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:gecko/screens/onBoarding/1.dart';
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
@ -484,7 +485,14 @@ Widget welcomeHome(context) {
|
||||||
style: OutlinedButton.styleFrom(
|
style: OutlinedButton.styleFrom(
|
||||||
side: BorderSide(width: 4, color: orangeC)),
|
side: BorderSide(width: 4, color: orangeC)),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(context, null);
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) {
|
||||||
|
return const RestoreChest();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
"Restaurer mes portefeuilles",
|
"Restaurer mes portefeuilles",
|
||||||
|
|
|
@ -34,17 +34,18 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
resizeToAvoidBottomInset: false,
|
resizeToAvoidBottomInset: false,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
toolbarHeight: 60 * ratio,
|
toolbarHeight: 60 * ratio,
|
||||||
leading: IconButton(
|
leading: IconButton(
|
||||||
icon: const Icon(Icons.arrow_back, color: Colors.black),
|
icon: const Icon(Icons.arrow_back, color: Colors.black),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
_changePin.newPin.text = '';
|
_changePin.newPin.text = '';
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
}),
|
}),
|
||||||
title: SizedBox(
|
title: SizedBox(
|
||||||
height: 22,
|
height: 22,
|
||||||
child: Text(walletName),
|
child: Text(walletName),
|
||||||
)),
|
),
|
||||||
|
),
|
||||||
body: Center(
|
body: Center(
|
||||||
child: SafeArea(
|
child: SafeArea(
|
||||||
child: Column(children: <Widget>[
|
child: Column(children: <Widget>[
|
||||||
|
|
|
@ -24,7 +24,7 @@ class ImportWalletScreen extends StatelessWidget {
|
||||||
|
|
||||||
return WillPopScope(
|
return WillPopScope(
|
||||||
onWillPop: () {
|
onWillPop: () {
|
||||||
_generateWalletProvider.resetImportView();
|
_generateWalletProvider.resetCesiumImportView();
|
||||||
return Future<bool>.value(true);
|
return Future<bool>.value(true);
|
||||||
},
|
},
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
|
@ -33,7 +33,7 @@ class ImportWalletScreen extends StatelessWidget {
|
||||||
leading: IconButton(
|
leading: IconButton(
|
||||||
icon: const Icon(Icons.arrow_back, color: Colors.black),
|
icon: const Icon(Icons.arrow_back, color: Colors.black),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
_generateWalletProvider.resetImportView();
|
_generateWalletProvider.resetCesiumImportView();
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
}),
|
}),
|
||||||
title: const SizedBox(
|
title: const SizedBox(
|
||||||
|
@ -171,7 +171,8 @@ class ImportWalletScreen extends StatelessWidget {
|
||||||
.importCesiumWallet()
|
.importCesiumWallet()
|
||||||
.then((value) {
|
.then((value) {
|
||||||
_myWalletProvider.rebuildWidget();
|
_myWalletProvider.rebuildWidget();
|
||||||
_generateWalletProvider.resetImportView();
|
_generateWalletProvider
|
||||||
|
.resetCesiumImportView();
|
||||||
Navigator.popUntil(
|
Navigator.popUntil(
|
||||||
context,
|
context,
|
||||||
ModalRoute.withName('/'),
|
ModalRoute.withName('/'),
|
|
@ -0,0 +1,182 @@
|
||||||
|
import 'package:bubble/bubble.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:gecko/globals.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:gecko/models/generate_wallets.dart';
|
||||||
|
import 'package:gecko/screens/common_elements.dart';
|
||||||
|
import 'package:gecko/screens/onBoarding/11.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
// import 'package:gecko/models/home.dart';
|
||||||
|
// import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class RestoreChest extends StatelessWidget {
|
||||||
|
const RestoreChest({Key key}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
||||||
|
GenerateWalletsProvider generateWalletProvider =
|
||||||
|
Provider.of<GenerateWalletsProvider>(context, listen: false);
|
||||||
|
|
||||||
|
return WillPopScope(
|
||||||
|
onWillPop: () {
|
||||||
|
generateWalletProvider.resetImportView();
|
||||||
|
return Future<bool>.value(true);
|
||||||
|
},
|
||||||
|
child: Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
toolbarHeight: 60 * ratio,
|
||||||
|
leading: IconButton(
|
||||||
|
icon: const Icon(Icons.arrow_back, color: Colors.black),
|
||||||
|
onPressed: () {
|
||||||
|
generateWalletProvider.resetImportView();
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
}),
|
||||||
|
title: const SizedBox(
|
||||||
|
height: 22,
|
||||||
|
child: Text('Restaurer un coffre'),
|
||||||
|
)),
|
||||||
|
body: SafeArea(
|
||||||
|
child: Column(children: <Widget>[
|
||||||
|
SizedBox(height: isTall ? 30 : 15),
|
||||||
|
bubbleSpeak(
|
||||||
|
'Pour restaurer vos portefeuilles Gecko, rentrez dans les champs ci-dessous les 12 mots qui constituent votre phrase de restauration :'),
|
||||||
|
SizedBox(height: isTall ? 30 : 15),
|
||||||
|
Column(children: <Widget>[
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
|
children: <Widget>[
|
||||||
|
arrayCell(context, generateWalletProvider.cellController0),
|
||||||
|
arrayCell(context, generateWalletProvider.cellController1),
|
||||||
|
arrayCell(context, generateWalletProvider.cellController2),
|
||||||
|
arrayCell(context, generateWalletProvider.cellController3),
|
||||||
|
]),
|
||||||
|
const SizedBox(height: 15),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
|
children: <Widget>[
|
||||||
|
arrayCell(context, generateWalletProvider.cellController4),
|
||||||
|
arrayCell(context, generateWalletProvider.cellController5),
|
||||||
|
arrayCell(context, generateWalletProvider.cellController6),
|
||||||
|
arrayCell(context, generateWalletProvider.cellController7),
|
||||||
|
]),
|
||||||
|
const SizedBox(height: 15),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
|
children: <Widget>[
|
||||||
|
arrayCell(context, generateWalletProvider.cellController8),
|
||||||
|
arrayCell(context, generateWalletProvider.cellController9),
|
||||||
|
arrayCell(context, generateWalletProvider.cellController10),
|
||||||
|
arrayCell(context, generateWalletProvider.cellController11),
|
||||||
|
]),
|
||||||
|
]),
|
||||||
|
// const Spacer(),
|
||||||
|
if (generateWalletProvider.isSentenceComplete(context))
|
||||||
|
Expanded(
|
||||||
|
child: Align(
|
||||||
|
alignment: Alignment.center,
|
||||||
|
child: SizedBox(
|
||||||
|
width: 410,
|
||||||
|
height: 70,
|
||||||
|
child: ElevatedButton(
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
elevation: 4,
|
||||||
|
primary: orangeC, // background
|
||||||
|
onPrimary: Colors.white, // foreground
|
||||||
|
),
|
||||||
|
onPressed: () async {
|
||||||
|
if (await generateWalletProvider.isSentenceValid()) {
|
||||||
|
generateWalletProvider.resetImportView();
|
||||||
|
await Navigator.push(
|
||||||
|
context,
|
||||||
|
FaderTransition(
|
||||||
|
page: OnboardingStepThirteen(), isFast: true),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
await badMnemonicPopup(context);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
child: const Text(
|
||||||
|
'Restaurer ce coffre',
|
||||||
|
style:
|
||||||
|
TextStyle(fontSize: 24, fontWeight: FontWeight.w600),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// SizedBox(height: isTall ? 80 : 80),
|
||||||
|
))
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget bubbleSpeak(String text) {
|
||||||
|
return Bubble(
|
||||||
|
margin: const BubbleEdges.symmetric(horizontal: 20),
|
||||||
|
padding: BubbleEdges.all(isTall ? 25 : 15),
|
||||||
|
borderWidth: 1,
|
||||||
|
borderColor: Colors.black,
|
||||||
|
radius: Radius.zero,
|
||||||
|
color: Colors.white,
|
||||||
|
child: Text(
|
||||||
|
text,
|
||||||
|
key: const Key('importText'),
|
||||||
|
textAlign: TextAlign.justify,
|
||||||
|
style: const TextStyle(
|
||||||
|
color: Colors.black, fontSize: 21, fontWeight: FontWeight.w400),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget arrayCell(BuildContext context, TextEditingController cellCtl) {
|
||||||
|
GenerateWalletsProvider generateWalletProvider =
|
||||||
|
Provider.of<GenerateWalletsProvider>(context);
|
||||||
|
|
||||||
|
return Container(
|
||||||
|
width: 102,
|
||||||
|
height: 40 * ratio,
|
||||||
|
child: TextField(
|
||||||
|
autofocus: true,
|
||||||
|
controller: cellCtl,
|
||||||
|
textInputAction: TextInputAction.next,
|
||||||
|
onChanged: (v) {
|
||||||
|
bool isValid = generateWalletProvider.isBipWord(v);
|
||||||
|
|
||||||
|
if (isValid && generateWalletProvider.cellController11.text.isEmpty) {
|
||||||
|
FocusScope.of(context).nextFocus();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: const TextStyle(fontSize: 20),
|
||||||
|
),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border.all(color: Colors.grey),
|
||||||
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.circular(3),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<bool> badMnemonicPopup(BuildContext context) async {
|
||||||
|
return showDialog<bool>(
|
||||||
|
context: context,
|
||||||
|
barrierDismissible: true, // user must tap button!
|
||||||
|
builder: (BuildContext context) {
|
||||||
|
return AlertDialog(
|
||||||
|
title: const Text('Phrase incorrecte'),
|
||||||
|
content: const Text(
|
||||||
|
'Votre phrase de restauration semble incorrecte, veuillez la corriger.'),
|
||||||
|
actions: <Widget>[
|
||||||
|
TextButton(
|
||||||
|
child: const Text("OK"),
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.pop(context);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,7 +11,6 @@ import 'package:gecko/screens/myWallets/cesium_wallet_options.dart';
|
||||||
import 'package:gecko/screens/myWallets/chest_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:graphql_flutter/graphql_flutter.dart';
|
import 'package:graphql_flutter/graphql_flutter.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
@ -28,13 +27,10 @@ class WalletsHome extends StatelessWidget {
|
||||||
|
|
||||||
final int _currentChestNumber = myWalletProvider.getCurrentChest();
|
final int _currentChestNumber = myWalletProvider.getCurrentChest();
|
||||||
final ChestData _currentChest = chestBox.get(_currentChestNumber);
|
final ChestData _currentChest = chestBox.get(_currentChestNumber);
|
||||||
bool isWalletsExists;
|
|
||||||
|
|
||||||
if (!_currentChest.isCesium) {
|
if (!_currentChest.isCesium) {
|
||||||
myWalletProvider.listWallets =
|
myWalletProvider.listWallets =
|
||||||
myWalletProvider.readAllWallets(_currentChestNumber);
|
myWalletProvider.readAllWallets(_currentChestNumber);
|
||||||
}
|
}
|
||||||
isWalletsExists = myWalletProvider.checkIfWalletExist();
|
|
||||||
|
|
||||||
return WillPopScope(
|
return WillPopScope(
|
||||||
onWillPop: () {
|
onWillPop: () {
|
||||||
|
@ -61,12 +57,9 @@ class WalletsHome extends StatelessWidget {
|
||||||
backgroundColor: const Color(0xffFFD58D),
|
backgroundColor: const Color(0xffFFD58D),
|
||||||
),
|
),
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
child: !isWalletsExists
|
child: _currentChest.isCesium
|
||||||
? const NoKeyChainScreen()
|
? cesiumWalletOptions(context, _currentChest, myWalletProvider)
|
||||||
: _currentChest.isCesium
|
: myWalletsTiles(context),
|
||||||
? cesiumWalletOptions(
|
|
||||||
context, _currentChest, myWalletProvider)
|
|
||||||
: myWalletsTiles(context),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/screens/common_elements.dart';
|
import 'package:gecko/screens/common_elements.dart';
|
||||||
import 'package:gecko/screens/myWallets/import_wallet.dart';
|
import 'package:gecko/screens/myWallets/import_cesium_wallet.dart';
|
||||||
import 'package:gecko/screens/onBoarding/1.dart';
|
import 'package:gecko/screens/onBoarding/1.dart';
|
||||||
|
|
||||||
class NoKeyChainScreen extends StatelessWidget {
|
class NoKeyChainScreen extends StatelessWidget {
|
||||||
|
|
|
@ -5,7 +5,7 @@ import 'package:gecko/models/home.dart';
|
||||||
import 'package:gecko/models/my_wallets.dart';
|
import 'package:gecko/models/my_wallets.dart';
|
||||||
import 'package:gecko/screens/myWallets/generate_wallets.dart';
|
import 'package:gecko/screens/myWallets/generate_wallets.dart';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'package:gecko/screens/myWallets/import_wallet.dart';
|
import 'package:gecko/screens/myWallets/import_cesium_wallet.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ description: Pay with G1.
|
||||||
# pub.dev using `pub publish`. This is preferred for private packages.
|
# 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
|
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||||
|
|
||||||
version: 0.0.3+1
|
version: 0.0.3+2
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.7.0 <3.0.0"
|
sdk: ">=2.7.0 <3.0.0"
|
||||||
|
|
Loading…
Reference in New Issue