mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-12-22 19:49:22 +00:00
set launchUrl mode to LaunchMode.externalApplication
This commit is contained in:
parent
dfba5be2cd
commit
f401dafdca
13 changed files with 40 additions and 57 deletions
|
@ -5,7 +5,6 @@ import 'package:cake_wallet/generated/i18n.dart';
|
|||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:cake_wallet/src/screens/connect_device/connect_device_page.dart';
|
||||
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
|
||||
import 'package:cake_wallet/utils/device_info.dart';
|
||||
import 'package:cake_wallet/utils/show_pop_up.dart';
|
||||
import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart';
|
||||
import 'package:cw_core/wallet_base.dart';
|
||||
|
@ -167,11 +166,7 @@ class DFXBuyProvider extends BuyProvider {
|
|||
});
|
||||
|
||||
if (await canLaunchUrl(uri)) {
|
||||
if (DeviceInfo.instance.isMobile) {
|
||||
Navigator.of(context).pushNamed(Routes.webViewPage, arguments: [title, uri]);
|
||||
} else {
|
||||
await launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
}
|
||||
} else {
|
||||
throw Exception('Could not launch URL');
|
||||
}
|
||||
|
|
|
@ -9,11 +9,9 @@ import 'package:cake_wallet/buy/order.dart';
|
|||
import 'package:cake_wallet/exchange/trade_state.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
|
||||
import 'package:cake_wallet/store/settings_store.dart';
|
||||
import 'package:cake_wallet/themes/theme_base.dart';
|
||||
import 'package:cake_wallet/utils/device_info.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/wallet_base.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
|
@ -272,11 +270,7 @@ class MoonPayProvider extends BuyProvider {
|
|||
}
|
||||
|
||||
if (await canLaunchUrl(uri)) {
|
||||
if (DeviceInfo.instance.isMobile) {
|
||||
Navigator.of(context).pushNamed(Routes.webViewPage, arguments: ['MoonPay', uri]);
|
||||
} else {
|
||||
await launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
}
|
||||
} else {
|
||||
throw Exception('Could not launch URL');
|
||||
}
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
import 'package:cake_wallet/.secrets.g.dart' as secrets;
|
||||
import 'package:cake_wallet/buy/buy_provider.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:cake_wallet/store/settings_store.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
|
||||
import 'package:cake_wallet/utils/device_info.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/wallet_base.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -94,11 +92,6 @@ class OnRamperBuyProvider extends BuyProvider {
|
|||
|
||||
Future<void> launchProvider(BuildContext context, bool? isBuyAction) async {
|
||||
final uri = requestOnramperUrl(context, isBuyAction);
|
||||
if (DeviceInfo.instance.isMobile) {
|
||||
Navigator.of(context)
|
||||
.pushNamed(Routes.webViewPage, arguments: [title, uri]);
|
||||
} else {
|
||||
await launchUrl(uri);
|
||||
}
|
||||
await launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ import 'package:cake_wallet/src/screens/dashboard/widgets/anonpay_transaction_ro
|
|||
import 'package:cake_wallet/src/screens/dashboard/widgets/order_row.dart';
|
||||
import 'package:cake_wallet/themes/extensions/placeholder_theme.dart';
|
||||
import 'package:cake_wallet/src/widgets/dashboard_card_widget.dart';
|
||||
import 'package:cake_wallet/utils/device_info.dart';
|
||||
import 'package:cake_wallet/utils/responsive_layout_util.dart';
|
||||
import 'package:cake_wallet/view_model/dashboard/anonpay_transaction_list_item.dart';
|
||||
import 'package:cake_wallet/view_model/dashboard/order_list_item.dart';
|
||||
|
@ -52,11 +51,7 @@ class TransactionsPage extends StatelessWidget {
|
|||
try {
|
||||
final uri = Uri.parse(
|
||||
"https://guides.cakewallet.com/docs/FAQ/why_are_my_funds_not_appearing/");
|
||||
if (DeviceInfo.instance.isMobile) {
|
||||
Navigator.of(context).pushNamed(Routes.webViewPage, arguments: ['', uri]);
|
||||
} else {
|
||||
launchUrl(uri);
|
||||
}
|
||||
launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
} catch (_) {}
|
||||
},
|
||||
title: S.of(context).syncing_wallet_alert_title,
|
||||
|
|
|
@ -46,10 +46,6 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
|
|||
bool _checked = false;
|
||||
String _fileText = '';
|
||||
|
||||
Future<void> launchUrl(String url) async {
|
||||
if (await canLaunch(url)) await launch(url);
|
||||
}
|
||||
|
||||
Future getFileLines() async {
|
||||
_fileText = await rootBundle.loadString(
|
||||
isMoneroOnly
|
||||
|
@ -152,7 +148,11 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
|
|||
children: <Widget>[
|
||||
Expanded(
|
||||
child: GestureDetector(
|
||||
onTap: () => launchUrl(changenowUrl),
|
||||
onTap: () async {
|
||||
final uri = Uri.parse(changenowUrl);
|
||||
if (await canLaunchUrl(uri))
|
||||
await launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
},
|
||||
child: Text(
|
||||
changenowUrl,
|
||||
textAlign: TextAlign.left,
|
||||
|
|
|
@ -107,7 +107,9 @@ class IoniaCreateAccountPage extends BasePage {
|
|||
),
|
||||
recognizer: TapGestureRecognizer()
|
||||
..onTap = () async {
|
||||
if (await canLaunch(termsAndConditionsUrl)) await launch(termsAndConditionsUrl);
|
||||
final uri = Uri.parse(termsAndConditionsUrl);
|
||||
if (await canLaunchUrl(uri))
|
||||
await launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
},
|
||||
),
|
||||
TextSpan(text: ' ${S.of(context).and} '),
|
||||
|
@ -119,7 +121,9 @@ class IoniaCreateAccountPage extends BasePage {
|
|||
),
|
||||
recognizer: TapGestureRecognizer()
|
||||
..onTap = () async {
|
||||
if (await canLaunch(privacyPolicyUrl)) await launch(privacyPolicyUrl);
|
||||
final uri = Uri.parse(privacyPolicyUrl);
|
||||
if (await canLaunchUrl(uri))
|
||||
await launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
}),
|
||||
TextSpan(text: ' ${S.of(context).by_cake_pay}'),
|
||||
],
|
||||
|
|
|
@ -31,7 +31,8 @@ class SettingsLinkProviderCell extends StandardListRow {
|
|||
|
||||
static void _launchUrl(String url) async {
|
||||
try {
|
||||
await launch(url, forceSafariVC: false);
|
||||
final uri = Uri.parse(url);
|
||||
if (await canLaunchUrl(uri)) await launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -161,27 +161,26 @@ class YatPopup extends StatelessWidget {
|
|||
onClose: onClose,
|
||||
onGet: () {
|
||||
var createNewYatUrl = YatLink.startFlowUrl;
|
||||
final createNewYatUrlParameters = dashboardViewModel.
|
||||
yatStore.defineQueryParameters();
|
||||
final createNewYatUrlParameters =
|
||||
dashboardViewModel.yatStore.defineQueryParameters();
|
||||
|
||||
if (createNewYatUrlParameters.isNotEmpty) {
|
||||
createNewYatUrl += '?sub1=' + createNewYatUrlParameters;
|
||||
}
|
||||
|
||||
launch(createNewYatUrl, forceSafariVC: false);
|
||||
final uri = Uri.parse(createNewYatUrl);
|
||||
launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
},
|
||||
onConnect: () {
|
||||
String url = baseUrl + YatLink.signInSuffix;
|
||||
final parameters = dashboardViewModel
|
||||
.yatStore.defineQueryParameters();
|
||||
final parameters = dashboardViewModel.yatStore.defineQueryParameters();
|
||||
if (parameters.isNotEmpty) {
|
||||
url += YatLink.queryParameter + parameters;
|
||||
}
|
||||
launch(url, forceSafariVC: false);
|
||||
}
|
||||
))
|
||||
: Container()
|
||||
)
|
||||
final uri = Uri.parse(url);
|
||||
launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
}))
|
||||
: Container())
|
||||
],
|
||||
);
|
||||
}
|
||||
|
|
|
@ -103,7 +103,8 @@ class _ServicesUpdatesWidgetState extends State<ServicesUpdatesWidget> {
|
|||
child: PrimaryImageButton(
|
||||
onPressed: () {
|
||||
try {
|
||||
launchUrl(Uri.parse("https://status.cakewallet.com/"));
|
||||
launchUrl(Uri.parse("https://status.cakewallet.com/"),
|
||||
mode: LaunchMode.externalApplication);
|
||||
} catch (_) {}
|
||||
},
|
||||
image: Image.asset(
|
||||
|
|
|
@ -101,13 +101,13 @@ abstract class OrderDetailsViewModelBase with Store {
|
|||
TrackTradeListItem(
|
||||
title: S.current.track,
|
||||
value: buildURL,
|
||||
onTap: () {
|
||||
onTap: () async {
|
||||
try {
|
||||
launch(buildURL);
|
||||
final uri = Uri.parse(buildURL);
|
||||
if (await canLaunchUrl(uri))
|
||||
await launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
} catch (e) {}
|
||||
}
|
||||
)
|
||||
);
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -179,7 +179,7 @@ abstract class TradeDetailsViewModelBase with Store {
|
|||
void _launchUrl(String url) {
|
||||
final uri = Uri.parse(url);
|
||||
try {
|
||||
launchUrl(uri);
|
||||
launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -99,9 +99,10 @@ abstract class TransactionDetailsViewModelBase with Store {
|
|||
items.add(BlockExplorerListItem(
|
||||
title: S.current.view_in_block_explorer,
|
||||
value: _explorerDescription(type),
|
||||
onTap: () {
|
||||
onTap: () async {
|
||||
try {
|
||||
launch(_explorerUrl(type, tx.id));
|
||||
final uri = Uri.parse(_explorerUrl(type, tx.id));
|
||||
if (await canLaunchUrl(uri)) await launchUrl(uri, mode: LaunchMode.externalApplication);
|
||||
} catch (e) {}
|
||||
}));
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ abstract class UnspentCoinsDetailsViewModelBase with Store {
|
|||
onTap: () {
|
||||
try {
|
||||
final url = Uri.parse(_explorerUrl(_type, unspentCoinsItem.hash));
|
||||
return launchUrl(url);
|
||||
return launchUrl(url, mode: LaunchMode.externalApplication);
|
||||
} catch (e) {}
|
||||
},
|
||||
));
|
||||
|
|
Loading…
Reference in a new issue