pre seed page refactoring
Serhii committed
Nov 22, 2023 at 23:37 UTC
217c19272fb2f8262b0c213ec1370d8b72c3863f
6 files changed
+35
-40
lib/di.dart
+8
-8
@@ -129,7 +129,7 @@ import 'package:cake_wallet/src/screens/rescan/rescan_page.dart';
129
import 'package:cake_wallet/src/screens/restore/restore_from_backup_page.dart';
130
import 'package:cake_wallet/src/screens/restore/restore_options_page.dart';
131
import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart';
132
-import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart';
132
+import 'package:cake_wallet/src/screens/seed/warning_page.dart';
133
import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart';
134
import 'package:cake_wallet/src/screens/send/send_template_page.dart';
135
import 'package:cake_wallet/src/screens/setup_pin_code/setup_pin_code.dart';
@@ -337,6 +337,9 @@ Future<void> setup({
337
settingsStore: getIt.get<SettingsStore>(),
338
walletInfoSource: _walletInfoSource));
339
340
+ getIt.registerFactoryParam<AdvancedPrivacySettingsViewModel, WalletType, void>(
341
+ (type, _) => AdvancedPrivacySettingsViewModel(type, getIt.get<SettingsStore>()));
342
+
343
getIt.registerFactory<WalletLoadingService>(() => WalletLoadingService(
344
getIt.get<SharedPreferences>(),
345
getIt.get<KeyService>(),
@@ -345,7 +348,7 @@ Future<void> setup({
348
getIt.registerFactoryParam<WalletNewVM, WalletType, void>((type, _) =>
349
WalletNewVM(getIt.get<AppStore>(),
350
getIt.get<WalletCreationService>(param1: type), _walletInfoSource,
348
- type: type));
351
+ getIt.get<AdvancedPrivacySettingsViewModel>(param1: type),type: type));
352
353
getIt.registerFactoryParam<WalletRestorationFromQRVM, WalletType, void>((WalletType type, _) {
354
return WalletRestorationFromQRVM(getIt.get<AppStore>(),
@@ -900,9 +903,9 @@ Future<void> setup({
903
getIt.registerFactoryParam<NewWalletTypePage, void Function(BuildContext, WalletType), bool?>(
904
(param1, isCreate) => NewWalletTypePage(onTypeSelected: param1, isCreate: isCreate ?? true));
905
903
- getIt.registerFactoryParam<PreSeedPage, WalletType, AdvancedPrivacySettingsViewModel>(
904
- (WalletType type, AdvancedPrivacySettingsViewModel advancedPrivacySettingsViewModel)
905
- => PreSeedPage(type, advancedPrivacySettingsViewModel));
906
+ getIt.registerFactoryParam<WarningPage, int, void>(
907
+ (seedPhraseLength, _)
908
+ => WarningPage(seedPhraseLength));
909
910
getIt.registerFactoryParam<TradeDetailsViewModel, Trade, void>((trade, _) =>
911
TradeDetailsViewModel(
@@ -1149,9 +1152,6 @@ Future<void> setup({
1152
IoniaPaymentStatusPage(
1153
getIt.get<IoniaPaymentStatusViewModel>(param1: paymentInfo, param2: committedInfo)));
1154
1152
- getIt.registerFactoryParam<AdvancedPrivacySettingsViewModel, WalletType, void>(
1153
- (type, _) => AdvancedPrivacySettingsViewModel(type, getIt.get<SettingsStore>()));
1154
-
1155
getIt.registerFactoryParam<HomeSettingsPage, BalanceViewModel, void>((balanceViewModel, _) =>
1156
HomeSettingsPage(getIt.get<HomeSettingsViewModel>(param1: balanceViewModel)));
1157
lib/router.dart
+4
-6
@@ -40,7 +40,7 @@ import 'package:cake_wallet/src/screens/order_details/order_details_page.dart';
40
import 'package:cake_wallet/src/screens/pin_code/pin_code_widget.dart';
41
import 'package:cake_wallet/src/screens/restore/restore_from_backup_page.dart';
42
import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart';
43
-import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart';
43
+import 'package:cake_wallet/src/screens/seed/warning_page.dart';
44
import 'package:cake_wallet/src/screens/settings/connection_sync_page.dart';
45
import 'package:cake_wallet/src/screens/settings/trocador_providers_page.dart';
46
import 'package:cake_wallet/src/screens/settings/tor_page.dart';
@@ -417,12 +417,10 @@ Route<dynamic> createRoute(RouteSettings settings) {
417
case Routes.faq:
418
return MaterialPageRoute<void>(builder: (_) => getIt.get<FaqPage>());
419
420
- case Routes.preSeed:
420
+ case Routes.warningPage:
421
return MaterialPageRoute<void>(
422
- builder: (_) => getIt.get<PreSeedPage>(
423
- param1: settings.arguments as WalletType,
424
- param2: getIt.get<AdvancedPrivacySettingsViewModel>(
425
- param1: settings.arguments as WalletType)));
422
+ builder: (_) => getIt.get<WarningPage>(
423
+ param1: settings.arguments as int));
424
425
case Routes.backup:
426
return CupertinoPageRoute<void>(
lib/routes.dart
+1
-1
@@ -47,7 +47,7 @@ class Routes {
47
static const exchangeTemplate = '/exchange_template';
48
static const restoreWalletType = '/restore_wallet_type';
49
static const restoreWallet = '/restore_wallet';
50
- static const preSeed = '/pre_seed';
50
+ static const warningPage = '/warning_page';
51
static const backup = '/backup';
52
static const editBackupPassword = '/edit_backup_passowrd';
53
static const restoreFromBackup = '/restore_from_backup';
lib/src/screens/new_wallet/new_wallet_page.dart
+1
-1
@@ -67,7 +67,7 @@ class _WalletNameFormState extends State<WalletNameForm> {
67
_stateReaction ??= reaction((_) => _walletNewVM.state, (ExecutionState state) async {
68
if (state is ExecutedSuccessfullyState) {
69
Navigator.of(navigatorKey.currentContext!)
70
- .pushNamed(Routes.preSeed, arguments: _walletNewVM.type);
70
+ .pushNamed(Routes.warningPage, arguments: _walletNewVM.seedPhraseWordsLength);
71
}
72
73
if (state is FailureState) {
lib/src/screens/seed/warning_page.dart
renamed
+5
-23
@@ -9,20 +9,14 @@ import 'package:cake_wallet/routes.dart';
9
import 'package:cake_wallet/themes/theme_base.dart';
10
import 'package:flutter/material.dart';
11
12
-class PreSeedPage extends BasePage {
13
- PreSeedPage(this.type, this.advancedPrivacySettingsViewModel)
12
+class WarningPage extends BasePage {
13
+ WarningPage(this.seedPhraseLength)
14
: imageLight = Image.asset('assets/images/pre_seed_light.png'),
15
- imageDark = Image.asset('assets/images/pre_seed_dark.png'),
16
- seedPhraseLength = advancedPrivacySettingsViewModel.seedPhraseLength.value {
17
- wordsCount = _wordsCount(type, seedPhraseLength);
18
- }
15
+ imageDark = Image.asset('assets/images/pre_seed_dark.png');
16
17
final Image imageDark;
18
final Image imageLight;
22
- final WalletType type;
23
- final AdvancedPrivacySettingsViewModel advancedPrivacySettingsViewModel;
24
- final int seedPhraseLength;
25
- late final int wordsCount;
19
+ final int? seedPhraseLength;
20
21
@override
22
Widget? leading(BuildContext context) => null;
@@ -53,7 +47,7 @@ class PreSeedPage extends BasePage {
47
Padding(
48
padding: EdgeInsets.all(10),
49
child: Text(
56
- S.of(context).pre_seed_description(wordsCount.toString()),
50
+ S.of(context).pre_seed_description(seedPhraseLength.toString()),
51
textAlign: TextAlign.center,
52
style: TextStyle(
53
fontSize: 14,
@@ -72,16 +66,4 @@ class PreSeedPage extends BasePage {
66
),
67
));
68
}
75
-
76
- static int _wordsCount(WalletType type, int seedPhraseLength) {
77
- switch (type) {
78
- case WalletType.monero:
79
- return 25;
80
- case WalletType.ethereum:
81
- case WalletType.bitcoinCash:
82
- return seedPhraseLength;
83
- default:
84
- return 24;
85
- }
86
- }
69
}
lib/view_model/wallet_new_vm.dart
+16
-1
@@ -15,6 +15,7 @@ import 'package:cw_core/wallet_type.dart';
15
import 'package:cake_wallet/view_model/wallet_creation_vm.dart';
16
import 'package:cake_wallet/bitcoin/bitcoin.dart';
17
import 'package:cake_wallet/haven/haven.dart';
18
+import 'advanced_privacy_settings_view_model.dart';
19
20
part 'wallet_new_vm.g.dart';
21
@@ -22,16 +23,30 @@ class WalletNewVM = WalletNewVMBase with _$WalletNewVM;
23
24
abstract class WalletNewVMBase extends WalletCreationVM with Store {
25
WalletNewVMBase(AppStore appStore, WalletCreationService walletCreationService,
25
- Box<WalletInfo> walletInfoSource,
26
+ Box<WalletInfo> walletInfoSource, this.advancedPrivacySettingsViewModel,
27
{required WalletType type})
28
: selectedMnemonicLanguage = '',
29
super(appStore, walletInfoSource, walletCreationService, type: type, isRecovery: false);
30
31
+ final AdvancedPrivacySettingsViewModel advancedPrivacySettingsViewModel;
32
+
33
@observable
34
String selectedMnemonicLanguage;
35
36
bool get hasLanguageSelector => type == WalletType.monero || type == WalletType.haven;
37
38
+ int get seedPhraseWordsLength {
39
+ switch (type) {
40
+ case WalletType.monero:
41
+ return 25;
42
+ case WalletType.ethereum:
43
+ case WalletType.bitcoinCash:
44
+ return advancedPrivacySettingsViewModel.seedPhraseLength.value;
45
+ default:
46
+ return 24;
47
+ }
48
+ }
49
+
50
@override
51
WalletCredentials getCredentials(dynamic options) {
52
switch (type) {