Hide "Show Seed" Option on Hardware Wallets (#1463)

Konstantin Ullrich committed May 25, 2024 at 16:59 UTC 8c1206ea04ac64ff43a35ffac7d3a73ec564d7fb
2 files changed +19 -17
lib/di.dart
+7 -7
@@ -14,6 +14,7 @@ import 'package:cake_wallet/buy/robinhood/robinhood_buy_provider.dart';
14 import 'package:cake_wallet/core/auth_service.dart';
15 import 'package:cake_wallet/core/backup_service.dart';
16 import 'package:cake_wallet/core/key_service.dart';
17 +import 'package:cake_wallet/core/secure_storage.dart';
18 import 'package:cake_wallet/core/wallet_connect/wallet_connect_key_service.dart';
19 import 'package:cake_wallet/core/wallet_connect/wc_bottom_sheet_service.dart';
20 import 'package:cake_wallet/core/wallet_connect/web3wallet_service.dart';
@@ -26,10 +27,6 @@ import 'package:cake_wallet/entities/contact.dart';
27 import 'package:cake_wallet/entities/contact_record.dart';
28 import 'package:cake_wallet/entities/exchange_api_mode.dart';
29 import 'package:cake_wallet/entities/parse_address_from_domain.dart';
29 -import 'package:cake_wallet/view_model/link_view_model.dart';
30 -import 'package:cake_wallet/tron/tron.dart';
31 -import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dart';
32 -import 'package:cw_core/receive_page_option.dart';
30 import 'package:cake_wallet/entities/qr_view_data.dart';
31 import 'package:cake_wallet/entities/template.dart';
32 import 'package:cake_wallet/entities/transaction_description.dart';
@@ -124,6 +121,7 @@ import 'package:cake_wallet/src/screens/support/support_page.dart';
121 import 'package:cake_wallet/src/screens/support_chat/support_chat_page.dart';
122 import 'package:cake_wallet/src/screens/support_other_links/support_other_links_page.dart';
123 import 'package:cake_wallet/src/screens/trade_details/trade_details_page.dart';
124 +import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dart';
125 import 'package:cake_wallet/src/screens/transaction_details/transaction_details_page.dart';
126 import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_details_page.dart';
127 import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_list_page.dart';
@@ -147,6 +145,7 @@ import 'package:cake_wallet/store/templates/send_template_store.dart';
145 import 'package:cake_wallet/store/wallet_list_store.dart';
146 import 'package:cake_wallet/store/yat/yat_store.dart';
147 import 'package:cake_wallet/themes/theme_list.dart';
148 +import 'package:cake_wallet/tron/tron.dart';
149 import 'package:cake_wallet/utils/device_info.dart';
150 import 'package:cake_wallet/utils/payment_request.dart';
151 import 'package:cake_wallet/utils/responsive_layout_util.dart';
@@ -179,6 +178,7 @@ import 'package:cake_wallet/view_model/ionia/ionia_gift_card_details_view_model.
178 import 'package:cake_wallet/view_model/ionia/ionia_gift_cards_list_view_model.dart';
179 import 'package:cake_wallet/view_model/ionia/ionia_payment_status_view_model.dart';
180 import 'package:cake_wallet/view_model/ionia/ionia_purchase_merch_view_model.dart';
181 +import 'package:cake_wallet/view_model/link_view_model.dart';
182 import 'package:cake_wallet/view_model/monero_account_list/account_list_item.dart';
183 import 'package:cake_wallet/view_model/monero_account_list/monero_account_edit_or_create_view_model.dart';
184 import 'package:cake_wallet/view_model/monero_account_list/monero_account_list_view_model.dart';
@@ -222,6 +222,7 @@ import 'package:cake_wallet/view_model/wallet_seed_view_model.dart';
222 import 'package:cw_core/crypto_currency.dart';
223 import 'package:cw_core/nano_account.dart';
224 import 'package:cw_core/node.dart';
225 +import 'package:cw_core/receive_page_option.dart';
226 import 'package:cw_core/transaction_info.dart';
227 import 'package:cw_core/unspent_coins_info.dart';
228 import 'package:cw_core/wallet_info.dart';
@@ -233,7 +234,6 @@ import 'package:get_it/get_it.dart';
234 import 'package:hive/hive.dart';
235 import 'package:mobx/mobx.dart';
236 import 'package:shared_preferences/shared_preferences.dart';
236 -import 'package:cake_wallet/core/secure_storage.dart';
237
238 import 'buy/dfx/dfx_buy_provider.dart';
239 import 'core/totp_request_details.dart';
@@ -795,8 +795,8 @@ Future<void> setup({
795
796 getIt.registerFactory(() => ConnectionSyncPage(getIt.get<DashboardViewModel>()));
797
798 - getIt.registerFactory(
799 - () => SecurityBackupPage(getIt.get<SecuritySettingsViewModel>(), getIt.get<AuthService>()));
798 + getIt.registerFactory(() => SecurityBackupPage(getIt.get<SecuritySettingsViewModel>(),
799 + getIt.get<AuthService>(), getIt.get<AppStore>().wallet!.isHardwareWallet));
800
801 getIt.registerFactory(() => PrivacyPage(getIt.get<PrivacySettingsViewModel>()));
802
lib/src/screens/settings/security_backup_page.dart
+12 -10
@@ -9,14 +9,13 @@ import 'package:cake_wallet/src/screens/pin_code/pin_code_widget.dart';
9 import 'package:cake_wallet/src/screens/settings/widgets/settings_cell_with_arrow.dart';
10 import 'package:cake_wallet/src/screens/settings/widgets/settings_picker_cell.dart';
11 import 'package:cake_wallet/src/screens/settings/widgets/settings_switcher_cell.dart';
12 -import 'package:cake_wallet/src/widgets/standard_list.dart';
12 import 'package:cake_wallet/utils/device_info.dart';
13 import 'package:cake_wallet/view_model/settings/security_settings_view_model.dart';
14 import 'package:flutter/material.dart';
15 import 'package:flutter_mobx/flutter_mobx.dart';
16
17 class SecurityBackupPage extends BasePage {
19 - SecurityBackupPage(this._securitySettingsViewModel, this._authService);
18 + SecurityBackupPage(this._securitySettingsViewModel, this._authService, [this._isHardwareWallet = false]);
19
20 final AuthService _authService;
21
@@ -25,20 +24,23 @@ class SecurityBackupPage extends BasePage {
24
25 final SecuritySettingsViewModel _securitySettingsViewModel;
26
27 + final bool _isHardwareWallet;
28 +
29 @override
30 Widget body(BuildContext context) {
31 return Container(
32 padding: EdgeInsets.only(top: 10),
33 child: Column(mainAxisSize: MainAxisSize.min, children: [
33 - SettingsCellWithArrow(
34 - title: S.current.show_keys,
35 - handler: (_) => _authService.authenticateAction(
36 - context,
37 - route: Routes.showKeys,
38 - conditionToDetermineIfToUse2FA: _securitySettingsViewModel
39 - .shouldRequireTOTP2FAForAllSecurityAndBackupSettings,
34 + if (!_isHardwareWallet)
35 + SettingsCellWithArrow(
36 + title: S.current.show_keys,
37 + handler: (_) => _authService.authenticateAction(
38 + context,
39 + route: Routes.showKeys,
40 + conditionToDetermineIfToUse2FA:
41 + _securitySettingsViewModel.shouldRequireTOTP2FAForAllSecurityAndBackupSettings,
42 + ),
43 ),
41 - ),
44 SettingsCellWithArrow(
45 title: S.current.create_backup,
46 handler: (_) => _authService.authenticateAction(