Force social links to be opened in the browser instead of the webview (#1157)

This commit is contained in:
Vishnu Mohandas 2023-05-27 11:07:41 +05:30 committed by GitHub
commit c624ed40dd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 16 deletions

View file

@ -1,3 +1,5 @@
import "dart:io";
import 'package:flutter/material.dart';
import "package:photos/generated/l10n.dart";
import 'package:photos/services/update_service.dart';
@ -34,11 +36,16 @@ class SocialSectionWidget extends StatelessWidget {
);
options.addAll(
[
SocialsMenuItemWidget(S.of(context).blog, "https://ente.io/blog"),
SocialsMenuItemWidget(
S.of(context).blog,
"https://ente.io/blog",
launchInExternalApp: !Platform.isAndroid,
),
sectionOptionSpacing,
SocialsMenuItemWidget(
S.of(context).merchandise,
"https://shop.ente.io",
launchInExternalApp: !Platform.isAndroid,
),
sectionOptionSpacing,
SocialsMenuItemWidget(
@ -72,10 +79,15 @@ class SocialSectionWidget extends StatelessWidget {
class SocialsMenuItemWidget extends StatelessWidget {
final String text;
final String urlSring;
final String url;
final bool launchInExternalApp;
const SocialsMenuItemWidget(this.text, this.urlSring, {Key? key})
: super(key: key);
const SocialsMenuItemWidget(
this.text,
this.url, {
Key? key,
this.launchInExternalApp = true,
}) : super(key: key);
@override
Widget build(BuildContext context) {
@ -87,7 +99,12 @@ class SocialsMenuItemWidget extends StatelessWidget {
trailingIcon: Icons.chevron_right_outlined,
trailingIconIsMuted: true,
onTap: () async {
launchUrlString(urlSring);
launchUrlString(
url,
mode: launchInExternalApp
? LaunchMode.externalApplication
: LaunchMode.platformDefault,
);
},
);
}

View file

@ -4,13 +4,13 @@ import 'package:flutter/material.dart';
import 'package:photos/core/constants.dart';
import "package:photos/generated/l10n.dart";
import 'package:photos/theme/ente_theme.dart';
import 'package:photos/ui/common/web_page.dart';
import 'package:photos/ui/components/captioned_text_widget.dart';
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
import 'package:photos/ui/components/menu_item_widget/menu_item_widget.dart';
import 'package:photos/ui/settings/about_section_widget.dart';
import 'package:photos/ui/settings/common_settings.dart';
import 'package:photos/utils/email_util.dart';
import "package:url_launcher/url_launcher_string.dart";
class SupportSectionWidget extends StatelessWidget {
const SupportSectionWidget({Key? key}) : super(key: key);
@ -55,16 +55,9 @@ class SupportSectionWidget extends StatelessWidget {
trailingIcon: Icons.chevron_right_outlined,
trailingIconIsMuted: true,
onTap: () async {
Navigator.of(context).push(
MaterialPageRoute(
builder: (BuildContext context) {
return WebPage(
S.of(context).suggestFeatures,
githubIssuesUrl,
canOpenInBrowser: true,
);
},
),
launchUrlString(
githubIssuesUrl,
mode: LaunchMode.externalApplication,
);
},
),