v4.23.2 Release Candidate (#2039)

* v4.23.2 Release Candidate * adjust bottom nav bar height * Adjust gradient and padding * fix blur

Omar Hatem committed Feb 20, 2025 at 20:24 UTC e8fdf33a79a858f4f79c292d9ffd36e6b5e8c7b1
9 files changed +98 -189
assets/text/Monerocom_Release_Notes.txt
+1 -2
@@ -1,4 +1,3 @@
1 -Added passphrase support
2 -Added decentralized cross-chain exchange, Chainflip
1 +Ledger fixes
2 UI enhancements
3 Bug fixes
\ No newline at end of file
assets/text/Release_Notes.txt
+3 -3
@@ -1,5 +1,5 @@
1 -Added Zano wallet support
2 -Added Monero/Wownero passphrase support
3 -Added decentralized cross-chain exchange, Chainflip
1 +Zano enhancements
2 +Ethereum enhancements
3 +Ledger fixes
4 UI enhancements
5 Bug fixes
\ No newline at end of file
lib/src/screens/dashboard/pages/navigation_dock.dart
+78 -168
@@ -18,176 +18,38 @@ class NavigationDock extends StatelessWidget {
18
19 @override
20 Widget build(BuildContext context) {
21 - return dashboardViewModel.settingsStore.currentTheme.type == ThemeType.bright
22 - ? Positioned(
23 - child: Observer(
24 - builder: (_) {
25 - return Container(
26 - alignment: Alignment.bottomCenter,
27 - height: 150,
28 - decoration: BoxDecoration(
29 - gradient: LinearGradient(
30 - begin: Alignment.topCenter,
31 - end: Alignment.bottomCenter,
32 - colors: <Color>[
33 - Theme.of(context)
34 - .extension<DashboardPageTheme>()!
35 - .thirdGradientBackgroundColor
36 - .withAlpha(10),
37 - Theme.of(context)
38 - .extension<DashboardPageTheme>()!
39 - .thirdGradientBackgroundColor
40 - .withAlpha(75),
41 - Theme.of(context)
42 - .extension<DashboardPageTheme>()!
43 - .thirdGradientBackgroundColor
44 - .withAlpha(150),
45 - Theme.of(context)
46 - .extension<DashboardPageTheme>()!
47 - .thirdGradientBackgroundColor,
48 - Theme.of(context)
49 - .extension<DashboardPageTheme>()!
50 - .thirdGradientBackgroundColor
51 - ],
52 - ),
53 - ),
21 + return Positioned(
22 + child: Observer(
23 + builder: (_) {
24 + return Container(
25 + height: 150,
26 + alignment: Alignment.bottomCenter,
27 + decoration: BoxDecoration(
28 + gradient: LinearGradient(
29 + begin: Alignment.topCenter,
30 + end: Alignment.bottomCenter,
31 + colors: _getColors(context),
32 + ),
33 + ),
34 + child: Container(
35 + margin: const EdgeInsets.only(left: 16, right: 16, bottom: 16),
36 + child: ClipRRect(
37 + borderRadius: BorderRadius.circular(50),
38 + child: BackdropFilter(
39 + filter: ImageFilter.blur(sigmaX: 50, sigmaY: 50),
40 child: Container(
55 - margin: const EdgeInsets.only(left: 16, right: 16, bottom: 16),
56 - child: ClipRRect(
57 - borderRadius: BorderRadius.circular(50),
58 - child: BackdropFilter(
59 - filter: ImageFilter.blur(sigmaX: 50, sigmaY: 50),
60 - child: Container(
61 - height: 75,
62 - decoration: BoxDecoration(
63 - borderRadius: BorderRadius.circular(50.0),
64 - border: Border.all(
65 - color:
66 - Theme.of(context).extension<BalancePageTheme>()!.cardBorderColor,
67 - width: 1,
68 - ),
69 - color: Theme.of(context)
70 - .extension<SyncIndicatorTheme>()!
71 - .syncedBackgroundColor,
72 - ),
73 - child: Container(
74 - padding: EdgeInsets.symmetric(horizontal: 10),
75 - child: Row(
76 - mainAxisAlignment: MainAxisAlignment.spaceBetween,
77 - children: MainActions.all
78 - .where((element) =>
79 - element.canShow?.call(dashboardViewModel) ?? true)
80 - .map(
81 - (action) => Expanded(
82 - child: Semantics(
83 - button: true,
84 - enabled:
85 - (action.isEnabled?.call(dashboardViewModel) ?? true),
86 - child: ActionButton(
87 - key: ValueKey(
88 - 'dashboard_page_${action.name(context)}_action_button_key'),
89 - image: Image.asset(
90 - action.image,
91 - height: 24,
92 - width: 24,
93 - color:
94 - action.isEnabled?.call(dashboardViewModel) ?? true
95 - ? Theme.of(context)
96 - .extension<DashboardPageTheme>()!
97 - .mainActionsIconColor
98 - : Theme.of(context)
99 - .extension<BalancePageTheme>()!
100 - .labelTextColor,
101 - ),
102 - title: action.name(context),
103 - onClick: () async =>
104 - await action.onTap(context, dashboardViewModel),
105 - textColor:
106 - action.isEnabled?.call(dashboardViewModel) ?? true
107 - ? null
108 - : Theme.of(context)
109 - .extension<BalancePageTheme>()!
110 - .labelTextColor,
111 - ),
112 - ),
113 - ),
114 - )
115 - .toList(),
116 - ),
117 - ),
118 - ),
41 + decoration: BoxDecoration(
42 + borderRadius: BorderRadius.circular(50.0),
43 + border: Border.all(
44 + color: Theme.of(context).extension<BalancePageTheme>()!.cardBorderColor,
45 + width: 1,
46 ),
47 + color:
48 + Theme.of(context).extension<SyncIndicatorTheme>()!.syncedBackgroundColor,
49 ),
121 - ),
122 - );
123 - },
124 - ),
125 - )
126 - : Positioned(
127 - child: Observer(
128 - builder: (_) {
129 - return Container(
130 - alignment: Alignment.bottomCenter,
131 - height: 150,
132 - decoration: BoxDecoration(
133 - gradient: LinearGradient(
134 - begin: Alignment.topCenter,
135 - end: Alignment.bottomCenter,
136 - colors: <Color>[
137 - Theme.of(context)
138 - .extension<DashboardPageTheme>()!
139 - .thirdGradientBackgroundColor
140 - .withAlpha(5),
141 - Theme.of(context)
142 - .extension<DashboardPageTheme>()!
143 - .thirdGradientBackgroundColor
144 - .withAlpha(50),
145 - Theme.of(context)
146 - .extension<DashboardPageTheme>()!
147 - .thirdGradientBackgroundColor
148 - .withAlpha(125),
149 - Theme.of(context)
150 - .extension<DashboardPageTheme>()!
151 - .thirdGradientBackgroundColor
152 - .withAlpha(150),
153 - Theme.of(context)
154 - .extension<DashboardPageTheme>()!
155 - .thirdGradientBackgroundColor
156 - .withAlpha(200),
157 - Theme.of(context)
158 - .extension<DashboardPageTheme>()!
159 - .thirdGradientBackgroundColor,
160 - Theme.of(context)
161 - .extension<DashboardPageTheme>()!
162 - .thirdGradientBackgroundColor
163 - ],
164 - ),
165 - ),
166 - child: Container(
167 - margin: const EdgeInsets.only(left: 16, right: 16, bottom: 16),
50 child: Container(
169 - height: 75,
170 - decoration: BoxDecoration(
171 - borderRadius: BorderRadius.circular(50.0),
172 - border: Border.all(
173 - color: Theme.of(context).extension<BalancePageTheme>()!.cardBorderColor,
174 - width: 1,
175 - ),
176 - color: Theme.of(context)
177 - .extension<SyncIndicatorTheme>()!
178 - .syncedBackgroundColor,
179 - // boxShadow: [
180 - // BoxShadow(
181 - // color: Theme.of(context)
182 - // .extension<BalancePageTheme>()!
183 - // .cardBorderColor
184 - // .withAlpha(50),
185 - // spreadRadius: dashboardViewModel.getShadowSpread(),
186 - // blurRadius: dashboardViewModel.getShadowBlur())
187 - // ],
188 - ),
189 - child: Container(
190 - padding: EdgeInsets.symmetric(horizontal: 10),
51 + padding: EdgeInsets.symmetric(horizontal: 10),
52 + child: IntrinsicHeight(
53 child: Row(
54 mainAxisAlignment: MainAxisAlignment.spaceBetween,
55 children: MainActions.all
@@ -229,9 +91,57 @@ class NavigationDock extends StatelessWidget {
91 ),
92 ),
93 ),
232 - );
233 - },
94 + ),
95 + ),
96 ),
97 );
98 + },
99 + ),
100 + );
101 + }
102 +
103 + List<Color> _getColors(BuildContext context) {
104 + final isBright = dashboardViewModel.settingsStore.currentTheme.type == ThemeType.bright;
105 + return isBright
106 + ? <Color>[
107 + Theme.of(context)
108 + .extension<DashboardPageTheme>()!
109 + .thirdGradientBackgroundColor
110 + .withAlpha(10),
111 + Theme.of(context)
112 + .extension<DashboardPageTheme>()!
113 + .thirdGradientBackgroundColor
114 + .withAlpha(75),
115 + Theme.of(context)
116 + .extension<DashboardPageTheme>()!
117 + .thirdGradientBackgroundColor
118 + .withAlpha(150),
119 + Theme.of(context).extension<DashboardPageTheme>()!.thirdGradientBackgroundColor,
120 + Theme.of(context).extension<DashboardPageTheme>()!.thirdGradientBackgroundColor
121 + ]
122 + : <Color>[
123 + Theme.of(context)
124 + .extension<DashboardPageTheme>()!
125 + .thirdGradientBackgroundColor
126 + .withAlpha(5),
127 + Theme.of(context)
128 + .extension<DashboardPageTheme>()!
129 + .thirdGradientBackgroundColor
130 + .withAlpha(50),
131 + Theme.of(context)
132 + .extension<DashboardPageTheme>()!
133 + .thirdGradientBackgroundColor
134 + .withAlpha(125),
135 + Theme.of(context)
136 + .extension<DashboardPageTheme>()!
137 + .thirdGradientBackgroundColor
138 + .withAlpha(150),
139 + Theme.of(context)
140 + .extension<DashboardPageTheme>()!
141 + .thirdGradientBackgroundColor
142 + .withAlpha(200),
143 + Theme.of(context).extension<DashboardPageTheme>()!.thirdGradientBackgroundColor,
144 + Theme.of(context).extension<DashboardPageTheme>()!.thirdGradientBackgroundColor
145 + ];
146 }
147 }
lib/src/screens/dashboard/widgets/action_button.dart
+1 -1
@@ -31,7 +31,7 @@ class ActionButton extends StatelessWidget {
31 },
32 child: Container(
33 color: Colors.transparent,
34 - padding: EdgeInsets.only(top: 5, bottom: 5, left: 0, right: 0),
34 + padding: EdgeInsets.only(top: 5, bottom: 4, left: 0, right: 0),
35 alignment: alignment,
36 child: Column(
37 mainAxisSize: MainAxisSize.max,
scripts/android/app_env.sh
+4 -4
@@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
15 APP_ANDROID_TYPE=$1
16
17 MONERO_COM_NAME="Monero.com"
18 -MONERO_COM_VERSION="1.20.0"
19 -MONERO_COM_BUILD_NUMBER=113
18 +MONERO_COM_VERSION="1.20.2"
19 +MONERO_COM_BUILD_NUMBER=114
20 MONERO_COM_BUNDLE_ID="com.monero.app"
21 MONERO_COM_PACKAGE="com.monero.app"
22 MONERO_COM_SCHEME="monero.com"
23
24 CAKEWALLET_NAME="Cake Wallet"
25 -CAKEWALLET_VERSION="4.23.0"
26 -CAKEWALLET_BUILD_NUMBER=246
25 +CAKEWALLET_VERSION="4.23.2"
26 +CAKEWALLET_BUILD_NUMBER=247
27 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
28 CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"
29 CAKEWALLET_SCHEME="cakewallet"
scripts/ios/app_env.sh
+4 -4
@@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
13 APP_IOS_TYPE=$1
14
15 MONERO_COM_NAME="Monero.com"
16 -MONERO_COM_VERSION="1.20.1"
17 -MONERO_COM_BUILD_NUMBER=111
16 +MONERO_COM_VERSION="1.20.2"
17 +MONERO_COM_BUILD_NUMBER=112
18 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
19
20 CAKEWALLET_NAME="Cake Wallet"
21 -CAKEWALLET_VERSION="4.23.1"
22 -CAKEWALLET_BUILD_NUMBER=295
21 +CAKEWALLET_VERSION="4.23.2"
22 +CAKEWALLET_BUILD_NUMBER=296
23 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
24
25 HAVEN_NAME="Haven"
scripts/linux/app_env.sh
+2 -2
@@ -14,8 +14,8 @@ if [ -n "$1" ]; then
14 fi
15
16 CAKEWALLET_NAME="Cake Wallet"
17 -CAKEWALLET_VERSION="1.13.0"
18 -CAKEWALLET_BUILD_NUMBER=46
17 +CAKEWALLET_VERSION="1.13.2"
18 +CAKEWALLET_BUILD_NUMBER=47
19
20 if ! [[ " ${TYPES[*]} " =~ " ${APP_LINUX_TYPE} " ]]; then
21 echo "Wrong app type."
scripts/macos/app_env.sh
+4 -4
@@ -16,13 +16,13 @@ if [ -n "$1" ]; then
16 fi
17
18 MONERO_COM_NAME="Monero.com"
19 -MONERO_COM_VERSION="1.10.0"
20 -MONERO_COM_BUILD_NUMBER=43
19 +MONERO_COM_VERSION="1.10.2"
20 +MONERO_COM_BUILD_NUMBER=44
21 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
22
23 CAKEWALLET_NAME="Cake Wallet"
24 -CAKEWALLET_VERSION="1.16.0"
25 -CAKEWALLET_BUILD_NUMBER=104
24 +CAKEWALLET_VERSION="1.16.2"
25 +CAKEWALLET_BUILD_NUMBER=105
26 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
27
28 if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then
scripts/windows/build_exe_installer.iss
+1 -1
@@ -1,5 +1,5 @@
1 #define MyAppName "Cake Wallet"
2 -#define MyAppVersion "0.4.0"
2 +#define MyAppVersion "0.4.2"
3 #define MyAppPublisher "Cake Labs LLC"
4 #define MyAppURL "https://cakewallet.com/"
5 #define MyAppExeName "CakeWallet.exe"