Merge branch 'newdesign' into CWA-205-update-restore-wallet-screens

# Conflicts:
#	lib/src/screens/exchange/exchange_page.dart
#	lib/src/screens/new_wallet/new_wallet_page.dart
#	lib/src/screens/new_wallet/widgets/select_button.dart
#	lib/src/screens/rescan/rescan_page.dart
#	lib/src/screens/restore/restore_wallet_from_keys_page.dart
#	lib/src/screens/restore/restore_wallet_from_seed_details.dart
#	lib/src/screens/seed_language/widgets/seed_language_picker.dart
#	lib/src/widgets/primary_button.dart
This commit is contained in:
Oleksandr Sobol 2020-05-01 22:51:27 +03:00
commit 1dff5148ff
74 changed files with 864 additions and 465 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,017 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,001 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 B

BIN
assets/images/2.0x/usa.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
assets/images/3.0x/usa.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 KiB

BIN
assets/images/bitcoin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
assets/images/header.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
assets/images/welcome.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

View file

@ -40,12 +40,14 @@ class S implements WidgetsLocalizations {
String get available_balance => "Available Balance"; String get available_balance => "Available Balance";
String get biometric_auth_reason => "Scan your fingerprint to authenticate"; String get biometric_auth_reason => "Scan your fingerprint to authenticate";
String get buy => "Buy"; String get buy => "Buy";
String get cake_wallet => "Cake Wallet";
String get cancel => "Cancel"; String get cancel => "Cancel";
String get card_address => "Address:"; String get card_address => "Address:";
String get change => "Change"; String get change => "Change";
String get change_currency => "Change Currency"; String get change_currency => "Change Currency";
String get change_exchange_provider => "Change Exchange Provider"; String get change_exchange_provider => "Change Exchange Provider";
String get change_language => "Change language"; String get change_language => "Change language";
String get choose_wallet_currency => "Please choose wallet currency:";
String get clear => "Clear"; String get clear => "Clear";
String get confirm => "Confirm"; String get confirm => "Confirm";
String get confirm_sending => "Confirm sending"; String get confirm_sending => "Confirm sending";
@ -56,7 +58,7 @@ class S implements WidgetsLocalizations {
String get copy => "Copy"; String get copy => "Copy";
String get copy_address => "Copy Address"; String get copy_address => "Copy Address";
String get copy_id => "Copy ID"; 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 delete => "Delete";
String get digit_pin => "-digit PIN"; String get digit_pin => "-digit PIN";
String get edit => "Edit"; String get edit => "Edit";
@ -84,7 +86,7 @@ class S implements WidgetsLocalizations {
String get faq => "FAQ"; String get faq => "FAQ";
String get fetching => "Fetching"; String get fetching => "Fetching";
String get filters => "Filters"; 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 full_balance => "Full Balance";
String get hidden_balance => "Hidden Balance"; String get hidden_balance => "Hidden Balance";
String get id => "ID: "; String get id => "ID: ";
@ -111,7 +113,7 @@ class S implements WidgetsLocalizations {
String get payment_id => "Payment ID: "; String get payment_id => "Payment ID: ";
String get pending => " (pending)"; String get pending => " (pending)";
String get pin_is_incorrect => "PIN is incorrect"; 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_select => "Please select:";
String get please_try_to_connect_to_another_node => "Please try to connect to another node"; String get please_try_to_connect_to_another_node => "Please try to connect to another node";
String get receive => "Receive"; String get receive => "Receive";
@ -143,7 +145,7 @@ class S implements WidgetsLocalizations {
String get restore_title_from_seed => "Restore from seed"; String get restore_title_from_seed => "Restore from seed";
String get restore_title_from_seed_keys => "Restore from seed/keys"; String get restore_title_from_seed_keys => "Restore from seed/keys";
String get restore_view_key_private => "View key (private)"; 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_name => "Wallet name";
String get restore_wallet_restore_description => "Wallet restore description"; String get restore_wallet_restore_description => "Wallet restore description";
String get save => "Save"; String get save => "Save";
@ -265,7 +267,7 @@ class S implements WidgetsLocalizations {
String get wallet_restoration_store_incorrect_seed_length => "Incorrect seed length"; String get wallet_restoration_store_incorrect_seed_length => "Incorrect seed length";
String get wallet_store_monero_wallet => "Monero Wallet"; String get wallet_store_monero_wallet => "Monero Wallet";
String get wallets => "Wallets"; String get wallets => "Wallets";
String get welcome => "WELCOME\nTO CAKE WALLET"; String get welcome => "Welcome to";
String get widgets_address => "Address"; String get widgets_address => "Address";
String get widgets_or => "or"; String get widgets_or => "or";
String get widgets_restore_from_blockheight => "Restore from blockheight"; String get widgets_restore_from_blockheight => "Restore from blockheight";
@ -343,7 +345,7 @@ class $de extends S {
@override @override
String get trade_state_underpaid => "Unterbezahlt"; String get trade_state_underpaid => "Unterbezahlt";
@override @override
String get welcome => "Willkommen\nzu CAKE WALLET"; String get welcome => "Willkommen zu";
@override @override
String get share_address => "Adresse teilen "; String get share_address => "Adresse teilen ";
@override @override
@ -427,6 +429,8 @@ class $de extends S {
@override @override
String get trade_details_pair => "Paar"; String get trade_details_pair => "Paar";
@override @override
String get choose_wallet_currency => "Bitte wählen Sie die Brieftaschenwährung:";
@override
String get confirm => "Bestätigen"; String get confirm => "Bestätigen";
@override @override
String get settings_display_balance_as => "Kontostand anzeigen als"; String get settings_display_balance_as => "Kontostand anzeigen als";
@ -439,7 +443,7 @@ class $de extends S {
@override @override
String get seed_language_german => "Deutsche"; String get seed_language_german => "Deutsche";
@override @override
String get create_new => "Erstelle neu"; String get create_new => "Neue Wallet erstellen";
@override @override
String get trade_details_fetching => "Holen"; String get trade_details_fetching => "Holen";
@override @override
@ -535,7 +539,7 @@ class $de extends S {
@override @override
String get copy_id => "ID kopieren"; String get copy_id => "ID kopieren";
@override @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 @override
String get loading_your_wallet => "Laden Sie Ihre Brieftasche"; String get loading_your_wallet => "Laden Sie Ihre Brieftasche";
@override @override
@ -585,6 +589,8 @@ class $de extends S {
@override @override
String get saved_the_trade_id => "Ich habe die Geschäfts-ID gespeichert"; String get saved_the_trade_id => "Ich habe die Geschäfts-ID gespeichert";
@override @override
String get cake_wallet => "Cake Wallet";
@override
String get settings_currency => "Währung"; String get settings_currency => "Währung";
@override @override
String get change_language => "Sprache ändern"; String get change_language => "Sprache ändern";
@ -821,7 +827,7 @@ class $de extends S {
@override @override
String get digit_pin => "-stelliger PIN"; String get digit_pin => "-stelliger PIN";
@override @override
String get first_wallet_text => "tolle Brieftasche\nzum Monero"; String get first_wallet_text => "tolle Brieftasche zum Monero";
@override @override
String get settings_trades => "Handel"; String get settings_trades => "Handel";
@override @override
@ -921,7 +927,7 @@ class $hi extends S {
@override @override
String get trade_state_underpaid => "के तहत भुगतान किया"; String get trade_state_underpaid => "के तहत भुगतान किया";
@override @override
String get welcome => "स्वागत हे\nसेवा मेरे CAKE WALLET"; String get welcome => "स्वागत हे सेवा मेरे";
@override @override
String get share_address => "पता साझा करें"; String get share_address => "पता साझा करें";
@override @override
@ -1005,6 +1011,8 @@ class $hi extends S {
@override @override
String get trade_details_pair => "जोड़ा"; String get trade_details_pair => "जोड़ा";
@override @override
String get choose_wallet_currency => "कृपया बटुआ मुद्रा चुनें:";
@override
String get confirm => "की पुष्टि करें"; String get confirm => "की पुष्टि करें";
@override @override
String get settings_display_balance_as => "के रूप में संतुलन प्रदर्शित करें"; String get settings_display_balance_as => "के रूप में संतुलन प्रदर्शित करें";
@ -1017,7 +1025,7 @@ class $hi extends S {
@override @override
String get seed_language_german => "जर्मन"; String get seed_language_german => "जर्मन";
@override @override
String get create_new => "नया बनाओ"; String get create_new => "नया बटुआ बनाएँ";
@override @override
String get trade_details_fetching => "ला रहा है"; String get trade_details_fetching => "ला रहा है";
@override @override
@ -1113,7 +1121,7 @@ class $hi extends S {
@override @override
String get copy_id => "प्रतिलिपि ID"; String get copy_id => "प्रतिलिपि ID";
@override @override
String get please_make_selection => "कृपया नीचे चयन करें\nअपना बटुआ बनाएं या पुनर्प्राप्त करें."; String get please_make_selection => "कृपया नीचे चयन करें अपना बटुआ बनाएं या पुनर्प्राप्त करें.";
@override @override
String get loading_your_wallet => "अपना बटुआ लोड कर रहा है"; String get loading_your_wallet => "अपना बटुआ लोड कर रहा है";
@override @override
@ -1163,6 +1171,8 @@ class $hi extends S {
@override @override
String get saved_the_trade_id => "मैंने व्यापार बचा लिया है ID"; String get saved_the_trade_id => "मैंने व्यापार बचा लिया है ID";
@override @override
String get cake_wallet => "Cake Wallet";
@override
String get settings_currency => "मुद्रा"; String get settings_currency => "मुद्रा";
@override @override
String get change_language => "भाषा बदलो"; String get change_language => "भाषा बदलो";
@ -1399,7 +1409,7 @@ class $hi extends S {
@override @override
String get digit_pin => "-अंक पिन"; String get digit_pin => "-अंक पिन";
@override @override
String get first_wallet_text => "बहुत बढ़िया बटुआ\nके लिये Monero"; String get first_wallet_text => "बहुत बढ़िया बटुआ के लिये Monero";
@override @override
String get settings_trades => "ट्रेडों"; String get settings_trades => "ट्रेडों";
@override @override
@ -1499,7 +1509,7 @@ class $ru extends S {
@override @override
String get trade_state_underpaid => "Недоплаченная"; String get trade_state_underpaid => "Недоплаченная";
@override @override
String get welcome => "Приветствуем в CAKE WALLET"; String get welcome => "Приветствуем в";
@override @override
String get share_address => "Поделиться адресом"; String get share_address => "Поделиться адресом";
@override @override
@ -1583,6 +1593,8 @@ class $ru extends S {
@override @override
String get trade_details_pair => "Пара"; String get trade_details_pair => "Пара";
@override @override
String get choose_wallet_currency => "Пожалуйста, выберите валюту кошелька:";
@override
String get confirm => "Подтвердить"; String get confirm => "Подтвердить";
@override @override
String get settings_display_balance_as => "Отображать баланс как"; String get settings_display_balance_as => "Отображать баланс как";
@ -1595,7 +1607,7 @@ class $ru extends S {
@override @override
String get seed_language_german => "Немецкий"; String get seed_language_german => "Немецкий";
@override @override
String get create_new => "Создать новый"; String get create_new => "Создать новый кошелёк";
@override @override
String get trade_details_fetching => "Получение"; String get trade_details_fetching => "Получение";
@override @override
@ -1741,6 +1753,8 @@ class $ru extends S {
@override @override
String get saved_the_trade_id => "Я сохранил ID сделки"; String get saved_the_trade_id => "Я сохранил ID сделки";
@override @override
String get cake_wallet => "Cake Wallet";
@override
String get settings_currency => "Валюта"; String get settings_currency => "Валюта";
@override @override
String get change_language => "Изменить язык"; String get change_language => "Изменить язык";
@ -2077,7 +2091,7 @@ class $ko extends S {
@override @override
String get trade_state_underpaid => "미지급"; String get trade_state_underpaid => "미지급";
@override @override
String get welcome => "환영\n에 CAKE WALLET"; String get welcome => "환영";
@override @override
String get share_address => "주소 공유"; String get share_address => "주소 공유";
@override @override
@ -2161,6 +2175,8 @@ class $ko extends S {
@override @override
String get trade_details_pair => ""; String get trade_details_pair => "";
@override @override
String get choose_wallet_currency => "지갑 통화를 선택하십시오:";
@override
String get confirm => "확인"; String get confirm => "확인";
@override @override
String get settings_display_balance_as => "잔액 표시"; String get settings_display_balance_as => "잔액 표시";
@ -2173,7 +2189,7 @@ class $ko extends S {
@override @override
String get seed_language_german => "독일 사람"; String get seed_language_german => "독일 사람";
@override @override
String get create_new => " 만들기"; String get create_new => " 월렛 만들기";
@override @override
String get trade_details_fetching => "가져 오는 중"; String get trade_details_fetching => "가져 오는 중";
@override @override
@ -2269,7 +2285,7 @@ class $ko extends S {
@override @override
String get copy_id => "부 ID"; String get copy_id => "부 ID";
@override @override
String get please_make_selection => "아래에서 선택하십시오\n지갑 만들기 또는 복구."; String get please_make_selection => "아래에서 선택하십시오 지갑 만들기 또는 복구.";
@override @override
String get loading_your_wallet => "지갑 넣기"; String get loading_your_wallet => "지갑 넣기";
@override @override
@ -2319,6 +2335,8 @@ class $ko extends S {
@override @override
String get saved_the_trade_id => "거래 ID를 저장했습니다"; String get saved_the_trade_id => "거래 ID를 저장했습니다";
@override @override
String get cake_wallet => "Cake Wallet";
@override
String get settings_currency => "통화"; String get settings_currency => "통화";
@override @override
String get change_language => "언어 변경"; String get change_language => "언어 변경";
@ -2515,7 +2533,7 @@ class $ko extends S {
@override @override
String get settings_support => "지원하다"; String get settings_support => "지원하다";
@override @override
String get restore_wallet => "지갑 복원"; String get restore_wallet => "월렛 복원";
@override @override
String get ok => "승인"; String get ok => "승인";
@override @override
@ -2555,7 +2573,7 @@ class $ko extends S {
@override @override
String get digit_pin => "숫자 PIN"; String get digit_pin => "숫자 PIN";
@override @override
String get first_wallet_text => "멋진 지갑\n에 대한 Monero"; String get first_wallet_text => "멋진 지갑 에 대한 Monero";
@override @override
String get settings_trades => "거래"; String get settings_trades => "거래";
@override @override
@ -2655,7 +2673,7 @@ class $pt extends S {
@override @override
String get trade_state_underpaid => "Parcialmente paga"; String get trade_state_underpaid => "Parcialmente paga";
@override @override
String get welcome => "BEM-VINDO(A)\nÀ CAKE WALLET"; String get welcome => "Bem-vindo ao";
@override @override
String get share_address => "Compartilhar endereço"; String get share_address => "Compartilhar endereço";
@override @override
@ -2739,6 +2757,8 @@ class $pt extends S {
@override @override
String get trade_details_pair => "Par"; String get trade_details_pair => "Par";
@override @override
String get choose_wallet_currency => "Escolha a moeda da carteira:";
@override
String get confirm => "Confirmar"; String get confirm => "Confirmar";
@override @override
String get settings_display_balance_as => "Saldo a exibir"; String get settings_display_balance_as => "Saldo a exibir";
@ -2751,7 +2771,7 @@ class $pt extends S {
@override @override
String get seed_language_german => "Alemã"; String get seed_language_german => "Alemã";
@override @override
String get create_new => "Criar carteira"; String get create_new => "Criar nova carteira";
@override @override
String get trade_details_fetching => "Buscando"; String get trade_details_fetching => "Buscando";
@override @override
@ -2847,7 +2867,7 @@ class $pt extends S {
@override @override
String get copy_id => "Copiar ID"; String get copy_id => "Copiar ID";
@override @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 @override
String get loading_your_wallet => "Abrindo sua carteira"; String get loading_your_wallet => "Abrindo sua carteira";
@override @override
@ -2897,6 +2917,8 @@ class $pt extends S {
@override @override
String get saved_the_trade_id => "ID da troca salvo"; String get saved_the_trade_id => "ID da troca salvo";
@override @override
String get cake_wallet => "Cake Wallet";
@override
String get settings_currency => "Moeda"; String get settings_currency => "Moeda";
@override @override
String get change_language => "Mudar idioma"; String get change_language => "Mudar idioma";
@ -3133,7 +3155,7 @@ class $pt extends S {
@override @override
String get digit_pin => "dígitos"; String get digit_pin => "dígitos";
@override @override
String get first_wallet_text => "Uma fantástica carteira\npara Monero"; String get first_wallet_text => "Uma fantástica carteira para Monero";
@override @override
String get settings_trades => "Trocas"; String get settings_trades => "Trocas";
@override @override
@ -3233,7 +3255,7 @@ class $uk extends S {
@override @override
String get trade_state_underpaid => "Недоплачена"; String get trade_state_underpaid => "Недоплачена";
@override @override
String get welcome => "Вітаємо в CAKE WALLET"; String get welcome => "Вітаємо в";
@override @override
String get share_address => "Поділитися адресою"; String get share_address => "Поділитися адресою";
@override @override
@ -3317,6 +3339,8 @@ class $uk extends S {
@override @override
String get trade_details_pair => "Пара"; String get trade_details_pair => "Пара";
@override @override
String get choose_wallet_currency => "Будь ласка, виберіть валюту гаманця:";
@override
String get confirm => "Підтвердити"; String get confirm => "Підтвердити";
@override @override
String get settings_display_balance_as => "Відображати баланс як"; String get settings_display_balance_as => "Відображати баланс як";
@ -3329,7 +3353,7 @@ class $uk extends S {
@override @override
String get seed_language_german => "Німецька"; String get seed_language_german => "Німецька";
@override @override
String get create_new => "Створити новий"; String get create_new => "Створити новий гаманець";
@override @override
String get trade_details_fetching => "Отримання"; String get trade_details_fetching => "Отримання";
@override @override
@ -3425,7 +3449,7 @@ class $uk extends S {
@override @override
String get copy_id => "Скопіювати ID"; String get copy_id => "Скопіювати ID";
@override @override
String get please_make_selection => "Виберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий."; String get please_make_selection => "Оберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий.";
@override @override
String get loading_your_wallet => "Завантаження гаманця"; String get loading_your_wallet => "Завантаження гаманця";
@override @override
@ -3475,6 +3499,8 @@ class $uk extends S {
@override @override
String get saved_the_trade_id => "Я зберіг ID операції"; String get saved_the_trade_id => "Я зберіг ID операції";
@override @override
String get cake_wallet => "Cake Wallet";
@override
String get settings_currency => "Валюта"; String get settings_currency => "Валюта";
@override @override
String get change_language => "Змінити мову"; String get change_language => "Змінити мову";
@ -3811,7 +3837,7 @@ class $ja extends S {
@override @override
String get trade_state_underpaid => "支払不足"; String get trade_state_underpaid => "支払不足";
@override @override
String get welcome => "ようこそ\nに CAKE WALLET"; String get welcome => "ようこそ";
@override @override
String get share_address => "住所を共有する"; String get share_address => "住所を共有する";
@override @override
@ -3895,6 +3921,8 @@ class $ja extends S {
@override @override
String get trade_details_pair => "ペア"; String get trade_details_pair => "ペア";
@override @override
String get choose_wallet_currency => "ウォレット通貨を選択してください:";
@override
String get confirm => "確認する"; String get confirm => "確認する";
@override @override
String get settings_display_balance_as => "残高を表示"; String get settings_display_balance_as => "残高を表示";
@ -3907,7 +3935,7 @@ class $ja extends S {
@override @override
String get seed_language_german => "ドイツ人"; String get seed_language_german => "ドイツ人";
@override @override
String get create_new => "新しく作る"; String get create_new => "新しいウォレットを作成";
@override @override
String get trade_details_fetching => "フェッチング"; String get trade_details_fetching => "フェッチング";
@override @override
@ -4003,7 +4031,7 @@ class $ja extends S {
@override @override
String get copy_id => "IDをコピー"; String get copy_id => "IDをコピー";
@override @override
String get please_make_selection => "以下を選択してください\nウォレットを作成または回復する."; String get please_make_selection => "以下を選択してください ウォレットを作成または回復する.";
@override @override
String get loading_your_wallet => "ウォレットをロードしています"; String get loading_your_wallet => "ウォレットをロードしています";
@override @override
@ -4053,6 +4081,8 @@ class $ja extends S {
@override @override
String get saved_the_trade_id => "取引IDを保存しました"; String get saved_the_trade_id => "取引IDを保存しました";
@override @override
String get cake_wallet => "Cake Wallet";
@override
String get settings_currency => "通貨"; String get settings_currency => "通貨";
@override @override
String get change_language => "言語を変えてください"; String get change_language => "言語を変えてください";
@ -4249,7 +4279,7 @@ class $ja extends S {
@override @override
String get settings_support => "サポート"; String get settings_support => "サポート";
@override @override
String get restore_wallet => "ウォレットを復元する"; String get restore_wallet => "ウォレットを復元";
@override @override
String get ok => "OK"; String get ok => "OK";
@override @override
@ -4289,7 +4319,7 @@ class $ja extends S {
@override @override
String get digit_pin => "桁ピン"; String get digit_pin => "桁ピン";
@override @override
String get first_wallet_text => "素晴らしい財布\nために Monero"; String get first_wallet_text => "素晴らしい財布 ために Monero";
@override @override
String get settings_trades => "取引"; String get settings_trades => "取引";
@override @override
@ -4393,7 +4423,7 @@ class $pl extends S {
@override @override
String get trade_state_underpaid => "Niedopłacone"; String get trade_state_underpaid => "Niedopłacone";
@override @override
String get welcome => "WITAMY\nW CAKE WALLET"; String get welcome => "Witamy w";
@override @override
String get share_address => "Udostępnij adres"; String get share_address => "Udostępnij adres";
@override @override
@ -4477,6 +4507,8 @@ class $pl extends S {
@override @override
String get trade_details_pair => "Para"; String get trade_details_pair => "Para";
@override @override
String get choose_wallet_currency => "Wybierz walutę portfela:";
@override
String get confirm => "Potwierdzać"; String get confirm => "Potwierdzać";
@override @override
String get settings_display_balance_as => "Wyświetl saldo jako"; String get settings_display_balance_as => "Wyświetl saldo jako";
@ -4489,7 +4521,7 @@ class $pl extends S {
@override @override
String get seed_language_german => "Niemiecki"; String get seed_language_german => "Niemiecki";
@override @override
String get create_new => "Tworzyć nowe"; String get create_new => "Utwórz nowy portfel";
@override @override
String get trade_details_fetching => "Ujmujący"; String get trade_details_fetching => "Ujmujący";
@override @override
@ -4585,7 +4617,7 @@ class $pl extends S {
@override @override
String get copy_id => "ID kopii"; String get copy_id => "ID kopii";
@override @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 @override
String get loading_your_wallet => "Ładowanie portfela"; String get loading_your_wallet => "Ładowanie portfela";
@override @override
@ -4635,6 +4667,8 @@ class $pl extends S {
@override @override
String get saved_the_trade_id => "Zapisałem ID"; String get saved_the_trade_id => "Zapisałem ID";
@override @override
String get cake_wallet => "Cake Wallet";
@override
String get settings_currency => "Waluta"; String get settings_currency => "Waluta";
@override @override
String get change_language => "Zmień język"; String get change_language => "Zmień język";
@ -4871,7 +4905,7 @@ class $pl extends S {
@override @override
String get digit_pin => "-znak PIN"; String get digit_pin => "-znak PIN";
@override @override
String get first_wallet_text => "Niesamowity portfel\nfdla Monero"; String get first_wallet_text => "Niesamowity portfel dla Monero";
@override @override
String get settings_trades => "Transakcje"; String get settings_trades => "Transakcje";
@override @override
@ -4971,7 +5005,7 @@ class $es extends S {
@override @override
String get trade_state_underpaid => "Poco pagado"; String get trade_state_underpaid => "Poco pagado";
@override @override
String get welcome => "Bienvenido\n CAKE WALLET"; String get welcome => "Bienvenido";
@override @override
String get share_address => "Compartir dirección"; String get share_address => "Compartir dirección";
@override @override
@ -5055,6 +5089,8 @@ class $es extends S {
@override @override
String get trade_details_pair => "Par"; String get trade_details_pair => "Par";
@override @override
String get choose_wallet_currency => "Por favor, elija la moneda de la billetera:";
@override
String get confirm => "Confirmar"; String get confirm => "Confirmar";
@override @override
String get settings_display_balance_as => "Mostrar saldo como"; String get settings_display_balance_as => "Mostrar saldo como";
@ -5067,7 +5103,7 @@ class $es extends S {
@override @override
String get seed_language_german => "Alemán"; String get seed_language_german => "Alemán";
@override @override
String get create_new => "Crear nuevo"; String get create_new => "Crear nueva billetera";
@override @override
String get trade_details_fetching => "Cargando"; String get trade_details_fetching => "Cargando";
@override @override
@ -5163,7 +5199,7 @@ class $es extends S {
@override @override
String get copy_id => "Copiar ID"; String get copy_id => "Copiar ID";
@override @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 @override
String get loading_your_wallet => "Cargando tu billetera"; String get loading_your_wallet => "Cargando tu billetera";
@override @override
@ -5213,6 +5249,8 @@ class $es extends S {
@override @override
String get saved_the_trade_id => "He salvado comercial ID"; String get saved_the_trade_id => "He salvado comercial ID";
@override @override
String get cake_wallet => "Cake Wallet";
@override
String get settings_currency => "Moneda"; String get settings_currency => "Moneda";
@override @override
String get change_language => "Cambiar idioma"; String get change_language => "Cambiar idioma";
@ -5449,7 +5487,7 @@ class $es extends S {
@override @override
String get digit_pin => "-dígito PIN"; String get digit_pin => "-dígito PIN";
@override @override
String get first_wallet_text => "Impresionante billetera\npara Monero"; String get first_wallet_text => "Impresionante billetera para Monero";
@override @override
String get settings_trades => "Comercia"; String get settings_trades => "Comercia";
@override @override
@ -5549,7 +5587,7 @@ class $nl extends S {
@override @override
String get trade_state_underpaid => "Slecht betaald"; String get trade_state_underpaid => "Slecht betaald";
@override @override
String get welcome => "WELKOM\nBIJ CAKE WALLET"; String get welcome => "Welkom bij";
@override @override
String get share_address => "Deel adres"; String get share_address => "Deel adres";
@override @override
@ -5633,6 +5671,8 @@ class $nl extends S {
@override @override
String get trade_details_pair => "Paar"; String get trade_details_pair => "Paar";
@override @override
String get choose_wallet_currency => "Kies een portemonnee-valuta:";
@override
String get confirm => "Bevestigen"; String get confirm => "Bevestigen";
@override @override
String get settings_display_balance_as => "Toon saldo als"; String get settings_display_balance_as => "Toon saldo als";
@ -5645,7 +5685,7 @@ class $nl extends S {
@override @override
String get seed_language_german => "Duitse"; String get seed_language_german => "Duitse";
@override @override
String get create_new => "Maak nieuw"; String get create_new => "Maak een nieuwe portemonnee";
@override @override
String get trade_details_fetching => "Ophalen"; String get trade_details_fetching => "Ophalen";
@override @override
@ -5741,7 +5781,7 @@ class $nl extends S {
@override @override
String get copy_id => "ID kopiëren"; String get copy_id => "ID kopiëren";
@override @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 @override
String get loading_your_wallet => "Uw portemonnee laden"; String get loading_your_wallet => "Uw portemonnee laden";
@override @override
@ -5791,6 +5831,8 @@ class $nl extends S {
@override @override
String get saved_the_trade_id => "Ik heb de ruil-ID opgeslagen"; String get saved_the_trade_id => "Ik heb de ruil-ID opgeslagen";
@override @override
String get cake_wallet => "Cake Wallet";
@override
String get settings_currency => "Valuta"; String get settings_currency => "Valuta";
@override @override
String get change_language => "Verander de taal"; String get change_language => "Verander de taal";
@ -6027,7 +6069,7 @@ class $nl extends S {
@override @override
String get digit_pin => "-cijferige PIN"; String get digit_pin => "-cijferige PIN";
@override @override
String get first_wallet_text => "Geweldige portemonnee\nfvoor Monero"; String get first_wallet_text => "Geweldige portemonnee fvoor Monero";
@override @override
String get settings_trades => "Trades"; String get settings_trades => "Trades";
@override @override
@ -6127,7 +6169,7 @@ class $zh extends S {
@override @override
String get trade_state_underpaid => "支付不足"; String get trade_state_underpaid => "支付不足";
@override @override
String get welcome => "欢迎\nTO CAKE WALLET"; String get welcome => "歡迎來到";
@override @override
String get share_address => "分享地址"; String get share_address => "分享地址";
@override @override
@ -6211,6 +6253,8 @@ class $zh extends S {
@override @override
String get trade_details_pair => ""; String get trade_details_pair => "";
@override @override
String get choose_wallet_currency => "請選擇錢包貨幣:";
@override
String get confirm => "确认"; String get confirm => "确认";
@override @override
String get settings_display_balance_as => "将余额显示为"; String get settings_display_balance_as => "将余额显示为";
@ -6223,7 +6267,7 @@ class $zh extends S {
@override @override
String get seed_language_german => "德語"; String get seed_language_german => "德語";
@override @override
String get create_new => "创建新"; String get create_new => "创建新钱包";
@override @override
String get trade_details_fetching => "正在取得"; String get trade_details_fetching => "正在取得";
@override @override
@ -6319,7 +6363,7 @@ class $zh extends S {
@override @override
String get copy_id => "复印ID"; String get copy_id => "复印ID";
@override @override
String get please_make_selection => "请在下面进行选择\nc创建或恢复您的钱包."; String get please_make_selection => "请在下面进行选择 创建或恢复您的钱包.";
@override @override
String get loading_your_wallet => "装钱包"; String get loading_your_wallet => "装钱包";
@override @override
@ -6369,6 +6413,8 @@ class $zh extends S {
@override @override
String get saved_the_trade_id => "我已经保存了交易ID"; String get saved_the_trade_id => "我已经保存了交易ID";
@override @override
String get cake_wallet => "Cake Wallet";
@override
String get settings_currency => "货币"; String get settings_currency => "货币";
@override @override
String get change_language => "改變語言"; String get change_language => "改變語言";
@ -6605,7 +6651,7 @@ class $zh extends S {
@override @override
String get digit_pin => "数字别针"; String get digit_pin => "数字别针";
@override @override
String get first_wallet_text => "很棒的钱包\n对于 Monero"; String get first_wallet_text => "很棒的钱包 对于 Monero";
@override @override
String get settings_trades => "交易"; String get settings_trades => "交易";
@override @override

View file

@ -74,6 +74,8 @@ class PaletteDark {
static const Color backgroundStart = Color.fromRGBO(231, 240, 253, 1.0); static const Color backgroundStart = Color.fromRGBO(231, 240, 253, 1.0);
static const Color backgroundEnd = Color.fromRGBO(172, 203, 238, 1.0); static const Color backgroundEnd = Color.fromRGBO(172, 203, 238, 1.0);
static const Color mainBackgroundColor = Color.fromRGBO(70, 85, 133, 1.0);
static const Color borderCardColor = Color.fromRGBO(81, 96, 147, 1.0);
static const Color walletCardTopStartSync = Color.fromRGBO(89, 104, 152, 1.0); static const Color walletCardTopStartSync = Color.fromRGBO(89, 104, 152, 1.0);
static const Color walletCardBottomStartSync = Color.fromRGBO(70, 85, 133, 1.0); static const Color walletCardBottomStartSync = Color.fromRGBO(70, 85, 133, 1.0);
static const Color walletCardTopEndSync = Color.fromRGBO(70, 85, 133, 1.0); static const Color walletCardTopEndSync = Color.fromRGBO(70, 85, 133, 1.0);
@ -87,4 +89,5 @@ class PaletteDark {
static const Color historyPanelButton = Color.fromRGBO(39, 53, 96, 1.0); 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 menuHeader = Color.fromRGBO(41, 52, 84, 1.0);
static const Color menuList = Color.fromRGBO(48, 59, 95, 1.0); static const Color menuList = Color.fromRGBO(48, 59, 95, 1.0);
static const Color selectButtonText = Color.fromRGBO(57, 74, 95, 1.0);
} }

View file

@ -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/seed/create_seed_page.dart';
import 'package:cake_wallet/src/screens/dashboard/create_dashboard_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/welcome/create_welcome_page.dart';
import 'package:cake_wallet/src/screens/new_wallet/new_wallet_type_page.dart';
class Router { class Router {
static Route<dynamic> generateRoute( static Route<dynamic> generateRoute(
@ -117,7 +118,10 @@ class Router {
sharedPreferences: sharedPreferences)), sharedPreferences: sharedPreferences)),
child: SetupPinCodePage( child: SetupPinCodePage(
onPinCodeSetup: (context, _) => onPinCodeSetup: (context, _) =>
Navigator.pushNamed(context, Routes.newWallet)))); Navigator.pushNamed(context, Routes.newWalletType))));
case Routes.newWalletType:
return CupertinoPageRoute<void>(builder: (_) => NewWalletTypePage());
case Routes.newWallet: case Routes.newWallet:
return CupertinoPageRoute<void>( return CupertinoPageRoute<void>(

View file

@ -44,4 +44,5 @@ class Routes {
static const rescan = '/rescan'; static const rescan = '/rescan';
static const faq = '/faq'; static const faq = '/faq';
static const changeLanguage = '/change_language'; static const changeLanguage = '/change_language';
static const newWalletType = '/new_wallet_type';
} }

View file

@ -1,16 +1,40 @@
import 'package:cake_wallet/src/screens/dashboard/widgets/menu_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:cake_wallet/palette.dart'; import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/wallet_card.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/wallet_card.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/trade_history_panel.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/trade_history_panel.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/menu_widget.dart';
class DashboardPage extends BasePage { class DashboardPage extends BasePage {
final _bodyKey = GlobalKey(); final _bodyKey = GlobalKey();
@override @override
ObstructingPreferredSizeWidget appBar(BuildContext context) => null; Color get backgroundColor => PaletteDark.mainBackgroundColor;
@override
Widget trailing(BuildContext context) {
final menuButton = Image.asset('assets/images/header.png');
return SizedBox(
height: 37,
width: 37,
child: ButtonTheme(
minWidth: double.minPositive,
child: FlatButton(
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
padding: EdgeInsets.all(0),
onPressed: () async {
await showDialog<void>(
builder: (_) => MenuWidget(),
context: context
);
},
child: menuButton),
),
);
}
@override @override
Widget body(BuildContext context) => DashboardPageBody(key: _bodyKey); Widget body(BuildContext context) => DashboardPageBody(key: _bodyKey);
@ -24,46 +48,17 @@ class DashboardPageBody extends StatefulWidget {
} }
class DashboardPageBodyState extends State<DashboardPageBody> { class DashboardPageBodyState extends State<DashboardPageBody> {
final menuButton = Image.asset('assets/images/menu_button.png');
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final List<Color> colors = [PaletteDark.backgroundStart, PaletteDark.backgroundEnd];
return SafeArea( return SafeArea(
child: Container( child: Container(
decoration: BoxDecoration( color: PaletteDark.mainBackgroundColor,
gradient: LinearGradient(
colors: colors
)
),
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Padding( Padding(
padding: EdgeInsets.only(top: 14), padding: EdgeInsets.only(left: 20, top: 10),
child: Container(
width: double.infinity,
alignment: Alignment.centerRight,
child: SizedBox(
height: 37,
width: 37,
child: ButtonTheme(
minWidth: double.minPositive,
child: FlatButton(
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
padding: EdgeInsets.all(0),
onPressed: () => showDialog<void>(
builder: (_) => MenuWidget(),
context: context
),
child: menuButton),
),
),
)
),
Padding(
padding: EdgeInsets.only(left: 20, top: 23),
child: WalletCard(), child: WalletCard(),
), ),
SizedBox( SizedBox(

View file

@ -86,25 +86,6 @@ class WalletMenu {
}, },
reconnectActionRight: () => Navigator.of(context).pop() reconnectActionRight: () => Navigator.of(context).pop()
); );
/*AlertDialog(
title: Text(
S.of(context).reconnection,
textAlign: TextAlign.center,
),
content: Text(S.of(context).reconnect_alert_text),
actions: <Widget>[
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))
],
);*/
}); });
} }
} }

View file

@ -274,7 +274,7 @@ class ButtonHeader extends SliverPersistentHeaderDelegate {
width: 48, width: 48,
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: PaletteDark.borderCardColor,
shape: BoxShape.circle shape: BoxShape.circle
), ),
child: image, child: image,

View file

@ -24,7 +24,7 @@ class WalletCardState extends State<WalletCard> {
final _balanceObserverKey = GlobalKey(); final _balanceObserverKey = GlobalKey();
final _addressObserverKey = GlobalKey(); final _addressObserverKey = GlobalKey();
final List<Color> colorsSync = [PaletteDark.walletCardTopEndSync, PaletteDark.walletCardBottomEndSync]; final List<Color> colorsSync = [PaletteDark.walletCardSubAddressField, PaletteDark.walletCardBottomEndSync];
double cardWidth; double cardWidth;
double cardHeight; double cardHeight;
double screenWidth; double screenWidth;
@ -45,12 +45,12 @@ class WalletCardState extends State<WalletCard> {
} }
void afterLayout(dynamic _) { void afterLayout(dynamic _) {
screenWidth = MediaQuery.of(context).size.width; screenWidth = MediaQuery.of(context).size.width - 20;
setState(() { setState(() {
cardWidth = screenWidth; cardWidth = screenWidth;
opacity = 1; opacity = 1;
}); });
Timer(Duration(milliseconds: 350), () => Timer(Duration(milliseconds: 500), () =>
setState(() => isDraw = true) setState(() => isDraw = true)
); );
} }
@ -67,20 +67,34 @@ class WalletCardState extends State<WalletCard> {
height: cardHeight, height: cardHeight,
duration: Duration(milliseconds: 500), duration: Duration(milliseconds: 500),
curve: Curves.fastOutSlowIn, curve: Curves.fastOutSlowIn,
decoration: BoxDecoration( padding: EdgeInsets.only(
borderRadius: BorderRadius.only(topLeft: Radius.circular(10), bottomLeft: Radius.circular(10)), top: 1,
gradient: LinearGradient( left: 1,
colors: [PaletteDark.walletCardTopStartSync.withOpacity(opacity), bottom: 1
PaletteDark.walletCardBottomStartSync.withOpacity(opacity)],
begin: Alignment.topCenter,
end: Alignment.bottomCenter
)
), ),
child: InkWell( decoration: BoxDecoration(
onTap: () => setState(() => isFrontSide = !isFrontSide), borderRadius: BorderRadius.only(topLeft: Radius.circular(10), bottomLeft: Radius.circular(10)),
child: isFrontSide color: PaletteDark.borderCardColor,
? frontSide() boxShadow: [
: backSide() BoxShadow(
color: PaletteDark.historyPanel.withOpacity(0.5),
blurRadius: 8,
offset: Offset(5, 5))
]
),
child: Container(
width: cardWidth,
height: cardHeight,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(topLeft: Radius.circular(10), bottomLeft: Radius.circular(10)),
color: PaletteDark.historyPanel
),
child: InkWell(
onTap: () => setState(() => isFrontSide = !isFrontSide),
child: isFrontSide
? frontSide()
: backSide()
),
), ),
), ),
); );
@ -99,6 +113,7 @@ class WalletCardState extends State<WalletCard> {
final status = syncStore.status; final status = syncStore.status;
final statusText = status.title(); final statusText = status.title();
final progress = syncStore.status.progress(); final progress = syncStore.status.progress();
final indicatorWidth = progress * cardWidth;
String shortAddress = walletStore.subaddress.address; String shortAddress = walletStore.subaddress.address;
shortAddress = shortAddress.replaceRange(4, shortAddress.length - 4, '...'); shortAddress = shortAddress.replaceRange(4, shortAddress.length - 4, '...');
@ -125,7 +140,7 @@ class WalletCardState extends State<WalletCard> {
children: <Widget>[ children: <Widget>[
Container( Container(
height: cardHeight, height: cardHeight,
width: progress * cardWidth, width: indicatorWidth,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.only(topLeft: Radius.circular(10), bottomLeft: Radius.circular(10)), borderRadius: BorderRadius.only(topLeft: Radius.circular(10), bottomLeft: Radius.circular(10)),
gradient: LinearGradient( gradient: LinearGradient(
@ -135,6 +150,18 @@ class WalletCardState extends State<WalletCard> {
) )
), ),
), ),
progress != 1
? Positioned(
left: indicatorWidth,
top: 0,
bottom: 0,
child: Container(
width: 1,
height: cardHeight,
color: PaletteDark.borderCardColor,
)
)
: Offstage(),
isDraw ? Positioned( isDraw ? Positioned(
left: 20, left: 20,
right: 20, right: 20,
@ -303,7 +330,7 @@ class WalletCardState extends State<WalletCard> {
final walletStore = Provider.of<WalletStore>(context); final walletStore = Provider.of<WalletStore>(context);
final rightArrow = Image.asset('assets/images/right_arrow.png'); final rightArrow = Image.asset('assets/images/right_arrow.png');
double messageBoxHeight = 0; double messageBoxHeight = 0;
double messageBoxWidth = cardWidth - 30; double messageBoxWidth = cardWidth - 10;
return Observer( return Observer(
key: _addressObserverKey, key: _addressObserverKey,
@ -358,7 +385,7 @@ class WalletCardState extends State<WalletCard> {
try { try {
_addressObserverKey.currentState.setState(() { _addressObserverKey.currentState.setState(() {
messageBoxHeight = 0; messageBoxHeight = 0;
messageBoxWidth = cardWidth - 30; messageBoxWidth = cardWidth - 10;
}); });
} catch(e) { } catch(e) {
print('${e.toString()}'); print('${e.toString()}');

View file

@ -255,7 +255,7 @@ class ExchangeFormState extends State<ExchangeForm> {
.primaryTextTheme .primaryTextTheme
.button .button
.backgroundColor, .backgroundColor,
textColor: Theme.of(context).primaryTextTheme.button.color, textColor: Theme.of(context).primaryTextTheme.button.color,
isLoading: exchangeStore.tradeState is TradeIsCreating, isLoading: exchangeStore.tradeState is TradeIsCreating,
)), )),
Observer(builder: (_) { Observer(builder: (_) {

View file

@ -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/src/widgets/scollable_with_bottom_section.dart';
import 'package:cake_wallet/palette.dart'; import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/stores/seed_language/seed_language_store.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/seed_language/widgets/seed_language_picker.dart';
import 'package:cake_wallet/src/screens/new_wallet/widgets/wallet_creation_dialog.dart';
class NewWalletPage extends BasePage { class NewWalletPage extends BasePage {
NewWalletPage( NewWalletPage(
@ -29,6 +31,9 @@ class NewWalletPage extends BasePage {
@override @override
String get title => S.current.new_wallet; String get title => S.current.new_wallet;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override @override
Widget body(BuildContext context) => WalletNameForm(); Widget body(BuildContext context) => WalletNameForm();
} }
@ -39,14 +44,42 @@ class WalletNameForm extends StatefulWidget {
} }
class _WalletNameFormState extends State<WalletNameForm> { class _WalletNameFormState extends State<WalletNameForm> {
static const aspectRatioImage = 1.22;
final _formKey = GlobalKey<FormState>(); final _formKey = GlobalKey<FormState>();
final nameController = TextEditingController(); final nameController = TextEditingController();
final walletNameImage = Image.asset('assets/images/wallet_name.png');
@override
void dispose() {
nameController.dispose();
super.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final walletCreationStore = Provider.of<WalletCreationStore>(context); final walletCreationStore = Provider.of<WalletCreationStore>(context);
final seedLanguageStore = Provider.of<SeedLanguageStore>(context); final seedLanguageStore = Provider.of<SeedLanguageStore>(context);
final List<String> 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) { reaction((_) => walletCreationStore.state, (WalletCreationState state) {
if (state is WalletCreatedSuccessfully) { if (state is WalletCreatedSuccessfully) {
Navigator.of(context).popUntil((route) => route.isFirst); Navigator.of(context).popUntil((route) => route.isFirst);
@ -56,80 +89,107 @@ class _WalletNameFormState extends State<WalletNameForm> {
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
showDialog<void>( showDialog<void>(
context: context, context: context,
builder: (BuildContext context) { builder: (_) {
return AlertDialog( return WalletCreationDialog(
content: Text(state.error), dialogTitle: S.current.new_wallet,
actions: <Widget>[ dialogContent: state.error,
FlatButton( dialogButtonText: S.of(context).ok,
child: Text(S.of(context).ok), dialogButtonAction: () => Navigator.of(context).pop()
onPressed: () => Navigator.of(context).pop(),
),
],
); );
}); });
}); });
} }
}); });
return ScrollableWithBottomSection( return Container(
content: Column(children: [ color: PaletteDark.historyPanel,
Padding( padding: EdgeInsets.only(top: 24),
padding: EdgeInsets.only(bottom: 10), child: ScrollableWithBottomSection(
child: Image.asset('assets/images/bitmap.png', contentPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24),
height: 224, width: 400), content: Column(
), crossAxisAlignment: CrossAxisAlignment.center,
Padding( children: [
padding: EdgeInsets.only(left: 20, right: 20, bottom: 20), Padding(
child: Form( padding: EdgeInsets.only(left: 12, right: 12),
key: _formKey, child: AspectRatio(
child: TextFormField( aspectRatio: aspectRatioImage,
style: TextStyle( child: FittedBox(child: walletNameImage, fit: BoxFit.fill)),
fontSize: 24.0, ),
color: Theme.of(context).accentTextTheme.subtitle.color), Padding(
controller: nameController, padding: EdgeInsets.only(top: 24),
decoration: InputDecoration( child: Form(
hintStyle: TextStyle( key: _formKey,
fontSize: 24.0, color: Theme.of(context).hintColor), child: TextFormField(
hintText: S.of(context).wallet_name, textAlign: TextAlign.center,
focusedBorder: UnderlineInputBorder( style: TextStyle(
borderSide: fontSize: 20.0,
BorderSide(color: Palette.cakeGreen, width: 2.0)), fontWeight: FontWeight.w600,
enabledBorder: UnderlineInputBorder( color: Colors.white),
borderSide: BorderSide( controller: nameController,
color: Theme.of(context).focusColor, decoration: InputDecoration(
width: 1.0))), hintStyle: TextStyle(
validator: (value) { fontSize: 16.0,
walletCreationStore.validateWalletName(value); color: PaletteDark.walletCardText),
return walletCreationStore.errorMessage; hintText: S.of(context).wallet_name,
}, focusedBorder: UnderlineInputBorder(
)), borderSide:
), BorderSide(
Padding(padding: EdgeInsets.only(bottom: 20), color: PaletteDark.walletCardSubAddressField,
child: Text( width: 1.0)),
S.of(context).seed_language_choose, enabledBorder: UnderlineInputBorder(
textAlign: TextAlign.center, borderSide: BorderSide(
style: TextStyle(fontSize: 16.0), color: PaletteDark.walletCardSubAddressField,
width: 1.0))),
validator: (value) {
walletCreationStore.validateWalletName(value);
return walletCreationStore.errorMessage;
},
)),
), ),
), Padding(padding: EdgeInsets.only(top: 40),
Padding(padding: EdgeInsets.only(left: 20, right: 20, bottom: 20), child: Text(
child: SeedLanguagePicker(), S.of(context).seed_language_choose,
) textAlign: TextAlign.center,
]), style: TextStyle(
bottomSection: Observer( fontSize: 16.0,
builder: (context) { fontWeight: FontWeight.w600,
return LoadingPrimaryButton( color: Colors.white
onPressed: () { ),
if (_formKey.currentState.validate()) { ),
walletCreationStore.create(name: nameController.text, ),
language: seedLanguageStore.selectedSeedLanguage); Padding(padding: EdgeInsets.only(top: 24),
} child: Observer(
}, builder: (_) => SelectButton(
text: S.of(context).continue_text, image: null,
color: Theme.of(context).primaryTextTheme.button.backgroundColor, text: seedLocales[seedLanguages.indexOf(seedLanguageStore.selectedSeedLanguage)],
textColor: Theme.of(context).primaryTextTheme.button.color, color: PaletteDark.menuList,
isLoading: walletCreationStore.state is WalletIsCreating, 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,
);
},
)),
);
} }
} }

View file

@ -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<WalletTypeForm> {
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: <Widget>[
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(() {});
}
}

View file

@ -27,8 +27,8 @@ class SelectButton extends StatelessWidget {
padding: EdgeInsets.only(left: 30, right: 30), padding: EdgeInsets.only(left: 30, right: 30),
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(30)), borderRadius: BorderRadius.all(Radius.circular(30)),
color: color color: color
), ),
child: Row( child: Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
@ -40,18 +40,18 @@ class SelectButton extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
image != null image != null
? image ? image
: Offstage(), : Offstage(),
Padding( Padding(
padding: image != null padding: image != null
? EdgeInsets.only(left: 15) ? EdgeInsets.only(left: 15)
: EdgeInsets.only(left: 0), : EdgeInsets.only(left: 0),
child: Text( child: Text(
text, text,
style: TextStyle( style: TextStyle(
fontSize: 18, fontSize: 18,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: textColor color: textColor
), ),
), ),
) )

View file

@ -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,
),
)),
),
);
}
}

View file

@ -33,7 +33,7 @@ class RescanPage extends BasePage {
}, },
color: color:
Theme.of(context).primaryTextTheme.button.backgroundColor, Theme.of(context).primaryTextTheme.button.backgroundColor,
textColor: Theme.of(context).primaryTextTheme.button.color)) textColor: Theme.of(context).primaryTextTheme.button.color,))
]), ]),
); );
} }

View file

@ -41,6 +41,7 @@ class SeedPage extends BasePage {
child: Container( child: Container(
width: 70, width: 70,
height: 32, height: 32,
alignment: Alignment.center,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(16)), borderRadius: BorderRadius.all(Radius.circular(16)),
color: PaletteDark.menuList color: PaletteDark.menuList
@ -48,7 +49,7 @@ class SeedPage extends BasePage {
child: Text( child: Text(
S.of(context).seed_language_next, S.of(context).seed_language_next,
style: TextStyle( style: TextStyle(
fontSize: 14, fontSize: 10,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: Colors.blue color: Colors.blue
), ),

View file

@ -74,8 +74,8 @@ class SeedLanguagePickerState extends State<SeedLanguagePicker> {
height: 300, height: 300,
width: 300, width: 300,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(14)), borderRadius: BorderRadius.all(Radius.circular(14)),
color: PaletteDark.walletCardSubAddressField color: PaletteDark.walletCardSubAddressField
), ),
child: GridView.count( child: GridView.count(
shrinkWrap: true, shrinkWrap: true,
@ -89,11 +89,11 @@ class SeedLanguagePickerState extends State<SeedLanguagePicker> {
if (index == 8) { if (index == 8) {
return gridTile( return gridTile(
isCurrent: false, isCurrent: false,
place: Places.bottomRight, place: Places.bottomRight,
image: null, image: null,
text: '', text: '',
onTap: null); onTap: null);
} else { } else {
@ -103,52 +103,52 @@ class SeedLanguagePickerState extends State<SeedLanguagePicker> {
if (index == 0) { if (index == 0) {
return gridTile( 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, isCurrent: isCurrent,
place: Places.inside, place: Places.topLeft,
image: flag, image: flag,
text: code, text: code,
onTap: () { onTap: () {
seedLanguageStore.setSelectedSeedLanguage(seedLanguages[index]); seedLanguageStore.setSelectedSeedLanguage(seedLanguages[index]);
Navigator.of(context).pop(); 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();
}
); );
} }
}), }),
@ -195,40 +195,40 @@ class SeedLanguagePickerState extends State<SeedLanguagePicker> {
} }
return GestureDetector( return GestureDetector(
onTap: onTap, onTap: onTap,
child: Container( child: Container(
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: borderRadius, borderRadius: borderRadius,
color: color color: color
), ),
child: Center( child: Center(
child: Row( child: Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
image != null image != null
? image ? image
: Offstage(), : Offstage(),
Padding( Padding(
padding: image != null padding: image != null
? EdgeInsets.only(left: 10) ? EdgeInsets.only(left: 10)
: EdgeInsets.only(left: 0), : EdgeInsets.only(left: 0),
child: Text( child: Text(
text, text,
style: TextStyle( style: TextStyle(
fontSize: 18, fontSize: 18,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
decoration: TextDecoration.none, decoration: TextDecoration.none,
color: textColor color: textColor
),
), ),
) ),
], )
), ],
), ),
) ),
)
); );
} }
} }

View file

@ -9,13 +9,15 @@ import 'package:cake_wallet/src/stores/settings/settings_store.dart';
import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart'; import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
import 'package:cake_wallet/src/screens/transaction_details/standart_list_row.dart'; import 'package:cake_wallet/src/screens/transaction_details/standart_list_row.dart';
import 'package:cake_wallet/palette.dart';
class TradeDetailsPage extends BasePage { class TradeDetailsPage extends BasePage {
@override
String get title => S.current.trade_details_title;
@override @override
bool get isModalBackButton => true; Color get backgroundColor => PaletteDark.historyPanel;
@override
String get title => S.current.trade_details_title;
@override @override
Widget body(BuildContext context) { Widget body(BuildContext context) {
@ -26,7 +28,8 @@ class TradeDetailsPage extends BasePage {
formatDefault: "dd.MM.yyyy, HH:mm"); formatDefault: "dd.MM.yyyy, HH:mm");
return Container( return Container(
padding: EdgeInsets.only(top: 10.0, bottom: 10.0, left: 20, right: 15), color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 20, bottom: 20),
child: Observer(builder: (_) { child: Observer(builder: (_) {
final trade = exchangeStore.trade; final trade = exchangeStore.trade;
final items = [ final items = [
@ -58,15 +61,22 @@ class TradeDetailsPage extends BasePage {
} }
return ListView.separated( return ListView.separated(
separatorBuilder: (_, __) => Divider( separatorBuilder: (_, __) => Container(
color: Theme.of(context).dividerTheme.color, height: 1,
height: 1.0, padding: EdgeInsets.only(left: 24),
), color: PaletteDark.menuList,
padding: child: Container(
EdgeInsets.only(left: 25, top: 10, right: 25, bottom: 15), height: 1,
color: PaletteDark.walletCardTopEndSync,
),
),
itemCount: items.length, itemCount: items.length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
final item = items[index]; final item = items[index];
final isDrawTop = index == 0 ? true : false;
final isDrawBottom = index == items.length - 1 ? true : false;
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
Clipboard.setData(ClipboardData(text: '${item.value}')); Clipboard.setData(ClipboardData(text: '${item.value}'));
@ -80,7 +90,11 @@ class TradeDetailsPage extends BasePage {
); );
}, },
child: StandartListRow( child: StandartListRow(
title: '${item.title}', value: '${item.value}')); title: '${item.title}',
value: '${item.value}',
isDrawTop: isDrawTop,
isDrawBottom: isDrawBottom,
));
}); });
})); }));
} }

View file

@ -2,29 +2,57 @@ import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart'; import 'package:cake_wallet/palette.dart';
class StandartListRow extends StatelessWidget { class StandartListRow extends StatelessWidget {
StandartListRow({this.title, this.value}); StandartListRow({this.title, this.value, this.isDrawTop, this.isDrawBottom});
final String title; final String title;
final String value; final String value;
final bool isDrawTop;
final bool isDrawBottom;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Padding( return Column(
padding: const EdgeInsets.only(top: 10, bottom: 10), children: <Widget>[
child: Column( isDrawTop
crossAxisAlignment: CrossAxisAlignment.start, ? Container(
children: <Widget>[ width: double.infinity,
Text(title, height: 1,
style: TextStyle( color: PaletteDark.walletCardTopEndSync,
fontSize: 14, )
color: Theme.of(context).primaryTextTheme.overline.color), : Offstage(),
textAlign: TextAlign.left), Container(
Padding( width: double.infinity,
padding: const EdgeInsets.only(top: 5), color: PaletteDark.menuList,
child: Text(value, child: Padding(
style: TextStyle(fontSize: 14, color: Palette.wildDarkBlue)), padding: const EdgeInsets.only(left: 24, top: 16, bottom: 16, right: 24),
) child: Column(
]), crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(title,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
color: PaletteDark.walletCardText),
textAlign: TextAlign.left),
Padding(
padding: const EdgeInsets.only(top: 12),
child: Text(value,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Colors.white)),
)
]),
),
),
isDrawBottom
? Container(
width: double.infinity,
height: 1,
color: PaletteDark.walletCardTopEndSync,
)
: Offstage(),
],
); );
} }
} }

View file

@ -8,6 +8,7 @@ import 'package:cake_wallet/src/stores/settings/settings_store.dart';
import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart'; import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
import 'package:cake_wallet/src/screens/transaction_details/standart_list_row.dart'; import 'package:cake_wallet/src/screens/transaction_details/standart_list_row.dart';
import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/palette.dart';
class TransactionDetailsPage extends BasePage { class TransactionDetailsPage extends BasePage {
TransactionDetailsPage({this.transactionInfo}); TransactionDetailsPage({this.transactionInfo});
@ -15,7 +16,7 @@ class TransactionDetailsPage extends BasePage {
final TransactionInfo transactionInfo; final TransactionInfo transactionInfo;
@override @override
bool get isModalBackButton => true; Color get backgroundColor => PaletteDark.historyPanel;
@override @override
String get title => S.current.transaction_details_title; String get title => S.current.transaction_details_title;
@ -77,17 +78,25 @@ class TransactionDetailsFormState extends State<TransactionDetailsForm> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
padding: EdgeInsets.only(left: 20, right: 15, top: 10, bottom: 10), color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 20, bottom: 20),
child: ListView.separated( child: ListView.separated(
separatorBuilder: (context, index) => Container( separatorBuilder: (context, index) => Container(
height: 1, height: 1,
color: Theme.of(context).dividerTheme.color, padding: EdgeInsets.only(left: 24),
), color: PaletteDark.menuList,
padding: EdgeInsets.only(left: 25, top: 10, right: 25, bottom: 15), child: Container(
height: 1,
color: PaletteDark.walletCardTopEndSync,
),
),
itemCount: _items.length, itemCount: _items.length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
final item = _items[index]; final item = _items[index];
final isDrawTop = index == 0 ? true : false;
final isDrawBottom = index == _items.length - 1 ? true : false;
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
Clipboard.setData(ClipboardData(text: item.value)); Clipboard.setData(ClipboardData(text: item.value));
@ -101,7 +110,11 @@ class TransactionDetailsFormState extends State<TransactionDetailsForm> {
); );
}, },
child: child:
StandartListRow(title: '${item.title}:', value: item.value), StandartListRow(
title: '${item.title}:',
value: item.value,
isDrawTop: isDrawTop,
isDrawBottom: isDrawBottom),
); );
}), }),
); );

View file

@ -152,7 +152,7 @@ class WalletListBodyState extends State<WalletListBody> {
), ),
bottomSection: Column(children: <Widget>[ bottomSection: Column(children: <Widget>[
PrimaryImageButton( PrimaryImageButton(
onPressed: () => Navigator.of(context).pushNamed(Routes.newWallet), onPressed: () => Navigator.of(context).pushNamed(Routes.newWalletType),
image: newWalletImage, image: newWalletImage,
text: S.of(context).wallet_list_create_new_wallet, text: S.of(context).wallet_list_create_new_wallet,
color: Colors.white, color: Colors.white,

View file

@ -4,12 +4,16 @@ import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart'; import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
class WelcomePage extends BasePage { class WelcomePage extends BasePage {
static const _aspectRatioImage = 1.26; static const aspectRatioImage = 1.25;
static const _baseWidth = 411.43; final welcomeImage = Image.asset('assets/images/welcome.png');
final _image = Image.asset('assets/images/welcomeImg.png'); final newWalletImage = Image.asset('assets/images/new_wallet.png', height: 12, width: 12, color: PaletteDark.historyPanel);
final _cakeLogo = Image.asset('assets/images/cake_logo.png'); final restoreWalletImage = Image.asset('assets/images/restore_wallet.png', height: 12, width: 12, color: Colors.white);
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -21,75 +25,89 @@ class WelcomePage extends BasePage {
@override @override
Widget body(BuildContext context) { Widget body(BuildContext context) {
final _screenWidth = MediaQuery.of(context).size.width; return Container(
final textScaleFactor = _screenWidth < _baseWidth ? 0.76 : 1.0; padding: EdgeInsets.only(top: 20),
color: PaletteDark.historyPanel,
return Column(children: <Widget>[ child: ScrollableWithBottomSection(
Stack( contentPadding: EdgeInsets.only(bottom: 20),
alignment: Alignment.center, content: Column(
children: <Widget>[ children: <Widget>[
AspectRatio( AspectRatio(
aspectRatio: _aspectRatioImage, aspectRatio: aspectRatioImage,
child: FittedBox(child: _image, fit: BoxFit.fill)), child: FittedBox(child: welcomeImage, fit: BoxFit.fill)),
Positioned(bottom: 0.0, child: _cakeLogo) Padding(
], padding: EdgeInsets.only(left: 24, right: 24, top: 40),
), child: Column(
Expanded( mainAxisAlignment: MainAxisAlignment.start,
child: Column( crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[
children: <Widget>[ Text(
Text( S.of(context).welcome,
S.of(context).welcome, style: TextStyle(
style: TextStyle( fontSize: 18,
fontSize: 30.0, color: PaletteDark.walletCardText,
fontWeight: FontWeight.bold, ),
), textAlign: TextAlign.center,
textScaleFactor: textScaleFactor, ),
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: <Widget>[
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: <Widget>[
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),
)
]),
),
);
} }
} }

View file

@ -16,6 +16,7 @@ abstract class WalletCreationStoreBase with Store {
@required this.walletListService, @required this.walletListService,
@required this.sharedPreferences}) { @required this.sharedPreferences}) {
state = WalletCreationStateInitial(); state = WalletCreationStateInitial();
isDisabledStatus = true;
} }
final AuthenticationStore authStore; final AuthenticationStore authStore;
@ -31,6 +32,9 @@ abstract class WalletCreationStoreBase with Store {
@observable @observable
bool isValid; bool isValid;
@observable
bool isDisabledStatus;
@action @action
Future create({String name, String language}) async { Future create({String name, String language}) async {
state = WalletCreationStateInitial(); state = WalletCreationStateInitial();
@ -45,6 +49,11 @@ abstract class WalletCreationStoreBase with Store {
} }
} }
@action
void setDisabledStatus(bool isDisabled) {
isDisabledStatus = isDisabled;
}
void validateWalletName(String value) { void validateWalletName(String value) {
const pattern = '^[a-zA-Z0-9_]{1,15}\$'; const pattern = '^[a-zA-Z0-9_]{1,15}\$';
final regExp = RegExp(pattern); final regExp = RegExp(pattern);

View file

@ -42,9 +42,10 @@ class NavBar extends StatelessWidget implements ObstructingPreferredSizeWidget {
/*backgroundColor: /*backgroundColor:
_isDarkTheme ? Theme.of(context).backgroundColor : backgroundColor,*/ _isDarkTheme ? Theme.of(context).backgroundColor : backgroundColor,*/
decoration: BoxDecoration( decoration: BoxDecoration(
color: _isDarkTheme color: backgroundColor,
/*_isDarkTheme
? Theme.of(context).backgroundColor ? Theme.of(context).backgroundColor
: backgroundColor, : backgroundColor,*/
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Color.fromRGBO(132, 141, 198, 0.11), color: Color.fromRGBO(132, 141, 198, 0.11),

View file

@ -185,34 +185,6 @@ class PrimaryImageButton extends StatelessWidget {
], ],
), ),
) )
/*Row(
children: <Widget>[
Container(
width: 28.0,
height: 56.0,
decoration: BoxDecoration(
shape: BoxShape.circle, color: Colors.transparent),
child: image,
),
Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
height: 56.0,
child: Center(
child: Text(text,
style: TextStyle(
fontSize: 18.0,
color: Theme.of(context)
.primaryTextTheme
.button
.color)),
),
)
]))
],
),*/
)); ));
} }
} }

View file

@ -1,8 +1,9 @@
{ {
"welcome" : "Willkommen\nzu CAKE WALLET", "welcome" : "Willkommen zu",
"first_wallet_text" : "tolle Brieftasche\nzum Monero", "cake_wallet" : "Cake Wallet",
"please_make_selection" : "Bitte treffen Sie unten eine Auswahl zu\nErstellen oder Wiederherstellen Ihrer Brieftasche.", "first_wallet_text" : "tolle Brieftasche zum Monero",
"create_new" : "Erstelle neu", "please_make_selection" : "Bitte treffen Sie unten eine Auswahl zu Erstellen oder Wiederherstellen Ihrer Brieftasche.",
"create_new" : "Neue Wallet erstellen",
"restore_wallet" : "Wallet wiederherstellen", "restore_wallet" : "Wallet wiederherstellen",
@ -106,6 +107,7 @@
"new_wallet" : "Neues Wallet", "new_wallet" : "Neues Wallet",
"wallet_name" : "Walletname", "wallet_name" : "Walletname",
"continue_text" : "Fortsetzen", "continue_text" : "Fortsetzen",
"choose_wallet_currency" : "Bitte wählen Sie die Brieftaschenwährung:",
"node_new" : "Neuer Knoten", "node_new" : "Neuer Knoten",

View file

@ -1,9 +1,10 @@
{ {
"welcome" : "WELCOME\nTO CAKE WALLET", "welcome" : "Welcome to",
"first_wallet_text" : "Awesome wallet\nfor Monero", "cake_wallet" : "Cake Wallet",
"please_make_selection" : "Please make selection below to\ncreate or recover your wallet.", "first_wallet_text" : "Awesome wallet for Monero",
"create_new" : "Create new", "please_make_selection" : "Please make selection below to create or recover your wallet.",
"restore_wallet" : "Restore wallet", "create_new" : "Create New Wallet",
"restore_wallet" : "Restore Wallet",
"accounts" : "Accounts", "accounts" : "Accounts",
@ -106,6 +107,7 @@
"new_wallet" : "New Wallet", "new_wallet" : "New Wallet",
"wallet_name" : "Wallet name", "wallet_name" : "Wallet name",
"continue_text" : "Continue", "continue_text" : "Continue",
"choose_wallet_currency" : "Please choose wallet currency:",
"node_new" : "New Node", "node_new" : "New Node",

View file

@ -1,8 +1,9 @@
{ {
"welcome" : "Bienvenido\n CAKE WALLET", "welcome" : "Bienvenido",
"first_wallet_text" : "Impresionante billetera\npara Monero", "cake_wallet" : "Cake Wallet",
"please_make_selection" : "Seleccione a continuación para\ncrear o recuperar su billetera.", "first_wallet_text" : "Impresionante billetera para Monero",
"create_new" : "Crear nuevo", "please_make_selection" : "Seleccione a continuación para crear o recuperar su billetera.",
"create_new" : "Crear nueva billetera",
"restore_wallet" : "Restaurar billetera", "restore_wallet" : "Restaurar billetera",
@ -106,6 +107,7 @@
"new_wallet" : "Nueva billetera", "new_wallet" : "Nueva billetera",
"wallet_name" : "Nombre de la billetera", "wallet_name" : "Nombre de la billetera",
"continue_text" : "Continuar", "continue_text" : "Continuar",
"choose_wallet_currency" : "Por favor, elija la moneda de la billetera:",
"node_new" : "Nuevo nodo", "node_new" : "Nuevo nodo",

View file

@ -1,8 +1,9 @@
{ {
"welcome" : "स्वागत हे\nसेवा मेरे CAKE WALLET", "welcome" : "स्वागत हे सेवा मेरे",
"first_wallet_text" : "बहुत बढ़िया बटुआ\nके लिये Monero", "cake_wallet" : "Cake Wallet",
"please_make_selection" : "कृपया नीचे चयन करें\nअपना बटुआ बनाएं या पुनर्प्राप्त करें.", "first_wallet_text" : "बहुत बढ़िया बटुआ के लिये Monero",
"create_new" : "नया बनाओ", "please_make_selection" : "कृपया नीचे चयन करें अपना बटुआ बनाएं या पुनर्प्राप्त करें.",
"create_new" : "नया बटुआ बनाएँ",
"restore_wallet" : "वॉलेट को पुनर्स्थापित करें", "restore_wallet" : "वॉलेट को पुनर्स्थापित करें",
@ -106,6 +107,7 @@
"new_wallet" : "नया बटुआ", "new_wallet" : "नया बटुआ",
"wallet_name" : "बटुए का नाम", "wallet_name" : "बटुए का नाम",
"continue_text" : "जारी रहना", "continue_text" : "जारी रहना",
"choose_wallet_currency" : "कृपया बटुआ मुद्रा चुनें:",
"node_new" : "नया नोड", "node_new" : "नया नोड",

View file

@ -1,9 +1,10 @@
{ {
"welcome" : "ようこそ\nに CAKE WALLET", "welcome" : "ようこそ に",
"first_wallet_text" : "素晴らしい財布\nために Monero", "cake_wallet" : "Cake Wallet",
"please_make_selection" : "以下を選択してください\nウォレットを作成または回復する.", "first_wallet_text" : "素晴らしい財布 ために Monero",
"create_new" : "新しく作る", "please_make_selection" : "以下を選択してください ウォレットを作成または回復する.",
"restore_wallet" : "ウォレットを復元する", "create_new" : "新しいウォレットを作成",
"restore_wallet" : "ウォレットを復元",
"accounts" : "アカウント", "accounts" : "アカウント",
@ -106,6 +107,7 @@
"new_wallet" : "新しいウォレット", "new_wallet" : "新しいウォレット",
"wallet_name" : "ウォレット名", "wallet_name" : "ウォレット名",
"continue_text" : "持続する", "continue_text" : "持続する",
"choose_wallet_currency" : "ウォレット通貨を選択してください:",
"node_new" : "新しいノード", "node_new" : "新しいノード",

View file

@ -1,9 +1,10 @@
{ {
"welcome" : "환영\n에 CAKE WALLET", "welcome" : "환영 에",
"first_wallet_text" : "멋진 지갑\n에 대한 Monero", "cake_wallet" : "Cake Wallet",
"please_make_selection" : "아래에서 선택하십시오\n지갑 만들기 또는 복구.", "first_wallet_text" : "멋진 지갑 에 대한 Monero",
"create_new" : "새로 만들기", "please_make_selection" : "아래에서 선택하십시오 지갑 만들기 또는 복구.",
"restore_wallet" : "지갑 복원", "create_new" : "새 월렛 만들기",
"restore_wallet" : "월렛 복원",
"accounts" : "계정", "accounts" : "계정",
@ -106,6 +107,7 @@
"new_wallet" : "새 월렛", "new_wallet" : "새 월렛",
"wallet_name" : "지갑 이름", "wallet_name" : "지갑 이름",
"continue_text" : "잇다", "continue_text" : "잇다",
"choose_wallet_currency" : "지갑 통화를 선택하십시오:",
"node_new" : "새로운 노드", "node_new" : "새로운 노드",

View file

@ -1,8 +1,9 @@
{ {
"welcome" : "WELKOM\nBIJ CAKE WALLET", "welcome" : "Welkom bij",
"first_wallet_text" : "Geweldige portemonnee\nfvoor Monero", "cake_wallet" : "Cake Wallet",
"please_make_selection" : "Maak hieronder uw keuze tot\nmaak of herstel je portemonnee.", "first_wallet_text" : "Geweldige portemonnee fvoor Monero",
"create_new" : "Maak nieuw", "please_make_selection" : "Maak hieronder uw keuze tot maak of herstel je portemonnee.",
"create_new" : "Maak een nieuwe portemonnee",
"restore_wallet" : "Portemonnee herstellen", "restore_wallet" : "Portemonnee herstellen",
@ -106,6 +107,7 @@
"new_wallet" : "Nieuwe portemonnee", "new_wallet" : "Nieuwe portemonnee",
"wallet_name" : "Portemonnee naam", "wallet_name" : "Portemonnee naam",
"continue_text" : "Doorgaan met", "continue_text" : "Doorgaan met",
"choose_wallet_currency" : "Kies een portemonnee-valuta:",
"node_new" : "Nieuw knooppunt", "node_new" : "Nieuw knooppunt",

View file

@ -1,8 +1,9 @@
{ {
"welcome" : "WITAMY\nW CAKE WALLET", "welcome" : "Witamy w",
"first_wallet_text" : "Niesamowity portfel\nfdla Monero", "cake_wallet" : "Cake Wallet",
"please_make_selection" : "Wybierz poniżej, aby\ncutwórz lub odzyskaj swój portfel.", "first_wallet_text" : "Niesamowity portfel dla Monero",
"create_new" : "Tworzyć nowe", "please_make_selection" : "Wybierz poniżej, aby cutwórz lub odzyskaj swój portfel.",
"create_new" : "Utwórz nowy portfel",
"restore_wallet" : "Przywróć portfel", "restore_wallet" : "Przywróć portfel",
@ -106,6 +107,7 @@
"new_wallet" : "Nowy portfel", "new_wallet" : "Nowy portfel",
"wallet_name" : "Nazwa portfela", "wallet_name" : "Nazwa portfela",
"continue_text" : "Dalej", "continue_text" : "Dalej",
"choose_wallet_currency" : "Wybierz walutę portfela:",
"node_new" : "Nowy węzeł", "node_new" : "Nowy węzeł",

View file

@ -1,8 +1,9 @@
{ {
"welcome" : "BEM-VINDO(A)\nÀ CAKE WALLET", "welcome" : "Bem-vindo ao",
"first_wallet_text" : "Uma fantástica carteira\npara Monero", "cake_wallet" : "Cake Wallet",
"please_make_selection" : "Escolha se quer criar uma carteira nova\nou restaurar uma antiga.", "first_wallet_text" : "Uma fantástica carteira para Monero",
"create_new" : "Criar carteira", "please_make_selection" : "Escolha se quer criar uma carteira nova ou restaurar uma antiga.",
"create_new" : "Criar nova carteira",
"restore_wallet" : "Restaurar carteira", "restore_wallet" : "Restaurar carteira",
@ -106,6 +107,7 @@
"new_wallet" : "Nova carteira", "new_wallet" : "Nova carteira",
"wallet_name" : "Nome da carteira", "wallet_name" : "Nome da carteira",
"continue_text" : "Continuar", "continue_text" : "Continuar",
"choose_wallet_currency" : "Escolha a moeda da carteira:",
"node_new" : "Novo nó", "node_new" : "Novo nó",

View file

@ -1,8 +1,9 @@
{ {
"welcome" : "Приветствуем в CAKE WALLET", "welcome" : "Приветствуем в",
"cake_wallet" : "Cake Wallet",
"first_wallet_text" : "В самом удобном кошельке для Monero", "first_wallet_text" : "В самом удобном кошельке для Monero",
"please_make_selection" : "Выберите способ создания кошелька: создать новый или восстановить ваш существующий.", "please_make_selection" : "Выберите способ создания кошелька: создать новый или восстановить ваш существующий.",
"create_new" : "Создать новый", "create_new" : "Создать новый кошелёк",
"restore_wallet" : "Восстановить кошелёк", "restore_wallet" : "Восстановить кошелёк",
@ -106,6 +107,7 @@
"new_wallet" : "Новый кошелёк", "new_wallet" : "Новый кошелёк",
"wallet_name" : "Имя кошелька", "wallet_name" : "Имя кошелька",
"continue_text" : "Продолжить", "continue_text" : "Продолжить",
"choose_wallet_currency" : "Пожалуйста, выберите валюту кошелька:",
"node_new" : "Новая нода", "node_new" : "Новая нода",

View file

@ -1,8 +1,9 @@
{ {
"welcome" : "Вітаємо в CAKE WALLET", "welcome" : "Вітаємо в",
"cake_wallet" : "Cake Wallet",
"first_wallet_text" : "В самому зручному гаманці для Monero", "first_wallet_text" : "В самому зручному гаманці для Monero",
"please_make_selection" : "Виберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий.", "please_make_selection" : "Оберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий.",
"create_new" : "Створити новий", "create_new" : "Створити новий гаманець",
"restore_wallet" : "Відновити гаманець", "restore_wallet" : "Відновити гаманець",
@ -106,6 +107,7 @@
"new_wallet" : "Новий гаманець", "new_wallet" : "Новий гаманець",
"wallet_name" : "Ім'я гаманця", "wallet_name" : "Ім'я гаманця",
"continue_text" : "Продовжити", "continue_text" : "Продовжити",
"choose_wallet_currency" : "Будь ласка, виберіть валюту гаманця:",
"node_new" : "Новий вузол", "node_new" : "Новий вузол",

View file

@ -1,8 +1,9 @@
{ {
"welcome" : "欢迎\nTO CAKE WALLET", "welcome" : "歡迎來到",
"first_wallet_text" : "很棒的钱包\n对于 Monero", "cake_wallet" : "Cake Wallet",
"please_make_selection" : "请在下面进行选择\nc创建或恢复您的钱包.", "first_wallet_text" : "很棒的钱包 对于 Monero",
"create_new" : "创建新的", "please_make_selection" : "请在下面进行选择 创建或恢复您的钱包.",
"create_new" : "创建新钱包",
"restore_wallet" : "恢复钱包", "restore_wallet" : "恢复钱包",
@ -106,6 +107,7 @@
"new_wallet" : "新钱包", "new_wallet" : "新钱包",
"wallet_name" : "钱包名称", "wallet_name" : "钱包名称",
"continue_text" : "继续", "continue_text" : "继续",
"choose_wallet_currency" : "請選擇錢包貨幣:",
"node_new" : "新节点", "node_new" : "新节点",