diff --git a/assets/images/2.0x/bitcoin.png b/assets/images/2.0x/bitcoin.png new file mode 100644 index 000000000..169c73426 Binary files /dev/null and b/assets/images/2.0x/bitcoin.png differ 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/select_arrow.png b/assets/images/2.0x/select_arrow.png new file mode 100644 index 000000000..25d64c03c Binary files /dev/null and b/assets/images/2.0x/select_arrow.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/2.0x/wallet_name.png b/assets/images/2.0x/wallet_name.png new file mode 100644 index 000000000..f5593af17 Binary files /dev/null and b/assets/images/2.0x/wallet_name.png differ diff --git a/assets/images/2.0x/wallet_type.png b/assets/images/2.0x/wallet_type.png new file mode 100644 index 000000000..a3bbfdf2d Binary files /dev/null and b/assets/images/2.0x/wallet_type.png differ diff --git a/assets/images/2.0x/welcome.png b/assets/images/2.0x/welcome.png new file mode 100644 index 000000000..8ff024130 Binary files /dev/null and b/assets/images/2.0x/welcome.png differ diff --git a/assets/images/3.0x/bitcoin.png b/assets/images/3.0x/bitcoin.png new file mode 100644 index 000000000..9fd49e6f8 Binary files /dev/null and b/assets/images/3.0x/bitcoin.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/select_arrow.png b/assets/images/3.0x/select_arrow.png new file mode 100644 index 000000000..014b54cc0 Binary files /dev/null and b/assets/images/3.0x/select_arrow.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/3.0x/wallet_name.png b/assets/images/3.0x/wallet_name.png new file mode 100644 index 000000000..c02d9ef04 Binary files /dev/null and b/assets/images/3.0x/wallet_name.png differ diff --git a/assets/images/3.0x/wallet_type.png b/assets/images/3.0x/wallet_type.png new file mode 100644 index 000000000..3c6341426 Binary files /dev/null and b/assets/images/3.0x/wallet_type.png differ diff --git a/assets/images/3.0x/welcome.png b/assets/images/3.0x/welcome.png new file mode 100644 index 000000000..c939cf360 Binary files /dev/null and b/assets/images/3.0x/welcome.png differ diff --git a/assets/images/bitcoin.png b/assets/images/bitcoin.png new file mode 100644 index 000000000..1c30fa3a8 Binary files /dev/null and b/assets/images/bitcoin.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/select_arrow.png b/assets/images/select_arrow.png new file mode 100644 index 000000000..31499de54 Binary files /dev/null and b/assets/images/select_arrow.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/assets/images/wallet_name.png b/assets/images/wallet_name.png new file mode 100644 index 000000000..f586682bd Binary files /dev/null and b/assets/images/wallet_name.png differ diff --git a/assets/images/wallet_type.png b/assets/images/wallet_type.png new file mode 100644 index 000000000..4e0eba8b5 Binary files /dev/null and b/assets/images/wallet_type.png differ diff --git a/assets/images/welcome.png b/assets/images/welcome.png new file mode 100644 index 000000000..f1132d253 Binary files /dev/null and b/assets/images/welcome.png differ diff --git a/lib/generated/i18n.dart b/lib/generated/i18n.dart index 99ece7cc0..ad99172ba 100644 --- a/lib/generated/i18n.dart +++ b/lib/generated/i18n.dart @@ -40,12 +40,14 @@ class S implements WidgetsLocalizations { String get available_balance => "Available Balance"; String get biometric_auth_reason => "Scan your fingerprint to authenticate"; String get buy => "Buy"; + String get cake_wallet => "Cake Wallet"; String get cancel => "Cancel"; String get card_address => "Address:"; String get change => "Change"; 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"; @@ -56,7 +58,7 @@ class S implements WidgetsLocalizations { String get copy => "Copy"; String get copy_address => "Copy Address"; String get copy_id => "Copy ID"; - String get create_new => "Create new"; + String get create_new => "Create New Wallet"; String get delete => "Delete"; String get digit_pin => "-digit PIN"; String get edit => "Edit"; @@ -84,7 +86,7 @@ class S implements WidgetsLocalizations { String get faq => "FAQ"; String get fetching => "Fetching"; String get filters => "Filters"; - String get first_wallet_text => "Awesome wallet\nfor Monero"; + String get first_wallet_text => "Awesome wallet for Monero"; String get full_balance => "Full Balance"; String get hidden_balance => "Hidden Balance"; String get id => "ID: "; @@ -111,7 +113,7 @@ class S implements WidgetsLocalizations { String get payment_id => "Payment ID: "; String get pending => " (pending)"; String get pin_is_incorrect => "PIN is incorrect"; - String get please_make_selection => "Please make selection below to\ncreate or recover your wallet."; + String get please_make_selection => "Please make selection below to create or recover your wallet."; String get please_select => "Please select:"; String get please_try_to_connect_to_another_node => "Please try to connect to another node"; String get receive => "Receive"; @@ -141,13 +143,14 @@ class S implements WidgetsLocalizations { String get restore_title_from_seed => "Restore from seed"; String get restore_title_from_seed_keys => "Restore from seed/keys"; String get restore_view_key_private => "View key (private)"; - String get restore_wallet => "Restore wallet"; + String get restore_wallet => "Restore Wallet"; String get restore_wallet_name => "Wallet name"; 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"; @@ -262,7 +265,7 @@ class S implements WidgetsLocalizations { String get wallet_restoration_store_incorrect_seed_length => "Incorrect seed length"; String get wallet_store_monero_wallet => "Monero Wallet"; String get wallets => "Wallets"; - String get welcome => "WELCOME\nTO CAKE WALLET"; + String get welcome => "Welcome to"; String get widgets_address => "Address"; String get widgets_or => "or"; String get widgets_restore_from_blockheight => "Restore from blockheight"; @@ -340,7 +343,7 @@ class $de extends S { @override String get trade_state_underpaid => "Unterbezahlt"; @override - String get welcome => "Willkommen\nzu CAKE WALLET"; + String get welcome => "Willkommen zu"; @override String get share_address => "Adresse teilen "; @override @@ -396,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 @@ -424,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"; @@ -436,7 +441,7 @@ class $de extends S { @override String get seed_language_german => "Deutsche"; @override - String get create_new => "Erstelle neu"; + String get create_new => "Neue Wallet erstellen"; @override String get trade_details_fetching => "Holen"; @override @@ -530,7 +535,7 @@ class $de extends S { @override String get copy_id => "ID kopieren"; @override - String get please_make_selection => "Bitte treffen Sie unten eine Auswahl zu\nErstellen oder Wiederherstellen Ihrer Brieftasche."; + String get please_make_selection => "Bitte treffen Sie unten eine Auswahl zu Erstellen oder Wiederherstellen Ihrer Brieftasche."; @override String get loading_your_wallet => "Laden Sie Ihre Brieftasche"; @override @@ -580,6 +585,8 @@ class $de extends S { @override String get saved_the_trade_id => "Ich habe die Geschäfts-ID gespeichert"; @override + String get cake_wallet => "Cake Wallet"; + @override String get settings_currency => "Währung"; @override String get change_language => "Sprache ändern"; @@ -644,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"; @@ -812,7 +821,7 @@ class $de extends S { @override String get digit_pin => "-stelliger PIN"; @override - String get first_wallet_text => "tolle Brieftasche\nzum Monero"; + String get first_wallet_text => "tolle Brieftasche zum Monero"; @override String get settings_trades => "Handel"; @override @@ -912,7 +921,7 @@ class $hi extends S { @override String get trade_state_underpaid => "के तहत भुगतान किया"; @override - String get welcome => "स्वागत हे\nसेवा मेरे CAKE WALLET"; + String get welcome => "स्वागत हे सेवा मेरे"; @override String get share_address => "पता साझा करें"; @override @@ -968,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 @@ -996,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 => "के रूप में संतुलन प्रदर्शित करें"; @@ -1008,7 +1019,7 @@ class $hi extends S { @override String get seed_language_german => "जर्मन"; @override - String get create_new => "नया बनाओ"; + String get create_new => "नया बटुआ बनाएँ"; @override String get trade_details_fetching => "ला रहा है"; @override @@ -1102,7 +1113,7 @@ class $hi extends S { @override String get copy_id => "प्रतिलिपि ID"; @override - String get please_make_selection => "कृपया नीचे चयन करें\nअपना बटुआ बनाएं या पुनर्प्राप्त करें."; + String get please_make_selection => "कृपया नीचे चयन करें अपना बटुआ बनाएं या पुनर्प्राप्त करें."; @override String get loading_your_wallet => "अपना बटुआ लोड कर रहा है"; @override @@ -1152,6 +1163,8 @@ class $hi extends S { @override String get saved_the_trade_id => "मैंने व्यापार बचा लिया है ID"; @override + String get cake_wallet => "Cake Wallet"; + @override String get settings_currency => "मुद्रा"; @override String get change_language => "भाषा बदलो"; @@ -1216,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 => "पता"; @@ -1384,7 +1399,7 @@ class $hi extends S { @override String get digit_pin => "-अंक पिन"; @override - String get first_wallet_text => "बहुत बढ़िया बटुआ\nके लिये Monero"; + String get first_wallet_text => "बहुत बढ़िया बटुआ के लिये Monero"; @override String get settings_trades => "ट्रेडों"; @override @@ -1484,7 +1499,7 @@ class $ru extends S { @override String get trade_state_underpaid => "Недоплаченная"; @override - String get welcome => "Приветствуем в CAKE WALLET"; + String get welcome => "Приветствуем в"; @override String get share_address => "Поделиться адресом"; @override @@ -1540,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 @@ -1568,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 => "Отображать баланс как"; @@ -1580,7 +1597,7 @@ class $ru extends S { @override String get seed_language_german => "Немецкий"; @override - String get create_new => "Создать новый"; + String get create_new => "Создать новый кошелёк"; @override String get trade_details_fetching => "Получение"; @override @@ -1724,6 +1741,8 @@ class $ru extends S { @override String get saved_the_trade_id => "Я сохранил ID сделки"; @override + String get cake_wallet => "Cake Wallet"; + @override String get settings_currency => "Валюта"; @override String get change_language => "Изменить язык"; @@ -1788,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 => "Адрес"; @@ -2056,7 +2077,7 @@ class $ko extends S { @override String get trade_state_underpaid => "미지급"; @override - String get welcome => "환영\n에 CAKE WALLET"; + String get welcome => "환영 에"; @override String get share_address => "주소 공유"; @override @@ -2112,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 @@ -2140,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 => "잔액 표시"; @@ -2152,7 +2175,7 @@ class $ko extends S { @override String get seed_language_german => "독일 사람"; @override - String get create_new => "새로 만들기"; + String get create_new => "새 월렛 만들기"; @override String get trade_details_fetching => "가져 오는 중"; @override @@ -2246,7 +2269,7 @@ class $ko extends S { @override String get copy_id => "부 ID"; @override - String get please_make_selection => "아래에서 선택하십시오\n지갑 만들기 또는 복구."; + String get please_make_selection => "아래에서 선택하십시오 지갑 만들기 또는 복구."; @override String get loading_your_wallet => "지갑 넣기"; @override @@ -2296,6 +2319,8 @@ class $ko extends S { @override String get saved_the_trade_id => "거래 ID를 저장했습니다"; @override + String get cake_wallet => "Cake Wallet"; + @override String get settings_currency => "통화"; @override String get change_language => "언어 변경"; @@ -2360,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 => "주소"; @@ -2488,7 +2515,7 @@ class $ko extends S { @override String get settings_support => "지원하다"; @override - String get restore_wallet => "지갑 복원"; + String get restore_wallet => "월렛 복원"; @override String get ok => "승인"; @override @@ -2528,7 +2555,7 @@ class $ko extends S { @override String get digit_pin => "숫자 PIN"; @override - String get first_wallet_text => "멋진 지갑\n에 대한 Monero"; + String get first_wallet_text => "멋진 지갑 에 대한 Monero"; @override String get settings_trades => "거래"; @override @@ -2628,7 +2655,7 @@ class $pt extends S { @override String get trade_state_underpaid => "Parcialmente paga"; @override - String get welcome => "BEM-VINDO(A)\nÀ CAKE WALLET"; + String get welcome => "Bem-vindo ao"; @override String get share_address => "Compartilhar endereço"; @override @@ -2684,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 @@ -2712,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"; @@ -2724,7 +2753,7 @@ class $pt extends S { @override String get seed_language_german => "Alemã"; @override - String get create_new => "Criar carteira"; + String get create_new => "Criar nova carteira"; @override String get trade_details_fetching => "Buscando"; @override @@ -2818,7 +2847,7 @@ class $pt extends S { @override String get copy_id => "Copiar ID"; @override - String get please_make_selection => "Escolha se quer criar uma carteira nova\nou restaurar uma antiga."; + String get please_make_selection => "Escolha se quer criar uma carteira nova ou restaurar uma antiga."; @override String get loading_your_wallet => "Abrindo sua carteira"; @override @@ -2868,6 +2897,8 @@ class $pt extends S { @override String get saved_the_trade_id => "ID da troca salvo"; @override + String get cake_wallet => "Cake Wallet"; + @override String get settings_currency => "Moeda"; @override String get change_language => "Mudar idioma"; @@ -2932,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"; @@ -3100,7 +3133,7 @@ class $pt extends S { @override String get digit_pin => "dígitos"; @override - String get first_wallet_text => "Uma fantástica carteira\npara Monero"; + String get first_wallet_text => "Uma fantástica carteira para Monero"; @override String get settings_trades => "Trocas"; @override @@ -3200,7 +3233,7 @@ class $uk extends S { @override String get trade_state_underpaid => "Недоплачена"; @override - String get welcome => "Вітаємо в CAKE WALLET"; + String get welcome => "Вітаємо в"; @override String get share_address => "Поділитися адресою"; @override @@ -3256,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 @@ -3284,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 => "Відображати баланс як"; @@ -3296,7 +3331,7 @@ class $uk extends S { @override String get seed_language_german => "Німецька"; @override - String get create_new => "Створити новий"; + String get create_new => "Створити новий гаманець"; @override String get trade_details_fetching => "Отримання"; @override @@ -3390,7 +3425,7 @@ class $uk extends S { @override String get copy_id => "Скопіювати ID"; @override - String get please_make_selection => "Виберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий."; + String get please_make_selection => "Оберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий."; @override String get loading_your_wallet => "Завантаження гаманця"; @override @@ -3440,6 +3475,8 @@ class $uk extends S { @override String get saved_the_trade_id => "Я зберіг ID операції"; @override + String get cake_wallet => "Cake Wallet"; + @override String get settings_currency => "Валюта"; @override String get change_language => "Змінити мову"; @@ -3504,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 => "Адреса"; @@ -3772,7 +3811,7 @@ class $ja extends S { @override String get trade_state_underpaid => "支払不足"; @override - String get welcome => "ようこそ\nに CAKE WALLET"; + String get welcome => "ようこそ に"; @override String get share_address => "住所を共有する"; @override @@ -3828,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 @@ -3856,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 => "残高を表示"; @@ -3868,7 +3909,7 @@ class $ja extends S { @override String get seed_language_german => "ドイツ人"; @override - String get create_new => "新しく作る"; + String get create_new => "新しいウォレットを作成"; @override String get trade_details_fetching => "フェッチング"; @override @@ -3962,7 +4003,7 @@ class $ja extends S { @override String get copy_id => "IDをコピー"; @override - String get please_make_selection => "以下を選択してください\nウォレットを作成または回復する."; + String get please_make_selection => "以下を選択してください ウォレットを作成または回復する."; @override String get loading_your_wallet => "ウォレットをロードしています"; @override @@ -4012,6 +4053,8 @@ class $ja extends S { @override String get saved_the_trade_id => "取引IDを保存しました"; @override + String get cake_wallet => "Cake Wallet"; + @override String get settings_currency => "通貨"; @override String get change_language => "言語を変えてください"; @@ -4076,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 => "住所"; @@ -4204,7 +4249,7 @@ class $ja extends S { @override String get settings_support => "サポート"; @override - String get restore_wallet => "ウォレットを復元する"; + String get restore_wallet => "ウォレットを復元"; @override String get ok => "OK"; @override @@ -4244,7 +4289,7 @@ class $ja extends S { @override String get digit_pin => "桁ピン"; @override - String get first_wallet_text => "素晴らしい財布\nために Monero"; + String get first_wallet_text => "素晴らしい財布 ために Monero"; @override String get settings_trades => "取引"; @override @@ -4348,7 +4393,7 @@ class $pl extends S { @override String get trade_state_underpaid => "Niedopłacone"; @override - String get welcome => "WITAMY\nW CAKE WALLET"; + String get welcome => "Witamy w"; @override String get share_address => "Udostępnij adres"; @override @@ -4404,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 @@ -4432,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"; @@ -4444,7 +4491,7 @@ class $pl extends S { @override String get seed_language_german => "Niemiecki"; @override - String get create_new => "Tworzyć nowe"; + String get create_new => "Utwórz nowy portfel"; @override String get trade_details_fetching => "Ujmujący"; @override @@ -4538,7 +4585,7 @@ class $pl extends S { @override String get copy_id => "ID kopii"; @override - String get please_make_selection => "Wybierz poniżej, aby\ncutwórz lub odzyskaj swój portfel."; + String get please_make_selection => "Wybierz poniżej, aby cutwórz lub odzyskaj swój portfel."; @override String get loading_your_wallet => "Ładowanie portfela"; @override @@ -4588,6 +4635,8 @@ class $pl extends S { @override String get saved_the_trade_id => "Zapisałem ID"; @override + String get cake_wallet => "Cake Wallet"; + @override String get settings_currency => "Waluta"; @override String get change_language => "Zmień język"; @@ -4652,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"; @@ -4820,7 +4871,7 @@ class $pl extends S { @override String get digit_pin => "-znak PIN"; @override - String get first_wallet_text => "Niesamowity portfel\nfdla Monero"; + String get first_wallet_text => "Niesamowity portfel dla Monero"; @override String get settings_trades => "Transakcje"; @override @@ -4920,7 +4971,7 @@ class $es extends S { @override String get trade_state_underpaid => "Poco pagado"; @override - String get welcome => "Bienvenido\n CAKE WALLET"; + String get welcome => "Bienvenido"; @override String get share_address => "Compartir dirección"; @override @@ -4976,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 @@ -5004,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"; @@ -5016,7 +5069,7 @@ class $es extends S { @override String get seed_language_german => "Alemán"; @override - String get create_new => "Crear nuevo"; + String get create_new => "Crear nueva billetera"; @override String get trade_details_fetching => "Cargando"; @override @@ -5110,7 +5163,7 @@ class $es extends S { @override String get copy_id => "Copiar ID"; @override - String get please_make_selection => "Seleccione a continuación para\ncrear o recuperar su billetera."; + String get please_make_selection => "Seleccione a continuación para crear o recuperar su billetera."; @override String get loading_your_wallet => "Cargando tu billetera"; @override @@ -5160,6 +5213,8 @@ class $es extends S { @override String get saved_the_trade_id => "He salvado comercial ID"; @override + String get cake_wallet => "Cake Wallet"; + @override String get settings_currency => "Moneda"; @override String get change_language => "Cambiar idioma"; @@ -5224,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"; @@ -5392,7 +5449,7 @@ class $es extends S { @override String get digit_pin => "-dígito PIN"; @override - String get first_wallet_text => "Impresionante billetera\npara Monero"; + String get first_wallet_text => "Impresionante billetera para Monero"; @override String get settings_trades => "Comercia"; @override @@ -5492,7 +5549,7 @@ class $nl extends S { @override String get trade_state_underpaid => "Slecht betaald"; @override - String get welcome => "WELKOM\nBIJ CAKE WALLET"; + String get welcome => "Welkom bij"; @override String get share_address => "Deel adres"; @override @@ -5548,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 @@ -5576,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"; @@ -5588,7 +5647,7 @@ class $nl extends S { @override String get seed_language_german => "Duitse"; @override - String get create_new => "Maak nieuw"; + String get create_new => "Maak een nieuwe portemonnee"; @override String get trade_details_fetching => "Ophalen"; @override @@ -5682,7 +5741,7 @@ class $nl extends S { @override String get copy_id => "ID kopiëren"; @override - String get please_make_selection => "Maak hieronder uw keuze tot\nmaak of herstel je portemonnee."; + String get please_make_selection => "Maak hieronder uw keuze tot maak of herstel je portemonnee."; @override String get loading_your_wallet => "Uw portemonnee laden"; @override @@ -5732,6 +5791,8 @@ class $nl extends S { @override String get saved_the_trade_id => "Ik heb de ruil-ID opgeslagen"; @override + String get cake_wallet => "Cake Wallet"; + @override String get settings_currency => "Valuta"; @override String get change_language => "Verander de taal"; @@ -5796,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"; @@ -5964,7 +6027,7 @@ class $nl extends S { @override String get digit_pin => "-cijferige PIN"; @override - String get first_wallet_text => "Geweldige portemonnee\nfvoor Monero"; + String get first_wallet_text => "Geweldige portemonnee fvoor Monero"; @override String get settings_trades => "Trades"; @override @@ -6064,7 +6127,7 @@ class $zh extends S { @override String get trade_state_underpaid => "支付不足"; @override - String get welcome => "欢迎\nTO CAKE WALLET"; + String get welcome => "歡迎來到"; @override String get share_address => "分享地址"; @override @@ -6120,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 @@ -6148,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 => "将余额显示为"; @@ -6160,7 +6225,7 @@ class $zh extends S { @override String get seed_language_german => "德語"; @override - String get create_new => "创建新的"; + String get create_new => "创建新钱包"; @override String get trade_details_fetching => "正在取得"; @override @@ -6254,7 +6319,7 @@ class $zh extends S { @override String get copy_id => "复印ID"; @override - String get please_make_selection => "请在下面进行选择\nc创建或恢复您的钱包."; + String get please_make_selection => "请在下面进行选择 创建或恢复您的钱包."; @override String get loading_your_wallet => "装钱包"; @override @@ -6304,6 +6369,8 @@ class $zh extends S { @override String get saved_the_trade_id => "我已经保存了交易ID"; @override + String get cake_wallet => "Cake Wallet"; + @override String get settings_currency => "货币"; @override String get change_language => "改變語言"; @@ -6368,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 => "地址"; @@ -6536,7 +6605,7 @@ class $zh extends S { @override String get digit_pin => "数字别针"; @override - String get first_wallet_text => "很棒的钱包\n对于 Monero"; + String get first_wallet_text => "很棒的钱包 对于 Monero"; @override String get settings_trades => "交易"; @override diff --git a/lib/palette.dart b/lib/palette.dart index 5a6cfd414..0c7a3cc1a 100644 --- a/lib/palette.dart +++ b/lib/palette.dart @@ -89,4 +89,5 @@ class PaletteDark { static const Color historyPanelButton = Color.fromRGBO(39, 53, 96, 1.0); static const Color menuHeader = Color.fromRGBO(41, 52, 84, 1.0); static const Color menuList = Color.fromRGBO(48, 59, 95, 1.0); + static const Color selectButtonText = Color.fromRGBO(57, 74, 95, 1.0); } \ No newline at end of file diff --git a/lib/router.dart b/lib/router.dart index d3d6c74ca..f2c0a554a 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -87,6 +87,7 @@ import 'package:cake_wallet/src/screens/auth/create_login_page.dart'; import 'package:cake_wallet/src/screens/seed/create_seed_page.dart'; import 'package:cake_wallet/src/screens/dashboard/create_dashboard_page.dart'; import 'package:cake_wallet/src/screens/welcome/create_welcome_page.dart'; +import 'package:cake_wallet/src/screens/new_wallet/new_wallet_type_page.dart'; class Router { static Route generateRoute( @@ -117,7 +118,10 @@ class Router { sharedPreferences: sharedPreferences)), child: SetupPinCodePage( onPinCodeSetup: (context, _) => - Navigator.pushNamed(context, Routes.newWallet)))); + Navigator.pushNamed(context, Routes.newWalletType)))); + + case Routes.newWalletType: + return CupertinoPageRoute(builder: (_) => NewWalletTypePage()); case Routes.newWallet: return CupertinoPageRoute( diff --git a/lib/routes.dart b/lib/routes.dart index 694ff39a9..9fc3a941f 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -44,4 +44,5 @@ class Routes { static const rescan = '/rescan'; static const faq = '/faq'; static const changeLanguage = '/change_language'; + static const newWalletType = '/new_wallet_type'; } \ No newline at end of file diff --git a/lib/src/screens/accounts/account_page.dart b/lib/src/screens/accounts/account_page.dart index d02bfb479..4c4011aa9 100644 --- a/lib/src/screens/accounts/account_page.dart +++ b/lib/src/screens/accounts/account_page.dart @@ -98,10 +98,7 @@ class AccountFormState extends State { .primaryTextTheme .button .backgroundColor, - borderColor: Theme.of(context) - .primaryTextTheme - .button - .decorationColor, + textColor: Theme.of(context).primaryTextTheme.button.color, isLoading: accountListStore.isAccountCreating, )) ], 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/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index 5cf90b2f8..7993247c1 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -255,10 +255,7 @@ class ExchangeFormState extends State { .primaryTextTheme .button .backgroundColor, - borderColor: Theme.of(context) - .primaryTextTheme - .button - .decorationColor, + textColor: Theme.of(context).primaryTextTheme.button.color, isLoading: exchangeStore.tradeState is TradeIsCreating, )), Observer(builder: (_) { diff --git a/lib/src/screens/exchange_trade/exchange_trade_page.dart b/lib/src/screens/exchange_trade/exchange_trade_page.dart index def6238a3..418b4e7d9 100644 --- a/lib/src/screens/exchange_trade/exchange_trade_page.dart +++ b/lib/src/screens/exchange_trade/exchange_trade_page.dart @@ -315,10 +315,7 @@ class ExchangeTradeState extends State { .primaryTextTheme .button .backgroundColor, - borderColor: Theme.of(context) - .primaryTextTheme - .button - .decorationColor), + textColor: Theme.of(context).primaryTextTheme.button.color), ) : Offstage()), ); diff --git a/lib/src/screens/new_wallet/new_wallet_page.dart b/lib/src/screens/new_wallet/new_wallet_page.dart index 87c995b43..507fb610b 100644 --- a/lib/src/screens/new_wallet/new_wallet_page.dart +++ b/lib/src/screens/new_wallet/new_wallet_page.dart @@ -14,7 +14,9 @@ import 'package:cake_wallet/src/widgets/primary_button.dart'; 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( @@ -29,6 +31,9 @@ class NewWalletPage extends BasePage { @override String get title => S.current.new_wallet; + @override + Color get backgroundColor => PaletteDark.historyPanel; + @override Widget body(BuildContext context) => WalletNameForm(); } @@ -39,14 +44,42 @@ class WalletNameForm extends StatefulWidget { } class _WalletNameFormState extends State { + static const aspectRatioImage = 1.22; + final _formKey = GlobalKey(); final nameController = TextEditingController(); + final walletNameImage = Image.asset('assets/images/wallet_name.png'); + + @override + void dispose() { + nameController.dispose(); + super.dispose(); + } @override Widget build(BuildContext context) { final walletCreationStore = Provider.of(context); final seedLanguageStore = Provider.of(context); + 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 + ]; + + 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); @@ -56,81 +89,107 @@ class _WalletNameFormState extends State { 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() ); }); }); } }); - return ScrollableWithBottomSection( - content: Column(children: [ - Padding( - padding: EdgeInsets.only(bottom: 10), - child: Image.asset('assets/images/bitmap.png', - height: 224, width: 400), - ), - Padding( - padding: EdgeInsets.only(left: 20, right: 20, bottom: 20), - child: Form( - key: _formKey, - child: TextFormField( - style: TextStyle( - fontSize: 24.0, - color: Theme.of(context).accentTextTheme.subtitle.color), - controller: nameController, - decoration: InputDecoration( - hintStyle: TextStyle( - fontSize: 24.0, color: Theme.of(context).hintColor), - hintText: S.of(context).wallet_name, - focusedBorder: UnderlineInputBorder( - borderSide: - BorderSide(color: Palette.cakeGreen, width: 2.0)), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide( - color: Theme.of(context).focusColor, - width: 1.0))), - validator: (value) { - walletCreationStore.validateWalletName(value); - return walletCreationStore.errorMessage; - }, - )), - ), - Padding(padding: EdgeInsets.only(bottom: 20), - child: Text( - S.of(context).seed_language_choose, - textAlign: TextAlign.center, - style: TextStyle(fontSize: 16.0), + return Container( + color: PaletteDark.historyPanel, + padding: EdgeInsets.only(top: 24), + child: ScrollableWithBottomSection( + contentPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24), + content: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: EdgeInsets.only(left: 12, right: 12), + child: AspectRatio( + aspectRatio: aspectRatioImage, + child: FittedBox(child: walletNameImage, fit: BoxFit.fill)), + ), + Padding( + padding: EdgeInsets.only(top: 24), + child: Form( + key: _formKey, + child: TextFormField( + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 20.0, + fontWeight: FontWeight.w600, + color: Colors.white), + controller: nameController, + decoration: InputDecoration( + hintStyle: TextStyle( + fontSize: 16.0, + color: PaletteDark.walletCardText), + hintText: S.of(context).wallet_name, + focusedBorder: UnderlineInputBorder( + borderSide: + BorderSide( + color: PaletteDark.walletCardSubAddressField, + width: 1.0)), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide( + color: PaletteDark.walletCardSubAddressField, + width: 1.0))), + validator: (value) { + walletCreationStore.validateWalletName(value); + return walletCreationStore.errorMessage; + }, + )), ), - ), - Padding(padding: EdgeInsets.only(left: 20, right: 20, bottom: 20), - child: SeedLanguagePicker(), - ) - ]), - bottomSection: Observer( - builder: (context) { - return LoadingPrimaryButton( - onPressed: () { - if (_formKey.currentState.validate()) { - walletCreationStore.create(name: nameController.text, - language: seedLanguageStore.selectedSeedLanguage); - } - }, - text: S.of(context).continue_text, - color: Theme.of(context).primaryTextTheme.button.backgroundColor, - borderColor: - Theme.of(context).primaryTextTheme.button.decorationColor, - isLoading: walletCreationStore.state is WalletIsCreating, - ); - }, - )); + Padding(padding: EdgeInsets.only(top: 40), + child: Text( + S.of(context).seed_language_choose, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16.0, + fontWeight: FontWeight.w600, + color: Colors.white + ), + ), + ), + Padding(padding: EdgeInsets.only(top: 24), + child: Observer( + builder: (_) => SelectButton( + image: null, + text: seedLocales[seedLanguages.indexOf(seedLanguageStore.selectedSeedLanguage)], + color: PaletteDark.menuList, + textColor: Colors.white, + onTap: () async => await showDialog( + context: context, + builder: (BuildContext context) => SeedLanguagePicker() + ) + ) + ), + ) + ]), + bottomSectionPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24), + bottomSection: Observer( + builder: (context) { + return LoadingPrimaryButton( + onPressed: () { + if (_formKey.currentState.validate()) { + walletCreationStore.create(name: nameController.text, + language: seedLanguageStore.selectedSeedLanguage); + } + }, + text: S.of(context).continue_text, + color: Colors.green, + textColor: Colors.white, + isLoading: walletCreationStore.state is WalletIsCreating, + 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 new file mode 100644 index 000000000..4d662998d --- /dev/null +++ b/lib/src/screens/new_wallet/new_wallet_type_page.dart @@ -0,0 +1,146 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/src/screens/base_page.dart'; +import 'package:cake_wallet/src/widgets/primary_button.dart'; +import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart'; +import 'package:cake_wallet/routes.dart'; + +class NewWalletTypePage extends BasePage { + @override + String get title => S.current.new_wallet; + + @override + Color get backgroundColor => PaletteDark.historyPanel; + + @override + Widget body(BuildContext context) => WalletTypeForm(); +} + +class WalletTypeForm extends StatefulWidget { + @override + WalletTypeFormState createState() => WalletTypeFormState(); +} + +class WalletTypeFormState extends State { + static const aspectRatioImage = 1.22; + + final moneroIcon = Image.asset('assets/images/monero.png', height: 24, width: 24); + final bitcoinIcon = Image.asset('assets/images/bitcoin.png', height: 24, width: 24); + final walletTypeImage = Image.asset('assets/images/wallet_type.png'); + + bool isDisabledButton; + bool isMoneroSelected; + bool isBitcoinSelected; + + Color moneroBackgroundColor; + Color moneroTextColor; + Color bitcoinBackgroundColor; + Color bitcoinTextColor; + + @override + void initState() { + isDisabledButton = true; + isMoneroSelected = false; + isBitcoinSelected = false; + + moneroBackgroundColor = PaletteDark.menuList; + moneroTextColor = Colors.white; + bitcoinBackgroundColor = PaletteDark.menuList; + bitcoinTextColor = Colors.white; + + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Container( + color: PaletteDark.historyPanel, + padding: EdgeInsets.only(top: 24), + child: ScrollableWithBottomSection( + contentPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24), + content: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: EdgeInsets.only(left: 12, right: 12), + child: AspectRatio( + aspectRatio: aspectRatioImage, + child: FittedBox(child: walletTypeImage, fit: BoxFit.fill)), + ), + Padding( + padding: EdgeInsets.only(top: 48), + child: Text( + S.of(context).choose_wallet_currency, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Colors.white + ), + ), + ), + Padding( + padding: EdgeInsets.only(top: 24), + child: SelectButton( + image: bitcoinIcon, + text: 'Bitcoin', + color: bitcoinBackgroundColor, + textColor: bitcoinTextColor, + onTap: () {}), + ), + Padding( + padding: EdgeInsets.only(top: 20), + child: SelectButton( + image: moneroIcon, + text: 'Monero', + color: moneroBackgroundColor, + textColor: moneroTextColor, + onTap: () => onSelectMoneroButton()), + ) + ], + ), + bottomSectionPadding: EdgeInsets.only( + left: 24, + right: 24, + bottom: 24 + ), + bottomSection: PrimaryButton( + onPressed: () => Navigator.of(context).pushNamed(Routes.newWallet), + text: S.of(context).seed_language_next, + color: Colors.green, + textColor: Colors.white, + isDisabled: isDisabledButton, + ), + ), + ); + } + + void onSelectMoneroButton() { + isMoneroSelected = true; + isBitcoinSelected = false; + isDisabledButton = false; + + moneroBackgroundColor = Colors.white; + moneroTextColor = PaletteDark.selectButtonText; + bitcoinBackgroundColor = PaletteDark.menuList; + bitcoinTextColor = Colors.white; + + setState(() {}); + } + + void onSelectBitcoinButton() { + isMoneroSelected = false; + isBitcoinSelected = true; + isDisabledButton = false; + + moneroBackgroundColor = PaletteDark.menuList; + moneroTextColor = Colors.white; + bitcoinBackgroundColor = Colors.white; + bitcoinTextColor = PaletteDark.selectButtonText; + + setState(() {}); + } +} \ No newline at end of file diff --git a/lib/src/screens/new_wallet/widgets/select_button.dart b/lib/src/screens/new_wallet/widgets/select_button.dart new file mode 100644 index 000000000..7e583ec4e --- /dev/null +++ b/lib/src/screens/new_wallet/widgets/select_button.dart @@ -0,0 +1,66 @@ +import 'package:flutter/material.dart'; + +class SelectButton extends StatelessWidget { + SelectButton({ + @required this.image, + @required this.text, + @required this.color, + @required this.textColor, + @required this.onTap, + }); + + final Image image; + final String text; + final Color color; + final Color textColor; + final VoidCallback onTap; + + final selectArrowImage = Image.asset('assets/images/select_arrow.png'); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + child: Container( + width: double.infinity, + height: 60, + padding: EdgeInsets.only(left: 30, right: 30), + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(30)), + color: color + ), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + image != null + ? image + : Offstage(), + Padding( + padding: image != null + ? EdgeInsets.only(left: 15) + : EdgeInsets.only(left: 0), + child: Text( + text, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w600, + color: textColor + ), + ), + ) + ], + ), + selectArrowImage + ], + ), + ), + ); + } +} \ No newline at end of file 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/rescan/rescan_page.dart b/lib/src/screens/rescan/rescan_page.dart index a17614df1..ccc925429 100644 --- a/lib/src/screens/rescan/rescan_page.dart +++ b/lib/src/screens/rescan/rescan_page.dart @@ -33,8 +33,7 @@ class RescanPage extends BasePage { }, color: Theme.of(context).primaryTextTheme.button.backgroundColor, - borderColor: - Theme.of(context).primaryTextTheme.button.decorationColor)) + textColor: Theme.of(context).primaryTextTheme.button.color,)) ]), ); } diff --git a/lib/src/screens/restore/restore_wallet_from_keys_page.dart b/lib/src/screens/restore/restore_wallet_from_keys_page.dart index 7c09c2d24..2dfb9906c 100644 --- a/lib/src/screens/restore/restore_wallet_from_keys_page.dart +++ b/lib/src/screens/restore/restore_wallet_from_keys_page.dart @@ -217,8 +217,7 @@ class _RestoreFromKeysFromState extends State { }, text: S.of(context).restore_recover, color: Theme.of(context).primaryTextTheme.button.backgroundColor, - borderColor: - Theme.of(context).primaryTextTheme.button.decorationColor); + textColor: Theme.of(context).primaryTextTheme.button.color,); }), ); } diff --git a/lib/src/screens/restore/restore_wallet_from_seed_details.dart b/lib/src/screens/restore/restore_wallet_from_seed_details.dart index 635cad300..733eb0bc1 100644 --- a/lib/src/screens/restore/restore_wallet_from_seed_details.dart +++ b/lib/src/screens/restore/restore_wallet_from_seed_details.dart @@ -118,8 +118,7 @@ class _RestoreFromSeedDetailsFormState isLoading: walletRestorationStore.state is WalletIsRestoring, text: S.of(context).restore_recover, color: Theme.of(context).primaryTextTheme.button.backgroundColor, - borderColor: - Theme.of(context).primaryTextTheme.button.decorationColor); + textColor: Theme.of(context).primaryTextTheme.button.color,); }), ); } diff --git a/lib/src/screens/seed/seed_page.dart b/lib/src/screens/seed/seed_page.dart index 4340810bc..cd5cc0d06 100644 --- a/lib/src/screens/seed/seed_page.dart +++ b/lib/src/screens/seed/seed_page.dart @@ -41,6 +41,7 @@ class SeedPage extends BasePage { child: Container( width: 70, height: 32, + alignment: Alignment.center, decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(16)), color: PaletteDark.menuList @@ -48,7 +49,7 @@ class SeedPage extends BasePage { child: Text( S.of(context).seed_language_next, style: TextStyle( - fontSize: 14, + fontSize: 10, fontWeight: FontWeight.w600, color: Colors.blue ), 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..2b478205e 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,234 @@ +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 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/send/send_page.dart b/lib/src/screens/send/send_page.dart index 07394e97d..a4e4fb056 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -436,8 +436,7 @@ class SendFormState extends State { : null, text: S.of(context).send, color: Theme.of(context).accentTextTheme.button.backgroundColor, - borderColor: - Theme.of(context).accentTextTheme.button.decorationColor, + textColor: Theme.of(context).primaryTextTheme.button.color, isLoading: sendStore.state is CreatingTransaction || sendStore.state is TransactionCommiting); })); diff --git a/lib/src/screens/subaddress/new_subaddress_page.dart b/lib/src/screens/subaddress/new_subaddress_page.dart index 421ec767c..58d774568 100644 --- a/lib/src/screens/subaddress/new_subaddress_page.dart +++ b/lib/src/screens/subaddress/new_subaddress_page.dart @@ -89,10 +89,7 @@ class NewSubaddressFormState extends State { .accentTextTheme .button .backgroundColor, - borderColor: Theme.of(context) - .accentTextTheme - .button - .decorationColor, + textColor: Theme.of(context).primaryTextTheme.button.color, isLoading: subaddressCreationStore.state is SubaddressIsCreating), )) 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/screens/welcome/welcome_page.dart b/lib/src/screens/welcome/welcome_page.dart index 55bf8c6eb..fb50d4fba 100644 --- a/lib/src/screens/welcome/welcome_page.dart +++ b/lib/src/screens/welcome/welcome_page.dart @@ -4,12 +4,16 @@ import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/widgets/primary_button.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; class WelcomePage extends BasePage { - static const _aspectRatioImage = 1.26; - static const _baseWidth = 411.43; - final _image = Image.asset('assets/images/welcomeImg.png'); - final _cakeLogo = Image.asset('assets/images/cake_logo.png'); + static const aspectRatioImage = 1.25; + final welcomeImage = Image.asset('assets/images/welcome.png'); + final newWalletImage = Image.asset('assets/images/new_wallet.png', height: 12, width: 12, color: PaletteDark.historyPanel); + final restoreWalletImage = Image.asset('assets/images/restore_wallet.png', height: 12, width: 12, color: Colors.white); + + @override + Color get backgroundColor => PaletteDark.historyPanel; @override Widget build(BuildContext context) { @@ -21,75 +25,89 @@ class WelcomePage extends BasePage { @override Widget body(BuildContext context) { - final _screenWidth = MediaQuery.of(context).size.width; - final textScaleFactor = _screenWidth < _baseWidth ? 0.76 : 1.0; - - return Column(children: [ - Stack( - alignment: Alignment.center, - children: [ - AspectRatio( - aspectRatio: _aspectRatioImage, - child: FittedBox(child: _image, fit: BoxFit.fill)), - Positioned(bottom: 0.0, child: _cakeLogo) - ], - ), - Expanded( - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Text( - S.of(context).welcome, - style: TextStyle( - fontSize: 30.0, - fontWeight: FontWeight.bold, - ), - textScaleFactor: textScaleFactor, - textAlign: TextAlign.center, + return Container( + padding: EdgeInsets.only(top: 20), + color: PaletteDark.historyPanel, + child: ScrollableWithBottomSection( + contentPadding: EdgeInsets.only(bottom: 20), + content: Column( + children: [ + AspectRatio( + aspectRatio: aspectRatioImage, + child: FittedBox(child: welcomeImage, fit: BoxFit.fill)), + Padding( + padding: EdgeInsets.only(left: 24, right: 24, top: 40), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + S.of(context).welcome, + style: TextStyle( + fontSize: 18, + color: PaletteDark.walletCardText, + ), + textAlign: TextAlign.center, + ), + Padding( + padding: EdgeInsets.only(top: 10), + child: Text( + S.of(context).cake_wallet, + style: TextStyle( + fontSize: 36, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + textAlign: TextAlign.center, + ), + ), + Padding( + padding: EdgeInsets.only(top: 14), + child: Text( + S.of(context).first_wallet_text, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: PaletteDark.walletCardText, + ), + textAlign: TextAlign.center, + ), + ), + ], ), - Text( - S.of(context).first_wallet_text, - style: TextStyle( - fontSize: 22.0, - color: Palette.lightBlue, - ), - textScaleFactor: textScaleFactor, - textAlign: TextAlign.center, - ), - Text( - S.of(context).please_make_selection, - style: TextStyle( - fontSize: 16.0, - color: Palette.lightBlue, - ), - textScaleFactor: textScaleFactor, - textAlign: TextAlign.center, - ) - ]), - ), - Container( - padding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 20.0), - child: Column(children: [ - PrimaryButton( - onPressed: () { - Navigator.pushNamed(context, Routes.newWalletFromWelcome); - }, - text: S.of(context).create_new, - color: - Theme.of(context).primaryTextTheme.button.backgroundColor, - textColor: - Theme.of(context).primaryTextTheme.button.color), - SizedBox(height: 10), - PrimaryButton( - onPressed: () { - Navigator.pushNamed(context, Routes.restoreOptions); - }, - color: Theme.of(context).accentTextTheme.caption.backgroundColor, - textColor: - Theme.of(context).primaryTextTheme.button.color, - text: S.of(context).restore_wallet, ) - ])) - ]); + ], + ), + bottomSectionPadding: EdgeInsets.only(left: 24, right: 24, bottom: 20), + bottomSection: Column(children: [ + Text( + S.of(context).please_make_selection, + style: TextStyle( + fontSize: 12, + color: PaletteDark.walletCardText, + ), + textAlign: TextAlign.center, + ), + Padding( + padding: EdgeInsets.only(top: 24), + child: PrimaryImageButton( + onPressed: () => Navigator.pushNamed(context, Routes.newWalletFromWelcome), + image: newWalletImage, + text: S.of(context).create_new, + color: Colors.white, + textColor: PaletteDark.historyPanel), + ), + Padding( + padding: EdgeInsets.only(top: 10), + child: PrimaryImageButton( + onPressed: () => Navigator.pushNamed(context, Routes.restoreOptions), + image: restoreWalletImage, + text: S.of(context).restore_wallet, + color: PaletteDark.historyPanelButton, + textColor: 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/lib/src/widgets/primary_button.dart b/lib/src/widgets/primary_button.dart index fa309d5d0..fd3a9de85 100644 --- a/lib/src/widgets/primary_button.dart +++ b/lib/src/widgets/primary_button.dart @@ -1,6 +1,5 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:cake_wallet/palette.dart'; class PrimaryButton extends StatelessWidget { const PrimaryButton( @@ -27,7 +26,8 @@ class PrimaryButton extends StatelessWidget { onPressed: isDisabled ? (onDisabledPressed != null ? onDisabledPressed : null) : onPressed, - color: isDisabled ? Colors.transparent : color, + color: color, + disabledColor: color.withOpacity(0.5), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(26.0)), child: Text(text, @@ -35,8 +35,9 @@ class PrimaryButton extends StatelessWidget { fontSize: 15.0, fontWeight: FontWeight.w600, color: isDisabled - ? Palette.darkGrey - : textColor)), + ? Colors.grey.withOpacity(0.5) + : textColor + )), )); } } @@ -46,13 +47,13 @@ class LoadingPrimaryButton extends StatelessWidget { {@required this.onPressed, @required this.text, @required this.color, - @required this.borderColor, + @required this.textColor, this.isDisabled = false, this.isLoading = false}); final VoidCallback onPressed; final Color color; - final Color borderColor; + final Color textColor; final bool isLoading; final bool isDisabled; final String text; @@ -61,19 +62,23 @@ class LoadingPrimaryButton extends StatelessWidget { Widget build(BuildContext context) { return ButtonTheme( minWidth: double.infinity, - height: 56.0, + height: 52.0, child: FlatButton( onPressed: (isLoading || isDisabled) ? null : onPressed, color: color, + disabledColor: color.withOpacity(0.5), shape: RoundedRectangleBorder( - side: BorderSide(color: borderColor), - borderRadius: BorderRadius.circular(10.0)), + borderRadius: BorderRadius.circular(26.0)), child: isLoading ? CupertinoActivityIndicator(animating: true) : Text(text, - style: TextStyle( - fontSize: 16.0, - color: Theme.of(context).primaryTextTheme.button.color)), + style: TextStyle( + fontSize: 15.0, + fontWeight: FontWeight.w600, + color: isDisabled + ? Colors.grey.withOpacity(0.5) + : textColor + )), )); } } @@ -179,34 +184,6 @@ class PrimaryImageButton extends StatelessWidget { ], ), ) - /*Row( - children: [ - Container( - width: 28.0, - height: 56.0, - decoration: BoxDecoration( - shape: BoxShape.circle, color: Colors.transparent), - child: image, - ), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - height: 56.0, - child: Center( - child: Text(text, - style: TextStyle( - fontSize: 18.0, - color: Theme.of(context) - .primaryTextTheme - .button - .color)), - ), - ) - ])) - ], - ),*/ )); } } diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index a7e82893f..7f9fd1bcd 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -1,8 +1,9 @@ { - "welcome" : "Willkommen\nzu CAKE WALLET", - "first_wallet_text" : "tolle Brieftasche\nzum Monero", - "please_make_selection" : "Bitte treffen Sie unten eine Auswahl zu\nErstellen oder Wiederherstellen Ihrer Brieftasche.", - "create_new" : "Erstelle neu", + "welcome" : "Willkommen zu", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "tolle Brieftasche zum Monero", + "please_make_selection" : "Bitte treffen Sie unten eine Auswahl zu Erstellen oder Wiederherstellen Ihrer Brieftasche.", + "create_new" : "Neue Wallet erstellen", "restore_wallet" : "Wallet wiederherstellen", @@ -106,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", @@ -157,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 5681dc513..1f67c52b8 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -1,9 +1,10 @@ { - "welcome" : "WELCOME\nTO CAKE WALLET", - "first_wallet_text" : "Awesome wallet\nfor Monero", - "please_make_selection" : "Please make selection below to\ncreate or recover your wallet.", - "create_new" : "Create new", - "restore_wallet" : "Restore wallet", + "welcome" : "Welcome to", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "Awesome wallet for Monero", + "please_make_selection" : "Please make selection below to create or recover your wallet.", + "create_new" : "Create New Wallet", + "restore_wallet" : "Restore Wallet", "accounts" : "Accounts", @@ -106,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", @@ -157,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 260df0433..2494f3d8c 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -1,8 +1,9 @@ { - "welcome" : "Bienvenido\n CAKE WALLET", - "first_wallet_text" : "Impresionante billetera\npara Monero", - "please_make_selection" : "Seleccione a continuación para\ncrear o recuperar su billetera.", - "create_new" : "Crear nuevo", + "welcome" : "Bienvenido", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "Impresionante billetera para Monero", + "please_make_selection" : "Seleccione a continuación para crear o recuperar su billetera.", + "create_new" : "Crear nueva billetera", "restore_wallet" : "Restaurar billetera", @@ -106,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", @@ -157,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 85b6f080e..f46efc00f 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -1,8 +1,9 @@ { - "welcome" : "स्वागत हे\nसेवा मेरे CAKE WALLET", - "first_wallet_text" : "बहुत बढ़िया बटुआ\nके लिये Monero", - "please_make_selection" : "कृपया नीचे चयन करें\nअपना बटुआ बनाएं या पुनर्प्राप्त करें.", - "create_new" : "नया बनाओ", + "welcome" : "स्वागत हे सेवा मेरे", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "बहुत बढ़िया बटुआ के लिये Monero", + "please_make_selection" : "कृपया नीचे चयन करें अपना बटुआ बनाएं या पुनर्प्राप्त करें.", + "create_new" : "नया बटुआ बनाएँ", "restore_wallet" : "वॉलेट को पुनर्स्थापित करें", @@ -106,6 +107,7 @@ "new_wallet" : "नया बटुआ", "wallet_name" : "बटुए का नाम", "continue_text" : "जारी रहना", + "choose_wallet_currency" : "कृपया बटुआ मुद्रा चुनें:", "node_new" : "नया नोड", @@ -157,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 a291e6a12..3626dbfbe 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -1,9 +1,10 @@ { - "welcome" : "ようこそ\nに CAKE WALLET", - "first_wallet_text" : "素晴らしい財布\nために Monero", - "please_make_selection" : "以下を選択してください\nウォレットを作成または回復する.", - "create_new" : "新しく作る", - "restore_wallet" : "ウォレットを復元する", + "welcome" : "ようこそ に", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "素晴らしい財布 ために Monero", + "please_make_selection" : "以下を選択してください ウォレットを作成または回復する.", + "create_new" : "新しいウォレットを作成", + "restore_wallet" : "ウォレットを復元", "accounts" : "アカウント", @@ -106,6 +107,7 @@ "new_wallet" : "新しいウォレット", "wallet_name" : "ウォレット名", "continue_text" : "持続する", + "choose_wallet_currency" : "ウォレット通貨を選択してください:", "node_new" : "新しいノード", @@ -157,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 50acfcbb1..26bbd0712 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -1,9 +1,10 @@ { - "welcome" : "환영\n에 CAKE WALLET", - "first_wallet_text" : "멋진 지갑\n에 대한 Monero", - "please_make_selection" : "아래에서 선택하십시오\n지갑 만들기 또는 복구.", - "create_new" : "새로 만들기", - "restore_wallet" : "지갑 복원", + "welcome" : "환영 에", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "멋진 지갑 에 대한 Monero", + "please_make_selection" : "아래에서 선택하십시오 지갑 만들기 또는 복구.", + "create_new" : "새 월렛 만들기", + "restore_wallet" : "월렛 복원", "accounts" : "계정", @@ -106,6 +107,7 @@ "new_wallet" : "새 월렛", "wallet_name" : "지갑 이름", "continue_text" : "잇다", + "choose_wallet_currency" : "지갑 통화를 선택하십시오:", "node_new" : "새로운 노드", @@ -157,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 0268e8a0e..451b19ddb 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -1,8 +1,9 @@ { - "welcome" : "WELKOM\nBIJ CAKE WALLET", - "first_wallet_text" : "Geweldige portemonnee\nfvoor Monero", - "please_make_selection" : "Maak hieronder uw keuze tot\nmaak of herstel je portemonnee.", - "create_new" : "Maak nieuw", + "welcome" : "Welkom bij", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "Geweldige portemonnee fvoor Monero", + "please_make_selection" : "Maak hieronder uw keuze tot maak of herstel je portemonnee.", + "create_new" : "Maak een nieuwe portemonnee", "restore_wallet" : "Portemonnee herstellen", @@ -106,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", @@ -157,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 dec019a07..6f7df5644 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -1,8 +1,9 @@ { - "welcome" : "WITAMY\nW CAKE WALLET", - "first_wallet_text" : "Niesamowity portfel\nfdla Monero", - "please_make_selection" : "Wybierz poniżej, aby\ncutwórz lub odzyskaj swój portfel.", - "create_new" : "Tworzyć nowe", + "welcome" : "Witamy w", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "Niesamowity portfel dla Monero", + "please_make_selection" : "Wybierz poniżej, aby cutwórz lub odzyskaj swój portfel.", + "create_new" : "Utwórz nowy portfel", "restore_wallet" : "Przywróć portfel", @@ -106,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ł", @@ -157,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 fe855e87f..7f87ae700 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -1,8 +1,9 @@ { - "welcome" : "BEM-VINDO(A)\nÀ CAKE WALLET", - "first_wallet_text" : "Uma fantástica carteira\npara Monero", - "please_make_selection" : "Escolha se quer criar uma carteira nova\nou restaurar uma antiga.", - "create_new" : "Criar carteira", + "welcome" : "Bem-vindo ao", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "Uma fantástica carteira para Monero", + "please_make_selection" : "Escolha se quer criar uma carteira nova ou restaurar uma antiga.", + "create_new" : "Criar nova carteira", "restore_wallet" : "Restaurar carteira", @@ -106,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ó", @@ -157,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 5692f7421..0ad2222e7 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -1,8 +1,9 @@ { - "welcome" : "Приветствуем в CAKE WALLET", + "welcome" : "Приветствуем в", + "cake_wallet" : "Cake Wallet", "first_wallet_text" : "В самом удобном кошельке для Monero", "please_make_selection" : "Выберите способ создания кошелька: создать новый или восстановить ваш существующий.", - "create_new" : "Создать новый", + "create_new" : "Создать новый кошелёк", "restore_wallet" : "Восстановить кошелёк", @@ -106,6 +107,7 @@ "new_wallet" : "Новый кошелёк", "wallet_name" : "Имя кошелька", "continue_text" : "Продолжить", + "choose_wallet_currency" : "Пожалуйста, выберите валюту кошелька:", "node_new" : "Новая нода", @@ -157,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 e44a993f7..bb27290a9 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -1,8 +1,9 @@ { - "welcome" : "Вітаємо в CAKE WALLET", + "welcome" : "Вітаємо в", + "cake_wallet" : "Cake Wallet", "first_wallet_text" : "В самому зручному гаманці для Monero", - "please_make_selection" : "Виберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий.", - "create_new" : "Створити новий", + "please_make_selection" : "Оберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий.", + "create_new" : "Створити новий гаманець", "restore_wallet" : "Відновити гаманець", @@ -106,6 +107,7 @@ "new_wallet" : "Новий гаманець", "wallet_name" : "Ім'я гаманця", "continue_text" : "Продовжити", + "choose_wallet_currency" : "Будь ласка, виберіть валюту гаманця:", "node_new" : "Новий вузол", @@ -157,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 06a428fce..368fdb0df 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -1,8 +1,9 @@ { - "welcome" : "欢迎\nTO CAKE WALLET", - "first_wallet_text" : "很棒的钱包\n对于 Monero", - "please_make_selection" : "请在下面进行选择\nc创建或恢复您的钱包.", - "create_new" : "创建新的", + "welcome" : "歡迎來到", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "很棒的钱包 对于 Monero", + "please_make_selection" : "请在下面进行选择 创建或恢复您的钱包.", + "create_new" : "创建新钱包", "restore_wallet" : "恢复钱包", @@ -106,6 +107,7 @@ "new_wallet" : "新钱包", "wallet_name" : "钱包名称", "continue_text" : "继续", + "choose_wallet_currency" : "請選擇錢包貨幣:", "node_new" : "新节点", @@ -157,7 +159,8 @@ "copy" : "复制", - "seed_language_choose" : "請選擇種子語言", + "seed_language_choose" : "請選擇種子語言:", + "seed_choose" : "選擇種子語言", "seed_language_next" : "下一个", "seed_language_english" : "英語", "seed_language_chinese" : "中文",