diff --git a/assets/images/2.0x/china.png b/assets/images/2.0x/china.png new file mode 100644 index 000000000..d199532ee Binary files /dev/null and b/assets/images/2.0x/china.png differ diff --git a/assets/images/2.0x/germany.png b/assets/images/2.0x/germany.png new file mode 100644 index 000000000..e2d0b90dd Binary files /dev/null and b/assets/images/2.0x/germany.png differ diff --git a/assets/images/2.0x/holland.png b/assets/images/2.0x/holland.png new file mode 100644 index 000000000..5934a2332 Binary files /dev/null and b/assets/images/2.0x/holland.png differ diff --git a/assets/images/2.0x/india.png b/assets/images/2.0x/india.png new file mode 100644 index 000000000..af1e05656 Binary files /dev/null and b/assets/images/2.0x/india.png differ diff --git a/assets/images/2.0x/japan.png b/assets/images/2.0x/japan.png new file mode 100644 index 000000000..ba2fac68a Binary files /dev/null and b/assets/images/2.0x/japan.png differ diff --git a/assets/images/2.0x/poland.png b/assets/images/2.0x/poland.png new file mode 100644 index 000000000..30e2d4c76 Binary files /dev/null and b/assets/images/2.0x/poland.png differ diff --git a/assets/images/2.0x/portugal.png b/assets/images/2.0x/portugal.png new file mode 100644 index 000000000..08928da3e Binary files /dev/null and b/assets/images/2.0x/portugal.png differ diff --git a/assets/images/2.0x/russia.png b/assets/images/2.0x/russia.png new file mode 100644 index 000000000..c72a0dfe4 Binary files /dev/null and b/assets/images/2.0x/russia.png differ diff --git a/assets/images/2.0x/south_korea.png b/assets/images/2.0x/south_korea.png new file mode 100644 index 000000000..93aca42e8 Binary files /dev/null and b/assets/images/2.0x/south_korea.png differ diff --git a/assets/images/2.0x/spain.png b/assets/images/2.0x/spain.png new file mode 100644 index 000000000..e1458506e Binary files /dev/null and b/assets/images/2.0x/spain.png differ diff --git a/assets/images/2.0x/usa.png b/assets/images/2.0x/usa.png new file mode 100644 index 000000000..5517c9e81 Binary files /dev/null and b/assets/images/2.0x/usa.png differ diff --git a/assets/images/3.0x/china.png b/assets/images/3.0x/china.png new file mode 100644 index 000000000..fd0a75372 Binary files /dev/null and b/assets/images/3.0x/china.png differ diff --git a/assets/images/3.0x/germany.png b/assets/images/3.0x/germany.png new file mode 100644 index 000000000..c01bacae9 Binary files /dev/null and b/assets/images/3.0x/germany.png differ diff --git a/assets/images/3.0x/holland.png b/assets/images/3.0x/holland.png new file mode 100644 index 000000000..14b47e1d6 Binary files /dev/null and b/assets/images/3.0x/holland.png differ diff --git a/assets/images/3.0x/india.png b/assets/images/3.0x/india.png new file mode 100644 index 000000000..3d80e2665 Binary files /dev/null and b/assets/images/3.0x/india.png differ diff --git a/assets/images/3.0x/japan.png b/assets/images/3.0x/japan.png new file mode 100644 index 000000000..9a9b487a2 Binary files /dev/null and b/assets/images/3.0x/japan.png differ diff --git a/assets/images/3.0x/poland.png b/assets/images/3.0x/poland.png new file mode 100644 index 000000000..a345e23a5 Binary files /dev/null and b/assets/images/3.0x/poland.png differ diff --git a/assets/images/3.0x/portugal.png b/assets/images/3.0x/portugal.png new file mode 100644 index 000000000..0f2840e67 Binary files /dev/null and b/assets/images/3.0x/portugal.png differ diff --git a/assets/images/3.0x/russia.png b/assets/images/3.0x/russia.png new file mode 100644 index 000000000..772606783 Binary files /dev/null and b/assets/images/3.0x/russia.png differ diff --git a/assets/images/3.0x/south_korea.png b/assets/images/3.0x/south_korea.png new file mode 100644 index 000000000..3e0c889d5 Binary files /dev/null and b/assets/images/3.0x/south_korea.png differ diff --git a/assets/images/3.0x/spain.png b/assets/images/3.0x/spain.png new file mode 100644 index 000000000..cf530865d Binary files /dev/null and b/assets/images/3.0x/spain.png differ diff --git a/assets/images/3.0x/usa.png b/assets/images/3.0x/usa.png new file mode 100644 index 000000000..628094f0d Binary files /dev/null and b/assets/images/3.0x/usa.png differ diff --git a/assets/images/china.png b/assets/images/china.png new file mode 100644 index 000000000..0771ff1e0 Binary files /dev/null and b/assets/images/china.png differ diff --git a/assets/images/germany.png b/assets/images/germany.png new file mode 100644 index 000000000..2dc720303 Binary files /dev/null and b/assets/images/germany.png differ diff --git a/assets/images/holland.png b/assets/images/holland.png new file mode 100644 index 000000000..e753b98cf Binary files /dev/null and b/assets/images/holland.png differ diff --git a/assets/images/india.png b/assets/images/india.png new file mode 100644 index 000000000..e6002f546 Binary files /dev/null and b/assets/images/india.png differ diff --git a/assets/images/japan.png b/assets/images/japan.png new file mode 100644 index 000000000..2295c0dfa Binary files /dev/null and b/assets/images/japan.png differ diff --git a/assets/images/poland.png b/assets/images/poland.png new file mode 100644 index 000000000..fc8f2e163 Binary files /dev/null and b/assets/images/poland.png differ diff --git a/assets/images/portugal.png b/assets/images/portugal.png new file mode 100644 index 000000000..d0f1a4917 Binary files /dev/null and b/assets/images/portugal.png differ diff --git a/assets/images/russia.png b/assets/images/russia.png new file mode 100644 index 000000000..8b4752cb7 Binary files /dev/null and b/assets/images/russia.png differ diff --git a/assets/images/south_korea.png b/assets/images/south_korea.png new file mode 100644 index 000000000..49e16e484 Binary files /dev/null and b/assets/images/south_korea.png differ diff --git a/assets/images/spain.png b/assets/images/spain.png new file mode 100644 index 000000000..6b806b016 Binary files /dev/null and b/assets/images/spain.png differ diff --git a/assets/images/usa.png b/assets/images/usa.png new file mode 100644 index 000000000..d67d3e2b4 Binary files /dev/null and b/assets/images/usa.png differ diff --git a/lib/generated/i18n.dart b/lib/generated/i18n.dart index 257ac5b72..ad99172ba 100644 --- a/lib/generated/i18n.dart +++ b/lib/generated/i18n.dart @@ -47,6 +47,7 @@ class S implements WidgetsLocalizations { String get change_currency => "Change Currency"; String get change_exchange_provider => "Change Exchange Provider"; String get change_language => "Change language"; + String get choose_wallet_currency => "Please choose wallet currency:"; String get clear => "Clear"; String get confirm => "Confirm"; String get confirm_sending => "Confirm sending"; @@ -147,8 +148,9 @@ class S implements WidgetsLocalizations { String get restore_wallet_restore_description => "Wallet restore description"; String get save => "Save"; String get saved_the_trade_id => "I've saved the trade ID"; + String get seed_choose => "Choose seed language"; String get seed_language_chinese => "Chinese"; - String get seed_language_choose => "Please choose seed language"; + String get seed_language_choose => "Please choose seed language:"; String get seed_language_dutch => "Dutch"; String get seed_language_english => "English"; String get seed_language_german => "German"; @@ -397,7 +399,7 @@ class $de extends S { @override String get restore_title_from_keys => "Wiederherstellen von Schlüsseln"; @override - String get seed_language_choose => "Bitte wählen Sie die Ausgangssprache"; + String get seed_language_choose => "Bitte wählen Sie die Ausgangssprache:"; @override String get wallet_keys => "Wallet schlüssel"; @override @@ -425,6 +427,8 @@ class $de extends S { @override String get trade_details_pair => "Paar"; @override + String get choose_wallet_currency => "Bitte wählen Sie die Brieftaschenwährung:"; + @override String get confirm => "Bestätigen"; @override String get settings_display_balance_as => "Kontostand anzeigen als"; @@ -647,6 +651,8 @@ class $de extends S { @override String get change_currency => "Währung ändern"; @override + String get seed_choose => "Wählen Sie die Ausgangssprache"; + @override String get transaction_details_amount => "Menge"; @override String get widgets_address => "Adresse"; @@ -971,7 +977,7 @@ class $hi extends S { @override String get restore_title_from_keys => "कुंजी से पुनर्स्थापित करें"; @override - String get seed_language_choose => "कृपया बीज भाषा चुनें"; + String get seed_language_choose => "कृपया बीज भाषा चुनें:"; @override String get wallet_keys => "बटुआ की"; @override @@ -999,6 +1005,8 @@ class $hi extends S { @override String get trade_details_pair => "जोड़ा"; @override + String get choose_wallet_currency => "कृपया बटुआ मुद्रा चुनें:"; + @override String get confirm => "की पुष्टि करें"; @override String get settings_display_balance_as => "के रूप में संतुलन प्रदर्शित करें"; @@ -1221,6 +1229,8 @@ class $hi extends S { @override String get change_currency => "मुद्रा परिवर्तन करें"; @override + String get seed_choose => "बीज भाषा चुनें"; + @override String get transaction_details_amount => "रकम"; @override String get widgets_address => "पता"; @@ -1545,7 +1555,7 @@ class $ru extends S { @override String get restore_title_from_keys => "Восстановить с помощью ключей"; @override - String get seed_language_choose => "Пожалуйста, выберите язык мнемонической фразы"; + String get seed_language_choose => "Пожалуйста, выберите язык мнемонической фразы:"; @override String get wallet_keys => "Ключи кошелька"; @override @@ -1573,6 +1583,8 @@ class $ru extends S { @override String get trade_details_pair => "Пара"; @override + String get choose_wallet_currency => "Пожалуйста, выберите валюту кошелька:"; + @override String get confirm => "Подтвердить"; @override String get settings_display_balance_as => "Отображать баланс как"; @@ -1795,6 +1807,8 @@ class $ru extends S { @override String get change_currency => "Изменить валюту"; @override + String get seed_choose => "Выберите язык мнемонической фразы"; + @override String get transaction_details_amount => "Сумма"; @override String get widgets_address => "Адрес"; @@ -2119,7 +2133,7 @@ class $ko extends S { @override String get restore_title_from_keys => "키에서 복원"; @override - String get seed_language_choose => "종자 언어를 선택하십시오"; + String get seed_language_choose => "종자 언어를 선택하십시오:"; @override String get wallet_keys => "지갑 키"; @override @@ -2147,6 +2161,8 @@ class $ko extends S { @override String get trade_details_pair => "쌍"; @override + String get choose_wallet_currency => "지갑 통화를 선택하십시오:"; + @override String get confirm => "확인"; @override String get settings_display_balance_as => "잔액 표시"; @@ -2369,6 +2385,8 @@ class $ko extends S { @override String get change_currency => "통화 변경"; @override + String get seed_choose => "시드 언어를 선택하십시오"; + @override String get transaction_details_amount => "양"; @override String get widgets_address => "주소"; @@ -2693,7 +2711,7 @@ class $pt extends S { @override String get restore_title_from_keys => "Restaurar a partir de chaves"; @override - String get seed_language_choose => "Por favor, escolha o idioma da semente"; + String get seed_language_choose => "Por favor, escolha o idioma da semente:"; @override String get wallet_keys => "Chaves da carteira"; @override @@ -2721,6 +2739,8 @@ class $pt extends S { @override String get trade_details_pair => "Par"; @override + String get choose_wallet_currency => "Escolha a moeda da carteira:"; + @override String get confirm => "Confirmar"; @override String get settings_display_balance_as => "Saldo a exibir"; @@ -2943,6 +2963,8 @@ class $pt extends S { @override String get change_currency => "Alterar moeda"; @override + String get seed_choose => "Escolha o idioma da semente"; + @override String get transaction_details_amount => "Quantia"; @override String get widgets_address => "Endereço"; @@ -3267,7 +3289,7 @@ class $uk extends S { @override String get restore_title_from_keys => "Відновити за допомогою ключів"; @override - String get seed_language_choose => "Будь ласка, виберіть мову мнемонічної фрази"; + String get seed_language_choose => "Будь ласка, виберіть мову мнемонічної фрази:"; @override String get wallet_keys => "Ключі гаманця"; @override @@ -3295,6 +3317,8 @@ class $uk extends S { @override String get trade_details_pair => "Пара"; @override + String get choose_wallet_currency => "Будь ласка, виберіть валюту гаманця:"; + @override String get confirm => "Підтвердити"; @override String get settings_display_balance_as => "Відображати баланс як"; @@ -3517,6 +3541,8 @@ class $uk extends S { @override String get change_currency => "Змінити валюту"; @override + String get seed_choose => "Виберіть мову мнемонічної фрази"; + @override String get transaction_details_amount => "Сума"; @override String get widgets_address => "Адреса"; @@ -3841,7 +3867,7 @@ class $ja extends S { @override String get restore_title_from_keys => "キーから復元する"; @override - String get seed_language_choose => "シード言語を選択してください"; + String get seed_language_choose => "シード言語を選択してください:"; @override String get wallet_keys => "ウォレットキー"; @override @@ -3869,6 +3895,8 @@ class $ja extends S { @override String get trade_details_pair => "ペア"; @override + String get choose_wallet_currency => "ウォレット通貨を選択してください:"; + @override String get confirm => "確認する"; @override String get settings_display_balance_as => "残高を表示"; @@ -4091,6 +4119,8 @@ class $ja extends S { @override String get change_currency => "通貨を変更する"; @override + String get seed_choose => "シード言語を選択してください"; + @override String get transaction_details_amount => "量"; @override String get widgets_address => "住所"; @@ -4419,7 +4449,7 @@ class $pl extends S { @override String get restore_title_from_keys => "Przywróć z kluczy"; @override - String get seed_language_choose => "Proszę wybrać język początkowy"; + String get seed_language_choose => "Proszę wybrać język początkowy:"; @override String get wallet_keys => "Klucze portfela"; @override @@ -4447,6 +4477,8 @@ class $pl extends S { @override String get trade_details_pair => "Para"; @override + String get choose_wallet_currency => "Wybierz walutę portfela:"; + @override String get confirm => "Potwierdzać"; @override String get settings_display_balance_as => "Wyświetl saldo jako"; @@ -4669,6 +4701,8 @@ class $pl extends S { @override String get change_currency => "Change Currency"; @override + String get seed_choose => "Wybierz język początkowy"; + @override String get transaction_details_amount => "Ilość"; @override String get widgets_address => "Adres"; @@ -4993,7 +5027,7 @@ class $es extends S { @override String get restore_title_from_keys => "De las claves"; @override - String get seed_language_choose => "Por favor elija el idioma semilla"; + String get seed_language_choose => "Por favor elija el idioma semilla:"; @override String get wallet_keys => "Billetera clave"; @override @@ -5021,6 +5055,8 @@ class $es extends S { @override String get trade_details_pair => "Par"; @override + String get choose_wallet_currency => "Por favor, elija la moneda de la billetera:"; + @override String get confirm => "Confirmar"; @override String get settings_display_balance_as => "Mostrar saldo como"; @@ -5243,6 +5279,8 @@ class $es extends S { @override String get change_currency => "Cambiar moneda"; @override + String get seed_choose => "Elige el idioma semilla"; + @override String get transaction_details_amount => "Cantidad"; @override String get widgets_address => "Dirección"; @@ -5567,7 +5605,7 @@ class $nl extends S { @override String get restore_title_from_keys => "Herstel van sleutels"; @override - String get seed_language_choose => "Kies een starttaal"; + String get seed_language_choose => "Kies een starttaal:"; @override String get wallet_keys => "Portemonnee sleutels"; @override @@ -5595,6 +5633,8 @@ class $nl extends S { @override String get trade_details_pair => "Paar"; @override + String get choose_wallet_currency => "Kies een portemonnee-valuta:"; + @override String get confirm => "Bevestigen"; @override String get settings_display_balance_as => "Toon saldo als"; @@ -5817,6 +5857,8 @@ class $nl extends S { @override String get change_currency => "Verander valuta"; @override + String get seed_choose => "Kies een starttaal"; + @override String get transaction_details_amount => "Bedrag"; @override String get widgets_address => "Adres"; @@ -6141,7 +6183,7 @@ class $zh extends S { @override String get restore_title_from_keys => "从密钥还原"; @override - String get seed_language_choose => "請選擇種子語言"; + String get seed_language_choose => "請選擇種子語言:"; @override String get wallet_keys => "钱包钥匙"; @override @@ -6169,6 +6211,8 @@ class $zh extends S { @override String get trade_details_pair => "对"; @override + String get choose_wallet_currency => "請選擇錢包貨幣:"; + @override String get confirm => "确认"; @override String get settings_display_balance_as => "将余额显示为"; @@ -6391,6 +6435,8 @@ class $zh extends S { @override String get change_currency => "更改币种"; @override + String get seed_choose => "選擇種子語言"; + @override String get transaction_details_amount => "量"; @override String get widgets_address => "地址"; diff --git a/lib/src/screens/dashboard/wallet_menu.dart b/lib/src/screens/dashboard/wallet_menu.dart index d3a306c87..e3402bdb9 100644 --- a/lib/src/screens/dashboard/wallet_menu.dart +++ b/lib/src/screens/dashboard/wallet_menu.dart @@ -86,25 +86,6 @@ class WalletMenu { }, reconnectActionRight: () => Navigator.of(context).pop() ); - - /*AlertDialog( - title: Text( - S.of(context).reconnection, - textAlign: TextAlign.center, - ), - content: Text(S.of(context).reconnect_alert_text), - actions: [ - FlatButton( - onPressed: () => Navigator.of(context).pop(), - child: Text(S.of(context).cancel)), - FlatButton( - onPressed: () { - walletStore.reconnect(); - Navigator.of(context).pop(); - }, - child: Text(S.of(context).ok)) - ], - );*/ }); } } diff --git a/lib/src/screens/new_wallet/new_wallet_page.dart b/lib/src/screens/new_wallet/new_wallet_page.dart index fd59636eb..eeeb6ce5d 100644 --- a/lib/src/screens/new_wallet/new_wallet_page.dart +++ b/lib/src/screens/new_wallet/new_wallet_page.dart @@ -15,6 +15,8 @@ import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; import 'package:cake_wallet/palette.dart'; import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart'; import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart'; +import 'package:cake_wallet/src/screens/seed_language/widgets/seed_language_picker.dart'; +import 'package:cake_wallet/src/screens/new_wallet/widgets/wallet_creation_dialog.dart'; class NewWalletPage extends BasePage { NewWalletPage( @@ -44,40 +46,10 @@ class WalletNameForm extends StatefulWidget { class _WalletNameFormState extends State { static const aspectRatioImage = 1.22; - final List seedLocales = [ - S.current.seed_language_english, - S.current.seed_language_chinese, - S.current.seed_language_dutch, - S.current.seed_language_german, - S.current.seed_language_japanese, - S.current.seed_language_portuguese, - S.current.seed_language_russian, - S.current.seed_language_spanish - ]; - final _formKey = GlobalKey(); final nameController = TextEditingController(); final walletNameImage = Image.asset('assets/images/wallet_name.png'); - bool isDisabledButton; - - @override - void initState() { - isDisabledButton = true; - - nameController.addListener(() { - if (nameController.text.isNotEmpty) { - isDisabledButton = false; - } else { - isDisabledButton = true; - } - - setState(() {}); - }); - - super.initState(); - } - @override void dispose() { nameController.dispose(); @@ -89,24 +61,29 @@ class _WalletNameFormState extends State { final walletCreationStore = Provider.of(context); final seedLanguageStore = Provider.of(context); + nameController.addListener(() { + if (nameController.text.isNotEmpty) { + walletCreationStore.setDisabledStatus(false); + } else { + walletCreationStore.setDisabledStatus(true); + } + }); + reaction((_) => walletCreationStore.state, (WalletCreationState state) { if (state is WalletCreatedSuccessfully) { Navigator.of(context).popUntil((route) => route.isFirst); } - if (state is WalletCreationFailure) { // FIXME: apply new alert dialog + if (state is WalletCreationFailure) { WidgetsBinding.instance.addPostFrameCallback((_) { showDialog( context: context, - builder: (BuildContext context) { - return AlertDialog( - content: Text(state.error), - actions: [ - FlatButton( - child: Text(S.of(context).ok), - onPressed: () => Navigator.of(context).pop(), - ), - ], + builder: (_) { + return WalletCreationDialog( + dialogTitle: S.current.new_wallet, + dialogContent: state.error, + dialogButtonText: S.of(context).ok, + dialogButtonAction: () => Navigator.of(context).pop() ); }); }); @@ -176,7 +153,10 @@ class _WalletNameFormState extends State { text: seedLocales[seedLanguages.indexOf(seedLanguageStore.selectedSeedLanguage)], color: PaletteDark.menuList, textColor: Colors.white, - onTap: () {} // FIXME: apply picker + onTap: () async => await showDialog( + context: context, + builder: (BuildContext context) => SeedLanguagePicker() + ) ) ), ) @@ -195,7 +175,7 @@ class _WalletNameFormState extends State { color: Colors.green, textColor: Colors.white, isLoading: walletCreationStore.state is WalletIsCreating, - isDisabled: isDisabledButton, + isDisabled: walletCreationStore.isDisabledStatus, ); }, )), diff --git a/lib/src/screens/new_wallet/new_wallet_type_page.dart b/lib/src/screens/new_wallet/new_wallet_type_page.dart index eec427871..7890beb26 100644 --- a/lib/src/screens/new_wallet/new_wallet_type_page.dart +++ b/lib/src/screens/new_wallet/new_wallet_type_page.dart @@ -73,7 +73,7 @@ class WalletTypeFormState extends State { Padding( padding: EdgeInsets.only(top: 48), child: Text( - 'Please choose wallet currency:', + S.of(context).choose_wallet_currency, textAlign: TextAlign.center, style: TextStyle( fontSize: 16, diff --git a/lib/src/screens/new_wallet/widgets/wallet_creation_dialog.dart b/lib/src/screens/new_wallet/widgets/wallet_creation_dialog.dart new file mode 100644 index 000000000..c1d464ebe --- /dev/null +++ b/lib/src/screens/new_wallet/widgets/wallet_creation_dialog.dart @@ -0,0 +1,56 @@ +import 'package:flutter/material.dart'; +import 'package:cake_wallet/src/widgets/base_alert_dialog.dart'; + +class WalletCreationDialog extends BaseAlertDialog { + WalletCreationDialog({ + @required this.dialogTitle, + @required this.dialogContent, + @required this.dialogButtonText, + @required this.dialogButtonAction, + }); + + final String dialogTitle; + final String dialogContent; + final String dialogButtonText; + final VoidCallback dialogButtonAction; + + @override + String get titleText => dialogTitle; + + @override + String get contentText => dialogContent; + + @override + Widget actionButtons(BuildContext context) { + return Container( + width: 300, + height: 52, + padding: EdgeInsets.only(left: 12, right: 12), + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(24), + bottomRight: Radius.circular(24) + ), + color: Colors.white + ), + child: ButtonTheme( + minWidth: double.infinity, + child: FlatButton( + onPressed: dialogButtonAction, + highlightColor: Colors.transparent, + splashColor: Colors.transparent, + child: Text( + dialogButtonText, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.w600, + color: Colors.blue, + decoration: TextDecoration.none, + ), + )), + ), + ); + } + +} \ No newline at end of file diff --git a/lib/src/screens/seed_language/widgets/seed_language_picker.dart b/lib/src/screens/seed_language/widgets/seed_language_picker.dart index 6d077637d..56e6d56ae 100644 --- a/lib/src/screens/seed_language/widgets/seed_language_picker.dart +++ b/lib/src/screens/seed_language/widgets/seed_language_picker.dart @@ -1,55 +1,245 @@ +import 'dart:ui'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/palette.dart'; -import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:provider/provider.dart'; import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart'; -import 'package:cake_wallet/src/widgets/present_picker.dart'; import 'package:cake_wallet/generated/i18n.dart'; -class SeedLanguagePicker extends StatelessWidget { - List seedLocales = [ - S.current.seed_language_english, - S.current.seed_language_chinese, - S.current.seed_language_dutch, - S.current.seed_language_german, - S.current.seed_language_japanese, - S.current.seed_language_portuguese, - S.current.seed_language_russian, - S.current.seed_language_spanish - ]; +List seedLocales = [ + S.current.seed_language_english, + S.current.seed_language_chinese, + S.current.seed_language_dutch, + S.current.seed_language_german, + S.current.seed_language_japanese, + S.current.seed_language_portuguese, + S.current.seed_language_russian, + S.current.seed_language_spanish +]; + +List flagImages = [ + Image.asset('assets/images/usa.png'), + Image.asset('assets/images/china.png'), + Image.asset('assets/images/holland.png'), + Image.asset('assets/images/germany.png'), + Image.asset('assets/images/japan.png'), + Image.asset('assets/images/portugal.png'), + Image.asset('assets/images/russia.png'), + Image.asset('assets/images/spain.png'), +]; + +List languageCodes = [ + 'Eng', + 'Chi', + 'Ned', + 'Ger', + 'Jap', + 'Por', + 'Rus', + 'Esp', +]; + +enum Places {topLeft, topRight, bottomLeft, bottomRight, inside} + +class SeedLanguagePicker extends StatefulWidget { + @override + SeedLanguagePickerState createState() => SeedLanguagePickerState(); +} + +class SeedLanguagePickerState extends State { @override Widget build(BuildContext context) { final seedLanguageStore = Provider.of(context); - return Observer( - builder: (_) => InkWell( - onTap: () => _setSeedLanguage(context), + return GestureDetector( + onTap: () => Navigator.of(context).pop(), + child: Container( + color: Colors.transparent, + child: BackdropFilter( + filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0), child: Container( - padding: EdgeInsets.all(8.0), - //width: double.infinity, - decoration: BoxDecoration( - border: Border.all( - color: Theme.of(context).dividerTheme.color - ), - borderRadius: BorderRadius.circular(8.0) - ), - child: Text(seedLocales[seedLanguages.indexOf(seedLanguageStore.selectedSeedLanguage)], - textAlign: TextAlign.center, - style: TextStyle(fontSize: 16.0, color: Palette.lightBlue), + decoration: BoxDecoration(color: PaletteDark.historyPanel.withOpacity(0.75)), + child: Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + padding: EdgeInsets.only(left: 24, right: 24), + child: Text( + S.of(context).seed_choose, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + decoration: TextDecoration.none, + color: Colors.white + ), + ), + ), + Padding( + padding: EdgeInsets.only(top: 24), + child: GestureDetector( + onTap: () => null, + child: Container( + height: 300, + width: 300, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(14)), + color: PaletteDark.walletCardSubAddressField + ), + child: GridView.count( + shrinkWrap: true, + crossAxisCount: 3, + childAspectRatio: 1, + physics: const NeverScrollableScrollPhysics(), + crossAxisSpacing: 1, + mainAxisSpacing: 1, + children: List.generate(9, (index) { + + if (index == 8) { + + return gridTile( + isCurrent: false, + place: Places.bottomRight, + image: null, + text: '', + onTap: null); + + } else { + + final code = languageCodes[index]; + final flag = flagImages[index]; + final isCurrent = index == seedLanguages.indexOf(seedLanguageStore.selectedSeedLanguage); + + if (index == 0) { + return gridTile( + isCurrent: isCurrent, + place: Places.topLeft, + image: flag, + text: code, + onTap: () { + seedLanguageStore.setSelectedSeedLanguage(seedLanguages[index]); + Navigator.of(context).pop(); + } + ); + } + + if (index == 2) { + return gridTile( + isCurrent: isCurrent, + place: Places.topRight, + image: flag, + text: code, + onTap: () { + seedLanguageStore.setSelectedSeedLanguage(seedLanguages[index]); + Navigator.of(context).pop(); + } + ); + } + + if (index == 6) { + return gridTile( + isCurrent: isCurrent, + place: Places.bottomLeft, + image: flag, + text: code, + onTap: () { + seedLanguageStore.setSelectedSeedLanguage(seedLanguages[index]); + Navigator.of(context).pop(); + } + ); + } + + return gridTile( + isCurrent: isCurrent, + place: Places.inside, + image: flag, + text: code, + onTap: () { + seedLanguageStore.setSelectedSeedLanguage(seedLanguages[index]); + Navigator.of(context).pop(); + } + ); + } + }), + ), + ), + ), + ) + ], + ), ), ), - )); + ), + ), + ); } - Future _setSeedLanguage(BuildContext context) async { - final seedLanguageStore = Provider.of(context); - String selectedSeedLanguage = - await presentPicker(context, seedLocales); + Widget gridTile({ + @required bool isCurrent, + @required Places place, + @required Image image, + @required String text, + @required VoidCallback onTap}) { - if (selectedSeedLanguage != null) { - selectedSeedLanguage = seedLanguages[seedLocales.indexOf(selectedSeedLanguage)]; - seedLanguageStore.setSelectedSeedLanguage(selectedSeedLanguage); + BorderRadius borderRadius; + final color = isCurrent ? PaletteDark.historyPanel : PaletteDark.menuList; + final textColor = isCurrent ? Colors.blue : Colors.white; + + switch (place) { + case Places.topLeft: + borderRadius = BorderRadius.only(topLeft: Radius.circular(14)); + break; + case Places.topRight: + borderRadius = BorderRadius.only(topRight: Radius.circular(14)); + break; + case Places.bottomLeft: + borderRadius = BorderRadius.only(bottomLeft: Radius.circular(14)); + break; + case Places.bottomRight: + borderRadius = BorderRadius.only(bottomRight: Radius.circular(14)); + break; + case Places.inside: + borderRadius = BorderRadius.all(Radius.circular(0)); + break; } + + return GestureDetector( + onTap: onTap, + child: Container( + padding: EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: borderRadius, + color: color + ), + child: Center( + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + image != null + ? image + : Offstage(), + Padding( + padding: image != null + ? EdgeInsets.only(left: 10) + : EdgeInsets.only(left: 0), + child: Text( + text, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + decoration: TextDecoration.none, + color: textColor + ), + ), + ) + ], + ), + ), + ) + ); } } \ No newline at end of file diff --git a/lib/src/screens/wallet_list/wallet_list_page.dart b/lib/src/screens/wallet_list/wallet_list_page.dart index d543f0b79..81928268b 100644 --- a/lib/src/screens/wallet_list/wallet_list_page.dart +++ b/lib/src/screens/wallet_list/wallet_list_page.dart @@ -152,7 +152,7 @@ class WalletListBodyState extends State { ), bottomSection: Column(children: [ PrimaryImageButton( - onPressed: () => Navigator.of(context).pushNamed(Routes.newWallet), + onPressed: () => Navigator.of(context).pushNamed(Routes.newWalletType), image: newWalletImage, text: S.of(context).wallet_list_create_new_wallet, color: Colors.white, diff --git a/lib/src/stores/wallet_creation/wallet_creation_store.dart b/lib/src/stores/wallet_creation/wallet_creation_store.dart index 0d3e2ec25..1be07bf42 100644 --- a/lib/src/stores/wallet_creation/wallet_creation_store.dart +++ b/lib/src/stores/wallet_creation/wallet_creation_store.dart @@ -16,6 +16,7 @@ abstract class WalletCreationStoreBase with Store { @required this.walletListService, @required this.sharedPreferences}) { state = WalletCreationStateInitial(); + isDisabledStatus = true; } final AuthenticationStore authStore; @@ -31,6 +32,9 @@ abstract class WalletCreationStoreBase with Store { @observable bool isValid; + @observable + bool isDisabledStatus; + @action Future create({String name, String language}) async { state = WalletCreationStateInitial(); @@ -45,6 +49,11 @@ abstract class WalletCreationStoreBase with Store { } } + @action + void setDisabledStatus(bool isDisabled) { + isDisabledStatus = isDisabled; + } + void validateWalletName(String value) { const pattern = '^[a-zA-Z0-9_]{1,15}\$'; final regExp = RegExp(pattern); diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index ca64a3157..7f9fd1bcd 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -107,6 +107,7 @@ "new_wallet" : "Neues Wallet", "wallet_name" : "Walletname", "continue_text" : "Fortsetzen", + "choose_wallet_currency" : "Bitte wählen Sie die Brieftaschenwährung:", "node_new" : "Neuer Knoten", @@ -158,7 +159,8 @@ "copy" : "Kopieren", - "seed_language_choose" : "Bitte wählen Sie die Ausgangssprache", + "seed_language_choose" : "Bitte wählen Sie die Ausgangssprache:", + "seed_choose" : "Wählen Sie die Ausgangssprache", "seed_language_next" : "Nächster", "seed_language_english" : "Englisch", "seed_language_chinese" : "Chinesisch", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 306be2d61..1f67c52b8 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -107,6 +107,7 @@ "new_wallet" : "New Wallet", "wallet_name" : "Wallet name", "continue_text" : "Continue", + "choose_wallet_currency" : "Please choose wallet currency:", "node_new" : "New Node", @@ -158,7 +159,8 @@ "copy" : "Copy", - "seed_language_choose" : "Please choose seed language", + "seed_language_choose" : "Please choose seed language:", + "seed_choose" : "Choose seed language", "seed_language_next" : "Next", "seed_language_english" : "English", "seed_language_chinese" : "Chinese", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 3c411d135..2494f3d8c 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -107,6 +107,7 @@ "new_wallet" : "Nueva billetera", "wallet_name" : "Nombre de la billetera", "continue_text" : "Continuar", + "choose_wallet_currency" : "Por favor, elija la moneda de la billetera:", "node_new" : "Nuevo nodo", @@ -158,7 +159,8 @@ "copy" : "Dupdo", - "seed_language_choose" : "Por favor elija el idioma semilla", + "seed_language_choose" : "Por favor elija el idioma semilla:", + "seed_choose" : "Elige el idioma semilla", "seed_language_next" : "Próximo", "seed_language_english" : "Inglés", "seed_language_chinese" : "Chino", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 03a77fa91..f46efc00f 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -107,6 +107,7 @@ "new_wallet" : "नया बटुआ", "wallet_name" : "बटुए का नाम", "continue_text" : "जारी रहना", + "choose_wallet_currency" : "कृपया बटुआ मुद्रा चुनें:", "node_new" : "नया नोड", @@ -158,7 +159,8 @@ "copy" : "प्रतिलिपि", - "seed_language_choose" : "कृपया बीज भाषा चुनें", + "seed_language_choose" : "कृपया बीज भाषा चुनें:", + "seed_choose" : "बीज भाषा चुनें", "seed_language_next" : "आगामी", "seed_language_english" : "अंग्रेज़ी", "seed_language_chinese" : "चीनी", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index b6859855a..3626dbfbe 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -107,6 +107,7 @@ "new_wallet" : "新しいウォレット", "wallet_name" : "ウォレット名", "continue_text" : "持続する", + "choose_wallet_currency" : "ウォレット通貨を選択してください:", "node_new" : "新しいノード", @@ -158,7 +159,8 @@ "copy" : "コピー", - "seed_language_choose" : "シード言語を選択してください", + "seed_language_choose" : "シード言語を選択してください:", + "seed_choose" : "シード言語を選択してください", "seed_language_next" : "次", "seed_language_english" : "英語", "seed_language_chinese" : "中国語", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 38e3e1188..26bbd0712 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -107,6 +107,7 @@ "new_wallet" : "새 월렛", "wallet_name" : "지갑 이름", "continue_text" : "잇다", + "choose_wallet_currency" : "지갑 통화를 선택하십시오:", "node_new" : "새로운 노드", @@ -158,7 +159,8 @@ "copy" : "부", - "seed_language_choose" : "종자 언어를 선택하십시오", + "seed_language_choose" : "종자 언어를 선택하십시오:", + "seed_choose" : "시드 언어를 선택하십시오", "seed_language_next" : "다음 것", "seed_language_english" : "영어", "seed_language_chinese" : "중국말", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index d4715841b..451b19ddb 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -107,6 +107,7 @@ "new_wallet" : "Nieuwe portemonnee", "wallet_name" : "Portemonnee naam", "continue_text" : "Doorgaan met", + "choose_wallet_currency" : "Kies een portemonnee-valuta:", "node_new" : "Nieuw knooppunt", @@ -158,7 +159,8 @@ "copy" : "Kopiëren", - "seed_language_choose" : "Kies een starttaal", + "seed_language_choose" : "Kies een starttaal:", + "seed_choose" : "Kies een starttaal", "seed_language_next" : "Volgende", "seed_language_english" : "Engels", "seed_language_chinese" : "Chinese", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index a84182769..6f7df5644 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -107,6 +107,7 @@ "new_wallet" : "Nowy portfel", "wallet_name" : "Nazwa portfela", "continue_text" : "Dalej", + "choose_wallet_currency" : "Wybierz walutę portfela:", "node_new" : "Nowy węzeł", @@ -158,7 +159,8 @@ "copy" : "Kopiuj", - "seed_language_choose" : "Proszę wybrać język początkowy", + "seed_language_choose" : "Proszę wybrać język początkowy:", + "seed_choose" : "Wybierz język początkowy", "seed_language_next" : "Kolejny", "seed_language_english" : "Angielski", "seed_language_chinese" : "Chiński", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 169511b7d..7f87ae700 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -107,6 +107,7 @@ "new_wallet" : "Nova carteira", "wallet_name" : "Nome da carteira", "continue_text" : "Continuar", + "choose_wallet_currency" : "Escolha a moeda da carteira:", "node_new" : "Novo nó", @@ -158,7 +159,8 @@ "copy" : "Copiar", - "seed_language_choose" : "Por favor, escolha o idioma da semente", + "seed_language_choose" : "Por favor, escolha o idioma da semente:", + "seed_choose" : "Escolha o idioma da semente", "seed_language_next" : "Próximo", "seed_language_english" : "Inglesa", "seed_language_chinese" : "Chinesa", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 01ed8b86e..0ad2222e7 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -107,6 +107,7 @@ "new_wallet" : "Новый кошелёк", "wallet_name" : "Имя кошелька", "continue_text" : "Продолжить", + "choose_wallet_currency" : "Пожалуйста, выберите валюту кошелька:", "node_new" : "Новая нода", @@ -158,7 +159,8 @@ "copy" : "Скопировать", - "seed_language_choose" : "Пожалуйста, выберите язык мнемонической фразы", + "seed_language_choose" : "Пожалуйста, выберите язык мнемонической фразы:", + "seed_choose" : "Выберите язык мнемонической фразы", "seed_language_next" : "Продолжить", "seed_language_english" : "Английский", "seed_language_chinese" : "Китайский", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 2faa23ac3..bb27290a9 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -107,6 +107,7 @@ "new_wallet" : "Новий гаманець", "wallet_name" : "Ім'я гаманця", "continue_text" : "Продовжити", + "choose_wallet_currency" : "Будь ласка, виберіть валюту гаманця:", "node_new" : "Новий вузол", @@ -158,7 +159,8 @@ "copy" : "Скопіювати", - "seed_language_choose" : "Будь ласка, виберіть мову мнемонічної фрази", + "seed_language_choose" : "Будь ласка, виберіть мову мнемонічної фрази:", + "seed_choose" : "Виберіть мову мнемонічної фрази", "seed_language_next" : "Продовжити", "seed_language_english" : "Англійська", "seed_language_chinese" : "Китайська", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index f74f7f851..368fdb0df 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -107,6 +107,7 @@ "new_wallet" : "新钱包", "wallet_name" : "钱包名称", "continue_text" : "继续", + "choose_wallet_currency" : "請選擇錢包貨幣:", "node_new" : "新节点", @@ -158,7 +159,8 @@ "copy" : "复制", - "seed_language_choose" : "請選擇種子語言", + "seed_language_choose" : "請選擇種子語言:", + "seed_choose" : "選擇種子語言", "seed_language_next" : "下一个", "seed_language_english" : "英語", "seed_language_chinese" : "中文",