V4.6.7 v1.3.8 (#971)

* - Replace payfura widget with direct browser link - Remove Payfura widget class as it is duplicate for the web view page * Revert removing swipe to delete wallet feature * Pump app versions and update release notes

Omar Hatem committed Jun 20, 2023 at 15:27 UTC e9b5c79a1e8870ab66410eb2578601d4f27f26de
11 files changed +40 -119
assets/text/Monerocom_Release_Notes.txt
+3 -6
@@ -1,6 +1,3 @@
1 -Opt-in to Cake 2FA for security. More info: https://guides.cakewallet.com/docs/advanced-features/authentication/#cake-2fa
2 -Auto generate restore height for Monero restore QR codes
3 -Hausa and Yoruba languages
4 -Additional privacy settings
5 -Update Monero to 0.18.2.2
6 -Refactoring and bug fixes
\ No newline at end of file
1 +Enable iPad/Tablet separate layout from mobile UI
2 +SideShift update and fixes
3 +Bug Fixes
\ No newline at end of file
assets/text/Release_Notes.txt
+4 -6
@@ -1,6 +1,4 @@
1 -Opt-in to Cake 2FA for security. More info: https://guides.cakewallet.com/docs/advanced-features/authentication/#cake-2fa
2 -Auto generate restore height for Monero restore QR codes
3 -Hausa and Yoruba languages
4 -Additional privacy settings
5 -Update Monero to 0.18.2.2
6 -Refactoring and bug fixes
\ No newline at end of file
1 +Enable iPad/Tablet separate layout from mobile UI
2 +SideShift update and fixes
3 +Add MoonPay sell
4 +Bug Fixes
\ No newline at end of file
lib/di.dart
-4
@@ -1,7 +1,6 @@
1 import 'package:cake_wallet/anonpay/anonpay_api.dart';
2 import 'package:cake_wallet/anonpay/anonpay_info_base.dart';
3 import 'package:cake_wallet/anonpay/anonpay_invoice_info.dart';
4 -import 'package:cake_wallet/buy/moonpay/moonpay_buy_provider.dart';
4 import 'package:cake_wallet/buy/onramper/onramper_buy_provider.dart';
5 import 'package:cake_wallet/buy/payfura/payfura_buy_provider.dart';
6 import 'package:cake_wallet/core/yat_service.dart';
@@ -14,7 +13,6 @@ import 'package:cake_wallet/ionia/ionia_tip.dart';
13 import 'package:cake_wallet/routes.dart';
14 import 'package:cake_wallet/src/screens/anonpay_details/anonpay_details_page.dart';
15 import 'package:cake_wallet/src/screens/buy/webview_page.dart';
17 -import 'package:cake_wallet/src/screens/buy/payfura_page.dart';
16 import 'package:cake_wallet/src/screens/dashboard/desktop_dashboard_page.dart';
17 import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart';
18 import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart';
@@ -685,8 +683,6 @@ Future setup({
683 wallet: getIt.get<AppStore>().wallet!,
684 ));
685
688 - getIt.registerFactory(() => PayFuraPage(getIt.get<PayfuraBuyProvider>()));
689 -
686 getIt.registerFactory(() => ExchangeViewModel(
687 getIt.get<AppStore>().wallet!,
688 _tradesSource,
lib/entities/main_actions.dart
+3 -8
@@ -1,12 +1,10 @@
1 import 'package:cake_wallet/buy/moonpay/moonpay_buy_provider.dart';
2 import 'package:cake_wallet/buy/onramper/onramper_buy_provider.dart';
3 -import 'package:cake_wallet/buy/payfura/payfura_buy_provider.dart';
3 import 'package:cake_wallet/di.dart';
4 import 'package:cake_wallet/generated/i18n.dart';
5 import 'package:cake_wallet/routes.dart';
6 import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
7 import 'package:cake_wallet/utils/device_info.dart';
9 -import 'package:cake_wallet/utils/responsive_layout_util.dart';
8 import 'package:cake_wallet/utils/show_pop_up.dart';
9 import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
10 import 'package:cw_core/wallet_type.dart';
@@ -60,12 +58,9 @@ class MainActions {
58 break;
59 case WalletType.monero:
60 if (viewModel.isEnabledBuyAction) {
63 - if (DeviceInfo.instance.isMobile) {
64 - Navigator.of(context).pushNamed(Routes.payfuraPage);
65 - } else {
66 - final uri = getIt.get<PayfuraBuyProvider>().requestUrl();
67 - await launchUrl(uri);
68 - }
61 + // final uri = getIt.get<PayfuraBuyProvider>().requestUrl();
62 + final uri = Uri.parse("https://monero.com/trade");
63 + await launchUrl(uri);
64 }
65 break;
66 default:
lib/router.dart
-6
@@ -9,7 +9,6 @@ import 'package:cake_wallet/src/screens/backup/backup_page.dart';
9 import 'package:cake_wallet/src/screens/backup/edit_backup_password_page.dart';
10 import 'package:cake_wallet/src/screens/buy/buy_webview_page.dart';
11 import 'package:cake_wallet/src/screens/buy/webview_page.dart';
12 -import 'package:cake_wallet/src/screens/buy/payfura_page.dart';
12 import 'package:cake_wallet/src/screens/buy/pre_order_page.dart';
13 import 'package:cake_wallet/src/screens/restore/sweeping_wallet_page.dart';
14 import 'package:cake_wallet/src/screens/receive/anonpay_invoice_page.dart';
@@ -97,8 +96,6 @@ import 'package:cake_wallet/ionia/ionia_any_pay_payment_info.dart';
96 import 'package:cw_core/crypto_currency.dart';
97 import 'package:cw_core/node.dart';
98
100 -import 'buy/moonpay/moonpay_buy_provider.dart';
101 -
99 late RouteSettings currentRouteSettings;
100
101 Route<dynamic> createRoute(RouteSettings settings) {
@@ -528,9 +525,6 @@ Route<dynamic> createRoute(RouteSettings settings) {
525 param1: title,
526 param2: url));
527
531 - case Routes.payfuraPage:
532 - return CupertinoPageRoute<void>(builder: (_) => getIt.get<PayFuraPage>());
533 -
528 case Routes.advancedPrivacySettings:
529 final type = settings.arguments as WalletType;
530
lib/routes.dart
-1
@@ -81,7 +81,6 @@ class Routes {
81 static const anonPayInvoicePage = '/anon_pay_invoice_page';
82 static const anonPayReceivePage = '/anon_pay_receive_page';
83 static const anonPayDetailsPage = '/anon_pay_details_page';
84 - static const payfuraPage = '/pay_fura_page';
84 static const desktop_actions = '/desktop_actions';
85 static const transactionsPage = '/transactions_page';
86 static const setup_2faPage = '/setup_2fa_page';
lib/src/screens/buy/payfura_page.dart deleted
-58
@@ -1,58 +0,0 @@
1 -import 'package:cake_wallet/buy/payfura/payfura_buy_provider.dart';
2 -import 'package:cake_wallet/generated/i18n.dart';
3 -import 'package:cake_wallet/src/screens/base_page.dart';
4 -import 'package:flutter/material.dart';
5 -import 'package:flutter_inappwebview/flutter_inappwebview.dart';
6 -import 'package:permission_handler/permission_handler.dart';
7 -
8 -class PayFuraPage extends BasePage {
9 - PayFuraPage(this._PayfuraBuyProvider);
10 -
11 - final PayfuraBuyProvider _PayfuraBuyProvider;
12 -
13 - @override
14 - String get title => S.current.buy;
15 -
16 - @override
17 - Widget body(BuildContext context) {
18 - return PayFuraPageBody(_PayfuraBuyProvider);
19 - }
20 -}
21 -
22 -class PayFuraPageBody extends StatefulWidget {
23 - PayFuraPageBody(this._PayfuraBuyProvider);
24 -
25 - final PayfuraBuyProvider _PayfuraBuyProvider;
26 -
27 - Uri get uri => _PayfuraBuyProvider.requestUrl();
28 -
29 - @override
30 - PayFuraPageBodyState createState() => PayFuraPageBodyState();
31 -}
32 -
33 -class PayFuraPageBodyState extends State<PayFuraPageBody> {
34 - PayFuraPageBodyState();
35 -
36 - @override
37 - Widget build(BuildContext context) {
38 - return InAppWebView(
39 - initialOptions: InAppWebViewGroupOptions(
40 - crossPlatform: InAppWebViewOptions(transparentBackground: true),
41 - ),
42 - initialUrlRequest: URLRequest(url: widget.uri),
43 - androidOnPermissionRequest: (_, __, resources) async {
44 - bool permissionGranted = await Permission.camera.status == PermissionStatus.granted;
45 - if (!permissionGranted) {
46 - permissionGranted = await Permission.camera.request().isGranted;
47 - }
48 -
49 - return PermissionRequestResponse(
50 - resources: resources,
51 - action: permissionGranted
52 - ? PermissionRequestResponseAction.GRANT
53 - : PermissionRequestResponseAction.DENY,
54 - );
55 - },
56 - );
57 - }
58 -}
lib/src/screens/wallet_list/wallet_list_page.dart
+20 -20
@@ -149,26 +149,12 @@ class WalletListBodyState extends State<WalletListBody> {
149
150 return wallet.isCurrent
151 ? row
152 - : Row(children: [
153 - Expanded(child: row),
154 - GestureDetector(
155 - onTap: () => _removeWallet(wallet),
156 - child: Container(
157 - height: 40,
158 - width: 44,
159 - padding: EdgeInsets.only(right: 20),
160 - child: Center(
161 - child: Image.asset('assets/images/trash.png',
162 - height: 16,
163 - width: 16,
164 - color: Theme.of(context)
165 - .primaryTextTheme
166 - .titleLarge!
167 - .color),
168 - ),
169 - ),
170 - )
171 - ]);
152 + : Slidable(
153 + key: Key('${wallet.key}'),
154 + startActionPane: _actionPane(wallet),
155 + endActionPane: _actionPane(wallet),
156 + child: row,
157 + );
158 }),
159 ),
160 ),
@@ -291,4 +277,18 @@ class WalletListBodyState extends State<WalletListBody> {
277 _progressBar = null;
278 });
279 }
280 +
281 + ActionPane _actionPane(WalletListItem wallet) => ActionPane(
282 + motion: const ScrollMotion(),
283 + extentRatio: 0.3,
284 + children: [
285 + SlidableAction(
286 + onPressed: (_) => _removeWallet(wallet),
287 + backgroundColor: Colors.red,
288 + foregroundColor: Colors.white,
289 + icon: CupertinoIcons.delete,
290 + label: S.of(context).delete,
291 + ),
292 + ],
293 + );
294 }
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.7"
18 -MONERO_COM_BUILD_NUMBER=50
17 +MONERO_COM_VERSION="1.3.8"
18 +MONERO_COM_BUILD_NUMBER=51
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.6"
24 -CAKEWALLET_BUILD_NUMBER=160
23 +CAKEWALLET_VERSION="4.6.7"
24 +CAKEWALLET_BUILD_NUMBER=161
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.7"
17 -MONERO_COM_BUILD_NUMBER=48
16 +MONERO_COM_VERSION="1.3.8"
17 +MONERO_COM_BUILD_NUMBER=49
18 MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
19
20 CAKEWALLET_NAME="Cake Wallet"
21 -CAKEWALLET_VERSION="4.6.6"
22 -CAKEWALLET_BUILD_NUMBER=155
21 +CAKEWALLET_VERSION="4.6.7"
22 +CAKEWALLET_BUILD_NUMBER=159
23 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
24
25 HAVEN_NAME="Haven"
scripts/macos/app_env.sh
+2 -2
@@ -15,8 +15,8 @@ if [ -n "$1" ]; then
15 fi
16
17 CAKEWALLET_NAME="Cake Wallet"
18 -CAKEWALLET_VERSION="1.0.5"
19 -CAKEWALLET_BUILD_NUMBER=24
18 +CAKEWALLET_VERSION="1.0.6"
19 +CAKEWALLET_BUILD_NUMBER=25
20 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
21
22 if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then