- Remove old wallet menu widgets - Remove Rescan option from Electrum wallets
- Remove old wallet menu widgets - Remove Rescan option from Electrum wallets
OmarHatem committed
Feb 6, 2023 at 18:46 UTC
d4e720f5c0a18dd992e3d5d447ef1474f6739b6a
3 files changed
+7
-247
lib/src/screens/settings/connection_sync_page.dart
+7
-4
@@ -2,6 +2,7 @@ import 'package:cake_wallet/src/screens/settings/widgets/settings_cell_with_arro
2
import 'package:cake_wallet/utils/show_pop_up.dart';
3
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
4
import 'package:cw_core/node.dart';
5
+import 'package:cw_core/wallet_type.dart';
6
import 'package:flutter/material.dart';
7
import 'package:flutter/cupertino.dart';
8
import 'package:flutter_mobx/flutter_mobx.dart';
@@ -35,10 +36,12 @@ class ConnectionSyncPage extends BasePage {
36
handler: (context) => _presentReconnectAlert(context),
37
),
38
StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)),
38
- SettingsCellWithArrow(
39
- title: S.current.rescan,
40
- handler: (context) => Navigator.of(context).pushNamed(Routes.rescan),
41
- ),
39
+ if (dashboardViewModel.type != WalletType.bitcoin &&
40
+ dashboardViewModel.type != WalletType.litecoin)
41
+ SettingsCellWithArrow(
42
+ title: S.current.rescan,
43
+ handler: (context) => Navigator.of(context).pushNamed(Routes.rescan),
44
+ ),
45
StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)),
46
NodeHeaderListRow(
47
title: S.of(context).add_new_node,
lib/src/screens/wallet_list/wallet_menu.dart
deleted
-131
@@ -1,131 +0,0 @@
1
-import 'package:cake_wallet/src/screens/wallet_list/wallet_menu_item.dart';
2
-import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
3
-import 'package:cake_wallet/utils/show_pop_up.dart';
4
-import 'package:cake_wallet/view_model/wallet_list/wallet_list_view_model.dart';
5
-import 'package:flutter/material.dart';
6
-import 'package:cake_wallet/routes.dart';
7
-import 'package:cake_wallet/generated/i18n.dart';
8
-import 'package:cake_wallet/view_model/wallet_list/wallet_list_item.dart';
9
-import 'package:cake_wallet/src/screens/auth/auth_page.dart';
10
-import 'package:cake_wallet/palette.dart';
11
-
12
-class WalletMenu {
13
- WalletMenu(this.context, this.walletListViewModel);
14
-
15
- final WalletListViewModel walletListViewModel;
16
- final BuildContext context;
17
-
18
- final List<WalletMenuItem> menuItems = [
19
- WalletMenuItem(
20
- title: S.current.wallet_list_load_wallet,
21
- firstGradientColor: Palette.cornflower,
22
- secondGradientColor: Palette.royalBlue,
23
- image: Image.asset('assets/images/load.png',
24
- height: 24, width: 24, color: Colors.white)),
25
- WalletMenuItem(
26
- title: S.current.show_seed,
27
- firstGradientColor: Palette.moderateOrangeYellow,
28
- secondGradientColor: Palette.moderateOrange,
29
- image: Image.asset('assets/images/eye_action.png',
30
- height: 24, width: 24, color: Colors.white)),
31
- WalletMenuItem(
32
- title: S.current.remove,
33
- firstGradientColor: Palette.lightRed,
34
- secondGradientColor: Palette.persianRed,
35
- image: Image.asset('assets/images/trash.png',
36
- height: 24, width: 24, color: Colors.white)),
37
- WalletMenuItem(
38
- title: S.current.rescan,
39
- firstGradientColor: Palette.shineGreen,
40
- secondGradientColor: Palette.moderateGreen,
41
- image: Image.asset('assets/images/scanner.png',
42
- height: 24, width: 24, color: Colors.white))
43
- ];
44
-
45
- List<WalletMenuItem> generateItemsForWalletMenu(bool isCurrentWallet) {
46
- final items = <WalletMenuItem>[];
47
-
48
- if (!isCurrentWallet) items.add(menuItems[0]);
49
- if (isCurrentWallet) items.add(menuItems[1]);
50
- if (!isCurrentWallet) items.add(menuItems[2]);
51
- if (isCurrentWallet) items.add(menuItems[3]);
52
-
53
- return items;
54
- }
55
-
56
- Future<void> action(
57
- int index, WalletListItem wallet) async {
58
- switch (index) {
59
- case 0:
60
- await Navigator.of(context).pushNamed(Routes.auth, arguments:
61
- (bool isAuthenticatedSuccessfully, AuthPageState auth) async {
62
- if (!isAuthenticatedSuccessfully) {
63
- return;
64
- }
65
-
66
- try {
67
- auth.changeProcessText(
68
- S.of(context).wallet_list_loading_wallet(wallet.name));
69
- await walletListViewModel.loadWallet(wallet);
70
- auth.close();
71
- Navigator.of(context).pop();
72
- } catch (e) {
73
- auth.changeProcessText(S
74
- .of(context)
75
- .wallet_list_failed_to_load(wallet.name, e.toString()));
76
- }
77
- });
78
- break;
79
- case 1:
80
- await Navigator.of(context).pushNamed(Routes.auth, arguments:
81
- (bool isAuthenticatedSuccessfully, AuthPageState auth) async {
82
- if (!isAuthenticatedSuccessfully) {
83
- return;
84
- }
85
- auth.close();
86
- await Navigator.of(context).pushNamed(Routes.seed, arguments: false);
87
- });
88
- break;
89
- case 2:
90
- final isComfirmed = await showPopUp<bool>(
91
- context: context,
92
- builder: (BuildContext context) {
93
- return AlertWithTwoActions(
94
- alertTitle: 'Remove wallet',
95
- alertContent: S.of(context).confirm_delete_wallet,
96
- leftButtonText: S.of(context).cancel,
97
- rightButtonText: S.of(context).remove,
98
- actionLeftButton: () => Navigator.of(context).pop(false),
99
- actionRightButton: () => Navigator.of(context).pop(true));
100
- });
101
-
102
- if (isComfirmed == null || !isComfirmed) {
103
- return;
104
- }
105
-
106
- await Navigator.of(context).pushNamed(Routes.auth, arguments:
107
- (bool isAuthenticatedSuccessfully, AuthPageState auth) async {
108
- if (!isAuthenticatedSuccessfully) {
109
- return;
110
- }
111
-
112
- try {
113
- auth.changeProcessText(
114
- S.of(context).wallet_list_removing_wallet(wallet.name));
115
- await walletListViewModel.remove(wallet);
116
- auth.close();
117
- } catch (e) {
118
- auth.changeProcessText(S
119
- .of(context)
120
- .wallet_list_failed_to_remove(wallet.name, e.toString()));
121
- }
122
- });
123
- break;
124
- case 3:
125
- await Navigator.of(context).pushNamed(Routes.rescan);
126
- break;
127
- default:
128
- break;
129
- }
130
- }
131
-}
lib/src/screens/wallet_list/widgets/wallet_menu_alert.dart
deleted
-112
@@ -1,112 +0,0 @@
1
-import 'dart:ui';
2
-import 'package:cake_wallet/palette.dart';
3
-import 'package:cake_wallet/src/screens/wallet_list/wallet_menu.dart';
4
-import 'package:cake_wallet/src/screens/wallet_list/wallet_menu_item.dart';
5
-import 'package:cake_wallet/view_model/wallet_list/wallet_list_item.dart';
6
-import 'package:flutter/cupertino.dart';
7
-import 'package:flutter/material.dart';
8
-import 'package:cake_wallet/src/widgets/alert_background.dart';
9
-import 'package:cake_wallet/src/widgets/alert_close_button.dart';
10
-
11
-class WalletMenuAlert extends StatelessWidget {
12
- WalletMenuAlert({
13
- required this.wallet,
14
- required this.walletMenu,
15
- required this.items
16
- });
17
-
18
- final WalletListItem wallet;
19
- final WalletMenu walletMenu;
20
- final List<WalletMenuItem> items;
21
- final closeButton = Image.asset('assets/images/close.png',
22
- color: Palette.darkBlueCraiola,
23
- );
24
-
25
- @override
26
- Widget build(BuildContext context) {
27
- return AlertBackground(
28
- child: Stack(
29
- alignment: Alignment.center,
30
- children: <Widget>[
31
- Padding(
32
- padding: EdgeInsets.only(
33
- left: 24,
34
- right: 24,
35
- ),
36
- child: ClipRRect(
37
- borderRadius: BorderRadius.all(Radius.circular(14)),
38
- child: Container(
39
- color: Theme.of(context).textTheme!.bodyText1!.decorationColor!,
40
- padding: EdgeInsets.only(left: 24),
41
- child: ListView.separated(
42
- shrinkWrap: true,
43
- physics: const NeverScrollableScrollPhysics(),
44
- itemCount: items.length,
45
- separatorBuilder: (context, _) => Container(
46
- height: 1,
47
- color: Theme.of(context).accentTextTheme!.subtitle1!.backgroundColor!,
48
- ),
49
- itemBuilder: (_, index) {
50
- final item = items[index];
51
-
52
- return GestureDetector(
53
- onTap: () {
54
- Navigator.of(context).pop();
55
- walletMenu.action(
56
- walletMenu.menuItems.indexOf(item),
57
- wallet);
58
- },
59
- child: Container(
60
- height: 60,
61
- child: Row(
62
- mainAxisSize: MainAxisSize.min,
63
- mainAxisAlignment: MainAxisAlignment.start,
64
- crossAxisAlignment: CrossAxisAlignment.center,
65
- children: <Widget>[
66
- Container(
67
- height: 32,
68
- width: 32,
69
- decoration: BoxDecoration(
70
- borderRadius: BorderRadius.all(
71
- Radius.circular(4)),
72
- gradient: LinearGradient(
73
- begin: Alignment.topCenter,
74
- end: Alignment.bottomCenter,
75
- colors: [
76
- item.firstGradientColor,
77
- item.secondGradientColor
78
- ]
79
- )
80
- ),
81
- child: Center(
82
- child: item.image,
83
- ),
84
- ),
85
- SizedBox(width: 12),
86
- Expanded(
87
- child: Text(
88
- item.title,
89
- style: TextStyle(
90
- color: Theme.of(context).primaryTextTheme!.headline6!.color!,
91
- fontSize: 18,
92
- fontFamily: 'Lato',
93
- fontWeight: FontWeight.w500,
94
- decoration: TextDecoration.none
95
- ),
96
- )
97
- )
98
- ],
99
- ),
100
- ),
101
- );
102
- },
103
- ),
104
- ),
105
- ),
106
- ),
107
- AlertCloseButton(image: closeButton)
108
- ],
109
- ),
110
- );
111
- }
112
-}
\ No newline at end of file