dev
dart 109 lines 5.18 KB
Raw
1 import 'package:cake_wallet/entities/new_ui_entities/list_item/list_item_regular_row.dart';
2 import 'package:cake_wallet/entities/new_ui_entities/list_item/list_item_toggle.dart';
3 import 'package:cake_wallet/generated/i18n.dart';
4 import 'package:cake_wallet/new-ui/pages/coin_control_page.dart';
5 import 'package:cake_wallet/new-ui/widgets/modal_header.dart';
6 import 'package:cake_wallet/new-ui/widgets/modal_page_wrapper.dart';
7 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
8 import 'package:cake_wallet/routes.dart';
9 import 'package:cake_wallet/src/screens/base_page.dart';
10 import 'package:cake_wallet/src/widgets/new_list_row/new_list_section.dart';
11 import 'package:cake_wallet/view_model/settings/privacy_settings_view_model.dart';
12 import 'package:flutter/material.dart';
13 import 'package:flutter_mobx/flutter_mobx.dart';
14
15 class PrivacyPage extends BasePage {
16 PrivacyPage(this._privacySettingsViewModel);
17
18 @override
19 bool get hideAppBar => true;
20
21 final PrivacySettingsViewModel _privacySettingsViewModel;
22
23 @override
24 Widget body(BuildContext context) {
25 return ModalPageWrapper(
26 topBar: ModalTopBar(
27 title: "",
28 leadingIcon: Icon(Icons.arrow_back_ios_new),
29 leadingSemanticLabel: S.of(context).seed_alert_back,
30 onLeadingPressed: () => Navigator.of(context).pop(),
31 ),
32 header: ModalHeader(
33 iconPath: "assets/new-ui/settings_row_icons/privacy.svg",
34 message: S.of(context).privacy_desc,
35 title: S.of(context).privacy),
36 content: SingleChildScrollView(
37 child: Container(
38 child: Observer(builder: (_) {
39 return Column(
40 mainAxisSize: MainAxisSize.min,
41 children: [
42 NewListSections(sections: {
43 "1": [
44 if (_privacySettingsViewModel.isAutoGenerateSubaddressesVisible)
45 ListItemToggle(
46 keyValue: "auto_generate_subaddresses",
47 label: _privacySettingsViewModel.isMoneroWallet
48 ? S.of(context).auto_generate_subaddresses
49 : S.of(context).auto_generate_addresses,
50 value: _privacySettingsViewModel.isAutoGenerateSubaddressesEnabled,
51 onChanged: (val) {
52 _privacySettingsViewModel.setAutoGenerateSubaddresses(val);
53 }),
54 ListItemToggle(
55 keyValue: "save_recipient_address",
56 label: S.of(context).settings_save_recipient_address,
57 value: _privacySettingsViewModel.shouldSaveRecipientAddress,
58 onChanged: (val) {
59 _privacySettingsViewModel.setShouldSaveRecipientAddress(val);
60 }),
61 if (_privacySettingsViewModel.canUsePayjoin)
62 ListItemToggle(
63 keyValue: "use_payjoin",
64 label: S.of(context).use_payjoin,
65 value: _privacySettingsViewModel.usePayjoin,
66 onChanged: (val) {
67 _privacySettingsViewModel.setUsePayjoin(val);
68 }),
69 if (_privacySettingsViewModel.canUseLightning)
70 ListItemToggle(
71 keyValue: "enable_lightning",
72 label: S.of(context).enable_lightning,
73 value: _privacySettingsViewModel.useLightning,
74 onChanged: (val) {
75 _privacySettingsViewModel.setUseLightning(val);
76 }),
77 ],
78 "": [
79 if (_privacySettingsViewModel.hasSilentPaymentsScanning)
80 ListItemRegularRow(
81 iconPath: "assets/new-ui/settings_row_icons/silent-payments.svg",
82 keyValue: "silent_payments",
83 label: S.of(context).silent_payments,
84 onTap: () =>
85 Navigator.of(context).pushNamed(Routes.silentPaymentsSettings)),
86 if (_privacySettingsViewModel.hasMWEB)
87 ListItemRegularRow(
88 iconPath: "assets/new-ui/settings_row_icons/mweb.svg",
89 keyValue: "mweb",
90 label: "MWEB",
91 onTap: () => Navigator.of(context).pushNamed(Routes.mwebSettings)),
92 if (_privacySettingsViewModel.hasCoinControl)
93 ListItemRegularRow(
94 iconPath: "assets/new-ui/settings_row_icons/coin-control.svg",
95 keyValue: "coin_control",
96 label: "Coin Control",
97 onTap: () => Navigator.of(context).pushNamed(Routes.unspentCoinsList,
98 arguments:
99 CoinControlPageArgs(canEdit: false, coinTypeToSpendFrom: null))),
100 ],
101 }),
102 ],
103 );
104 }),
105 ),
106 ),
107 );
108 }
109 }