V4.6.3 bug fixes (#896)

* Add blocking screenshots native function to Monero.com [skip ci] * Fix seeds QR data * Update app versions and release notes [skip ci] * Update only build number for macos since it wasn't released yet [skip ci] * Fix adding sub-address * Fix Accounts Popup UI * Update app versions and release notes [skip ci] * Fix add/edit node issue * Update app versions and release notes [skip ci] * Fix input fields focus/keyboard issues * Update app versions and release notes [skip ci]

Omar Hatem committed Apr 26, 2023 at 14:59 UTC 82b513d1f8c0a253ede740843bd5c07f8d887c65
14 files changed +276 -182
android/app/src/main/java/com/monero/app/MainActivity.java
+10 -1
@@ -23,6 +23,7 @@ import java.security.SecureRandom;
23 public class MainActivity extends FlutterFragmentActivity {
24 final String UTILS_CHANNEL = "com.cake_wallet/native_utils";
25 final int UNSTOPPABLE_DOMAIN_MIN_VERSION_SDK = 24;
26 + boolean isAppSecure = false;
27
28 @Override
29 public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
@@ -48,13 +49,21 @@ public class MainActivity extends FlutterFragmentActivity {
49 handler.post(() -> result.success(bytes));
50 break;
51 case "getUnstoppableDomainAddress":
51 - int version = Build.VERSION.SDK_INT;
52 + int version = Build.VERSION.SDK_INT;
53 if (version >= UNSTOPPABLE_DOMAIN_MIN_VERSION_SDK) {
54 getUnstoppableDomainAddress(call, result);
55 } else {
56 handler.post(() -> result.success(""));
57 }
58 break;
59 + case "setIsAppSecure":
60 + isAppSecure = call.argument("isAppSecure");
61 + if (isAppSecure) {
62 + getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
63 + } else {
64 + getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
65 + }
66 + break;
67 default:
68 handler.post(() -> result.notImplemented());
69 }
assets/text/Monerocom_Release_Notes.txt
+4 -13
@@ -1,13 +1,4 @@
1 -This update includes a HUGE number of usability improvements!
2 -Type a fiat amount in the receive screen
3 -Easily restore wallets from QR code
4 -Pay Bitcoin Lightning invoices in exchange
5 -Optionally disable the marketplace in display settings
6 -Better warning messages if trying to exchange outside the min/max limits
7 -More address flexibility when exchanging the currently-active wallet asset
8 -Modernized the seed language selection picker
9 -Adjusted pickers to resize if the keyboard is active
10 -Improved accessibility
11 -Click to copy additional fields in the exchange checkout
12 -Fix padding on some devices
13 -Bug fixes and code refactoring
\ No newline at end of file
1 +Fix for QR codes
2 +Fix for creating sub-addresses
3 +Fix Add/Edit nodes
4 +Fix issues with text/amount fields
\ No newline at end of file
assets/text/Release_Notes.txt
+4 -16
@@ -1,16 +1,4 @@
1 -This update includes a HUGE number of usability improvements!
2 -BTC/LTC coin control enhancements and bugfixes; easily look up Ordinals
3 -Type a fiat amount in the receive screen
4 -New Onramper Buy widget
5 -Easily restore wallets from QR code
6 -Substantially better reliability for seeing incoming, unconfirmed BTC/LTC transactions
7 -Pay Bitcoin Lightning invoices in exchange
8 -Optionally disable the marketplace in display settings
9 -Better warning messages if trying to exchange outside the min/max limits
10 -More address flexibility when exchanging the currently-active wallet asset
11 -Modernized the seed language selection picker
12 -Adjusted pickers to resize if the keyboard is active
13 -Improved accessibility
14 -Click to copy additional fields in the exchange checkout
15 -Fix padding on some devices
16 -Bug fixes and code refactoring
\ No newline at end of file
1 +Fix for QR codes
2 +Fix for creating sub-addresses
3 +Fix Add/Edit nodes
4 +Fix issues with text/amount fields
\ No newline at end of file
ios/Podfile.lock
+6
@@ -115,6 +115,8 @@ PODS:
115 - Flutter
116 - flutter_secure_storage (3.3.1):
117 - Flutter
118 + - in_app_review (0.2.0):
119 + - Flutter
120 - local_auth_ios (0.0.1):
121 - Flutter
122 - MTBBarcodeScanner (5.0.11)
@@ -165,6 +167,7 @@ DEPENDENCIES:
167 - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`)
168 - flutter_mailer (from `.symlinks/plugins/flutter_mailer/ios`)
169 - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
170 + - in_app_review (from `.symlinks/plugins/in_app_review/ios`)
171 - local_auth_ios (from `.symlinks/plugins/local_auth_ios/ios`)
172 - package_info (from `.symlinks/plugins/package_info/ios`)
173 - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`)
@@ -220,6 +223,8 @@ EXTERNAL SOURCES:
223 :path: ".symlinks/plugins/flutter_mailer/ios"
224 flutter_secure_storage:
225 :path: ".symlinks/plugins/flutter_secure_storage/ios"
226 + in_app_review:
227 + :path: ".symlinks/plugins/in_app_review/ios"
228 local_auth_ios:
229 :path: ".symlinks/plugins/local_auth_ios/ios"
230 package_info:
@@ -260,6 +265,7 @@ SPEC CHECKSUMS:
265 flutter_inappwebview: bfd58618f49dc62f2676de690fc6dcda1d6c3721
266 flutter_mailer: 2ef5a67087bc8c6c4cefd04a178bf1ae2c94cd83
267 flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec
268 + in_app_review: 318597b3a06c22bb46dc454d56828c85f444f99d
269 local_auth_ios: c6cf091ded637a88f24f86a8875d8b0f526e2605
270 MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
271 OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
lib/src/screens/base_page.dart
+4 -12
@@ -1,5 +1,4 @@
1 import 'package:cake_wallet/themes/theme_base.dart';
2 -import 'package:cake_wallet/utils/responsive_layout_util.dart';
2 import 'package:flutter/cupertino.dart';
3 import 'package:flutter/material.dart';
4 import 'package:cake_wallet/palette.dart';
@@ -21,8 +20,6 @@ abstract class BasePage extends StatelessWidget {
20
21 String? get title => null;
22
24 - bool get canUseCloseIcon => false;
25 -
23 Color get backgroundLightColor => Colors.white;
24
25 Color get backgroundDarkColor => PaletteDark.backgroundColor;
@@ -53,27 +50,22 @@ abstract class BasePage extends StatelessWidget {
50 final _backButton = Icon(Icons.arrow_back_ios,
51 color: titleColor ?? Theme.of(context).primaryTextTheme.headline6!.color!,
52 size: 16,);
56 - final _closeButton = currentTheme.type == ThemeType.dark
57 - ? closeButtonImageDarkTheme : closeButtonImage;
58 -
59 - bool isMobileView = ResponsiveLayoutUtil.instance.isMobile(context);
53
54 return MergeSemantics(
55 child: SizedBox(
63 - height: isMobileView ? 37 : 45,
64 - width: isMobileView ? 37 : 45,
56 + height: 37,
57 + width: 37,
58 child: ButtonTheme(
59 minWidth: double.minPositive,
60 child: Semantics(
68 - label: canUseCloseIcon && !isMobileView ? 'Close' : 'Back',
61 + label: 'Back',
62 child: TextButton(
63 style: ButtonStyle(
64 overlayColor: MaterialStateColor.resolveWith(
65 (states) => Colors.transparent),
66 ),
67 onPressed: () => onClose(context),
75 - child:
76 - canUseCloseIcon && !isMobileView ? _closeButton : _backButton,
68 + child: _backButton,
69 ),
70 ),
71 ),
lib/src/screens/dashboard/widgets/address_page.dart
+32 -1
@@ -6,6 +6,7 @@ import 'package:cake_wallet/src/screens/dashboard/widgets/present_receive_option
6 import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
7 import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
8 import 'package:cake_wallet/themes/theme_base.dart';
9 +import 'package:cake_wallet/utils/responsive_layout_util.dart';
10 import 'package:cake_wallet/utils/share_util.dart';
11 import 'package:cake_wallet/utils/show_pop_up.dart';
12 import 'package:cake_wallet/view_model/dashboard/receive_option_view_model.dart';
@@ -62,7 +63,37 @@ class AddressPage extends BasePage {
63 Color get titleColor => Colors.white;
64
65 @override
65 - bool get canUseCloseIcon => true;
66 + Widget? leading(BuildContext context) {
67 + final _backButton = Icon(Icons.arrow_back_ios,
68 + color: titleColor,
69 + size: 16,
70 + );
71 + final _closeButton = currentTheme.type == ThemeType.dark
72 + ? closeButtonImageDarkTheme : closeButtonImage;
73 +
74 + bool isMobileView = ResponsiveLayoutUtil.instance.isMobile(context);
75 +
76 + return MergeSemantics(
77 + child: SizedBox(
78 + height: isMobileView ? 37 : 45,
79 + width: isMobileView ? 37 : 45,
80 + child: ButtonTheme(
81 + minWidth: double.minPositive,
82 + child: Semantics(
83 + label: !isMobileView ? 'Close' : 'Back',
84 + child: TextButton(
85 + style: ButtonStyle(
86 + overlayColor: MaterialStateColor.resolveWith(
87 + (states) => Colors.transparent),
88 + ),
89 + onPressed: () => onClose(context),
90 + child: !isMobileView ? _closeButton : _backButton,
91 + ),
92 + ),
93 + ),
94 + ),
95 + );
96 + }
97
98 @override
99 Widget middle(BuildContext context) =>
lib/src/screens/exchange/exchange_page.dart
+32 -1
@@ -2,6 +2,7 @@ import 'package:cake_wallet/di.dart';
2 import 'package:cake_wallet/src/screens/exchange/widgets/desktop_exchange_cards_section.dart';
3 import 'package:cake_wallet/src/screens/exchange/widgets/mobile_exchange_cards_section.dart';
4 import 'package:cake_wallet/src/widgets/add_template_button.dart';
5 +import 'package:cake_wallet/themes/theme_base.dart';
6 import 'package:cake_wallet/utils/debounce.dart';
7 import 'package:cake_wallet/utils/responsive_layout_util.dart';
8 import 'package:cw_core/sync_status.dart';
@@ -108,7 +109,37 @@ class ExchangePage extends BasePage {
109 });
110
111 @override
111 - bool get canUseCloseIcon => true;
112 + Widget? leading(BuildContext context) {
113 + final _backButton = Icon(Icons.arrow_back_ios,
114 + color: titleColor,
115 + size: 16,
116 + );
117 + final _closeButton = currentTheme.type == ThemeType.dark
118 + ? closeButtonImageDarkTheme : closeButtonImage;
119 +
120 + bool isMobileView = ResponsiveLayoutUtil.instance.isMobile(context);
121 +
122 + return MergeSemantics(
123 + child: SizedBox(
124 + height: isMobileView ? 37 : 45,
125 + width: isMobileView ? 37 : 45,
126 + child: ButtonTheme(
127 + minWidth: double.minPositive,
128 + child: Semantics(
129 + label: !isMobileView ? 'Close' : 'Back',
130 + child: TextButton(
131 + style: ButtonStyle(
132 + overlayColor: MaterialStateColor.resolveWith(
133 + (states) => Colors.transparent),
134 + ),
135 + onPressed: () => onClose(context),
136 + child: !isMobileView ? _closeButton : _backButton,
137 + ),
138 + ),
139 + ),
140 + ),
141 + );
142 + }
143
144 @override
145 Widget body(BuildContext context) {
lib/src/screens/monero_accounts/monero_account_list_page.dart
+123 -118
@@ -1,9 +1,7 @@
1 -import 'dart:ui';
1 import 'package:cake_wallet/src/widgets/section_divider.dart';
2 +import 'package:cake_wallet/utils/responsive_layout_util.dart';
3 import 'package:flutter/material.dart';
4 -import 'package:flutter/cupertino.dart';
4 import 'package:flutter_mobx/flutter_mobx.dart';
6 -import 'package:cake_wallet/palette.dart';
5 import 'package:cake_wallet/routes.dart';
6 import 'package:cake_wallet/generated/i18n.dart';
7 import 'package:cake_wallet/view_model/monero_account_list/monero_account_list_view_model.dart';
@@ -36,131 +34,138 @@ class MoneroAccountListPage extends StatelessWidget {
34 @override
35 Widget build(BuildContext context) {
36 return AlertBackground(
39 - child: Stack(
40 - alignment: Alignment.center,
41 - children: <Widget>[
42 - Column(
43 - mainAxisSize: MainAxisSize.min,
44 - children: <Widget>[
45 - Container(
46 - padding: EdgeInsets.only(left: 24, right: 24),
47 - child: Text(
48 - S.of(context).choose_account,
49 - textAlign: TextAlign.center,
50 - style: TextStyle(
51 - fontSize: 18,
52 - fontWeight: FontWeight.bold,
53 - fontFamily: 'Lato',
54 - decoration: TextDecoration.none,
55 - color: Colors.white
56 - ),
57 - ),
58 - ),
59 - Padding(
60 - padding: EdgeInsets.only(left: 24, right: 24, top: 24),
61 - child: GestureDetector(
62 - onTap: () => null,
63 - child: ClipRRect(
64 - borderRadius: BorderRadius.all(Radius.circular(14)),
65 - child: Container(
66 - height: 296,
67 - color: Theme.of(context).textTheme!.headline1!.decorationColor!,
68 - child: Column(
69 - children: <Widget>[
70 - Expanded(
71 - child: Observer(
72 - builder: (_) {
73 - final accounts = accountListViewModel.accounts;
74 - isAlwaysShowScrollThumb = accounts == null
75 - ? false
76 - : accounts.length > 3;
37 + child: Column(
38 + children: [
39 + Expanded(
40 + child: Stack(
41 + alignment: Alignment.center,
42 + children: <Widget>[
43 + Column(
44 + mainAxisSize: MainAxisSize.min,
45 + children: <Widget>[
46 + Container(
47 + padding: EdgeInsets.only(left: 24, right: 24),
48 + child: Text(
49 + S.of(context).choose_account,
50 + textAlign: TextAlign.center,
51 + style: TextStyle(
52 + fontSize: 18,
53 + fontWeight: FontWeight.bold,
54 + fontFamily: 'Lato',
55 + decoration: TextDecoration.none,
56 + color: Colors.white
57 + ),
58 + ),
59 + ),
60 + Padding(
61 + padding: EdgeInsets.only(left: 24, right: 24, top: 24),
62 + child: GestureDetector(
63 + onTap: () => null,
64 + child: ClipRRect(
65 + borderRadius: BorderRadius.all(Radius.circular(14)),
66 + child: Container(
67 + height: 296,
68 + color: Theme.of(context).textTheme!.headline1!.decorationColor!,
69 + child: Column(
70 + children: <Widget>[
71 + Expanded(
72 + child: Observer(
73 + builder: (_) {
74 + final accounts = accountListViewModel.accounts;
75 + isAlwaysShowScrollThumb = accounts == null
76 + ? false
77 + : accounts.length > 3;
78
78 - return Stack(
79 - alignment: Alignment.center,
80 - children: <Widget>[
81 - ListView.separated(
82 - padding: EdgeInsets.zero,
83 - controller: controller,
84 - separatorBuilder: (context, index) =>
85 - const SectionDivider(),
86 - itemCount: accounts.length ?? 0,
87 - itemBuilder: (context, index) {
88 - final account = accounts[index];
79 + return Stack(
80 + alignment: Alignment.center,
81 + children: <Widget>[
82 + ListView.separated(
83 + padding: EdgeInsets.zero,
84 + controller: controller,
85 + separatorBuilder: (context, index) =>
86 + const SectionDivider(),
87 + itemCount: accounts.length ?? 0,
88 + itemBuilder: (context, index) {
89 + final account = accounts[index];
90
90 - return AccountTile(
91 - isCurrent: account.isSelected,
92 - accountName: account.label,
93 - onTap: () {
94 - if (account.isSelected) {
95 - return;
96 - }
91 + return AccountTile(
92 + isCurrent: account.isSelected,
93 + accountName: account.label,
94 + onTap: () {
95 + if (account.isSelected) {
96 + return;
97 + }
98
98 - accountListViewModel
99 - .select(account);
100 - Navigator.of(context).pop();
99 + accountListViewModel
100 + .select(account);
101 + Navigator.of(context).pop();
102 + },
103 + onEdit: () async =>
104 + await Navigator.of(context)
105 + .pushNamed(
106 + Routes.accountCreation,
107 + arguments: account));
108 },
102 - onEdit: () async =>
103 - await Navigator.of(context)
104 - .pushNamed(
105 - Routes.accountCreation,
106 - arguments: account));
107 - },
108 - ),
109 - isAlwaysShowScrollThumb
110 - ? CakeScrollbar(
111 - backgroundHeight: backgroundHeight,
112 - thumbHeight: thumbHeight,
113 - fromTop: accountListViewModel
114 - .scrollOffsetFromTop
115 - )
116 - : Offstage(),
117 - ],
118 - );
119 - }
120 - )
121 - ),
122 - GestureDetector(
123 - onTap: () async => await Navigator.of(context)
124 - .pushNamed(Routes.accountCreation),
125 - child: Container(
126 - height: 62,
127 - color: Theme.of(context).cardColor,
128 - padding: EdgeInsets.only(left: 24, right: 24),
129 - child: Center(
130 - child: Row(
131 - mainAxisSize: MainAxisSize.min,
132 - children: <Widget>[
133 - Icon(
134 - Icons.add,
135 - color: Colors.white,
136 - ),
137 - Padding(
138 - padding: EdgeInsets.only(left: 5),
139 - child: Text(
140 - S.of(context).create_new_account,
141 - style: TextStyle(
142 - fontSize: 15,
143 - fontWeight: FontWeight.w600,
144 - fontFamily: 'Lato',
145 - color: Colors.white,
146 - decoration: TextDecoration.none,
147 - ),
148 - ),
109 + ),
110 + isAlwaysShowScrollThumb
111 + ? CakeScrollbar(
112 + backgroundHeight: backgroundHeight,
113 + thumbHeight: thumbHeight,
114 + fromTop: accountListViewModel
115 + .scrollOffsetFromTop
116 + )
117 + : Offstage(),
118 + ],
119 + );
120 + }
121 )
150 - ],
122 ),
152 - ),
123 + GestureDetector(
124 + onTap: () async => await Navigator.of(context)
125 + .pushNamed(Routes.accountCreation),
126 + child: Container(
127 + height: 62,
128 + color: Theme.of(context).cardColor,
129 + padding: EdgeInsets.only(left: 24, right: 24),
130 + child: Center(
131 + child: Row(
132 + mainAxisSize: MainAxisSize.min,
133 + children: <Widget>[
134 + Icon(
135 + Icons.add,
136 + color: Colors.white,
137 + ),
138 + Padding(
139 + padding: EdgeInsets.only(left: 5),
140 + child: Text(
141 + S.of(context).create_new_account,
142 + style: TextStyle(
143 + fontSize: 15,
144 + fontWeight: FontWeight.w600,
145 + fontFamily: 'Lato',
146 + color: Colors.white,
147 + decoration: TextDecoration.none,
148 + ),
149 + ),
150 + )
151 + ],
152 + ),
153 + ),
154 + ),
155 + )
156 + ],
157 ),
154 - )
155 - ],
158 + ),
159 + ),
160 ),
157 - ),
158 - ),
161 + )
162 + ],
163 ),
160 - )
161 - ],
164 + SizedBox(height: ResponsiveLayoutUtil.kPopupSpaceHeight),
165 + AlertCloseButton()
166 + ],
167 + ),
168 ),
163 - AlertCloseButton()
169 ],
170 ),
171 );
lib/src/screens/send/send_page.dart
+32 -1
@@ -5,6 +5,7 @@ import 'package:cake_wallet/src/widgets/add_template_button.dart';
5 import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
6 import 'package:cake_wallet/src/widgets/picker.dart';
7 import 'package:cake_wallet/src/widgets/template_tile.dart';
8 +import 'package:cake_wallet/themes/theme_base.dart';
9 import 'package:cake_wallet/utils/payment_request.dart';
10 import 'package:cake_wallet/utils/request_review_handler.dart';
11 import 'package:cake_wallet/utils/responsive_layout_util.dart';
@@ -53,7 +54,37 @@ class SendPage extends BasePage {
54 bool get extendBodyBehindAppBar => true;
55
56 @override
56 - bool get canUseCloseIcon => true;
57 + Widget? leading(BuildContext context) {
58 + final _backButton = Icon(Icons.arrow_back_ios,
59 + color: titleColor,
60 + size: 16,
61 + );
62 + final _closeButton = currentTheme.type == ThemeType.dark
63 + ? closeButtonImageDarkTheme : closeButtonImage;
64 +
65 + bool isMobileView = ResponsiveLayoutUtil.instance.isMobile(context);
66 +
67 + return MergeSemantics(
68 + child: SizedBox(
69 + height: isMobileView ? 37 : 45,
70 + width: isMobileView ? 37 : 45,
71 + child: ButtonTheme(
72 + minWidth: double.minPositive,
73 + child: Semantics(
74 + label: !isMobileView ? 'Close' : 'Back',
75 + child: TextButton(
76 + style: ButtonStyle(
77 + overlayColor: MaterialStateColor.resolveWith(
78 + (states) => Colors.transparent),
79 + ),
80 + onPressed: () => onClose(context),
81 + child: !isMobileView ? _closeButton : _backButton,
82 + ),
83 + ),
84 + ),
85 + ),
86 + );
87 + }
88
89 @override
90 AppBarStyle get appBarStyle => AppBarStyle.transparent;
lib/src/screens/subaddress/address_edit_or_create_page.dart
+18 -8
@@ -1,5 +1,4 @@
1 import 'package:mobx/mobx.dart';
2 -import 'package:flutter/cupertino.dart';
2 import 'package:flutter/material.dart';
3 import 'package:flutter_mobx/flutter_mobx.dart';
4 import 'package:cake_wallet/generated/i18n.dart';
@@ -23,18 +22,14 @@ class AddressEditOrCreatePage extends BasePage {
22 final GlobalKey<FormState> _formKey;
23 final TextEditingController _labelController;
24
25 + bool _isEffectsInstalled = false;
26 +
27 @override
28 String get title => S.current.new_subaddress_title;
29
30 @override
31 Widget body(BuildContext context) {
31 - reaction((_) => addressEditOrCreateViewModel.state,
32 - (AddressEditOrCreateState state) {
33 - if (state is AddressSavedSuccessfully) {
34 - WidgetsBinding.instance
35 - .addPostFrameCallback((_) => Navigator.of(context).pop());
36 - }
37 - });
32 + _setEffects(context);
33
34 return Form(
35 key: _formKey,
@@ -70,4 +65,19 @@ class AddressEditOrCreatePage extends BasePage {
65 ),
66 ));
67 }
68 +
69 + void _setEffects(BuildContext context) {
70 + if (_isEffectsInstalled) {
71 + return;
72 + }
73 + reaction((_) => addressEditOrCreateViewModel.state,
74 + (AddressEditOrCreateState state) {
75 + if (state is AddressSavedSuccessfully) {
76 + WidgetsBinding.instance
77 + .addPostFrameCallback((_) => Navigator.of(context).pop());
78 + }
79 + });
80 +
81 + _isEffectsInstalled = true;
82 + }
83 }
\ No newline at end of file
lib/src/screens/wallet_keys/wallet_keys_page.dart
+2 -2
@@ -4,7 +4,6 @@ import 'package:cake_wallet/src/widgets/section_divider.dart';
4 import 'package:cake_wallet/utils/show_bar.dart';
5 import 'package:device_display_brightness/device_display_brightness.dart';
6 import 'package:flutter/material.dart';
7 -import 'package:flutter/cupertino.dart';
7 import 'package:flutter/services.dart';
8 import 'package:flutter_mobx/flutter_mobx.dart';
9 import 'package:cake_wallet/generated/i18n.dart';
@@ -26,13 +25,14 @@ class WalletKeysPage extends BasePage {
25 onPressed: () async {
26 // Get the current brightness:
27 final double brightness = await DeviceDisplayBrightness.getBrightness();
28 + final url = await walletKeysViewModel.url;
29
30 // ignore: unawaited_futures
31 DeviceDisplayBrightness.setBrightness(1.0);
32 await Navigator.pushNamed(
33 context,
34 Routes.fullscreenQR,
35 - arguments: QrViewData(data: await walletKeysViewModel.url.toString()),
35 + arguments: QrViewData(data: url.toString()),
36 );
37 // ignore: unawaited_futures
38 DeviceDisplayBrightness.setBrightness(brightness);
scripts/android/app_env.sh
+4 -4
@@ -14,14 +14,14 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
14 APP_ANDROID_TYPE=$1
15
16 MONERO_COM_NAME="Monero.com"
17 -MONERO_COM_VERSION="1.3.3"
18 -MONERO_COM_BUILD_NUMBER=43
17 +MONERO_COM_VERSION="1.3.4"
18 +MONERO_COM_BUILD_NUMBER=47
19 MONERO_COM_BUNDLE_ID="com.monero.app"
20 MONERO_COM_PACKAGE="com.monero.app"
21
22 CAKEWALLET_NAME="Cake Wallet"
23 -CAKEWALLET_VERSION="4.6.3"
24 -CAKEWALLET_BUILD_NUMBER=154
23 +CAKEWALLET_VERSION="4.6.4"
24 +CAKEWALLET_BUILD_NUMBER=158
25 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
26 CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"
27
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.3.3"
17 -MONERO_COM_BUILD_NUMBER=41
16 +MONERO_COM_VERSION="1.3.4"
17 +MONERO_COM_BUILD_NUMBER=45
18 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
19
20 CAKEWALLET_NAME="Cake Wallet"
21 -CAKEWALLET_VERSION="4.6.3"
22 -CAKEWALLET_BUILD_NUMBER=148
21 +CAKEWALLET_VERSION="4.6.4"
22 +CAKEWALLET_BUILD_NUMBER=153
23 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
24
25 HAVEN_NAME="Haven"
scripts/macos/app_env.sh
+1 -1
@@ -16,7 +16,7 @@ fi
16
17 CAKEWALLET_NAME="Cake Wallet"
18 CAKEWALLET_VERSION="1.0.2"
19 -CAKEWALLET_BUILD_NUMBER=14
19 +CAKEWALLET_BUILD_NUMBER=18
20 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
21
22 if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then