ente/lib/ui/settings/support_section_widget.dart

86 lines
2.9 KiB
Dart
Raw Normal View History

2022-06-28 14:39:17 +00:00
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:photos/core/constants.dart';
import "package:photos/generated/l10n.dart";
2022-10-21 13:37:57 +00:00
import 'package:photos/theme/ente_theme.dart';
import 'package:photos/ui/components/captioned_text_widget.dart';
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
2023-01-31 12:21:57 +00:00
import 'package:photos/ui/components/menu_item_widget/menu_item_widget.dart';
2022-12-07 05:44:15 +00:00
import 'package:photos/ui/settings/about_section_widget.dart';
import 'package:photos/ui/settings/common_settings.dart';
2021-06-12 10:33:24 +00:00
import 'package:photos/utils/email_util.dart';
2023-05-27 05:36:42 +00:00
import "package:url_launcher/url_launcher_string.dart";
class SupportSectionWidget extends StatelessWidget {
2022-12-27 17:51:11 +00:00
const SupportSectionWidget({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return ExpandableMenuItemWidget(
title: S.of(context).support,
selectionOptionsWidget: _getSectionOptions(context),
leadingIcon: Icons.help_outline_outlined,
);
}
Widget _getSectionOptions(BuildContext context) {
2022-06-28 14:39:17 +00:00
final String bugsEmail =
Platform.isAndroid ? "android-bugs@ente.io" : "ios-bugs@ente.io";
2021-07-28 15:41:45 +00:00
return Column(
children: [
sectionOptionSpacing,
MenuItemWidget(
captionedTextWidget: CaptionedTextWidget(
title: S.of(context).contactSupport,
),
2022-10-21 13:37:57 +00:00
pressedColor: getEnteColorScheme(context).fillFaint,
trailingIcon: Icons.chevron_right_outlined,
trailingIconIsMuted: true,
onTap: () async {
await sendEmail(context, to: supportEmail);
},
2021-05-07 22:44:03 +00:00
),
sectionOptionSpacing,
AboutMenuItemWidget(
title: S.of(context).faq,
2022-12-07 05:44:15 +00:00
url: "https://ente.io/faq",
),
sectionOptionSpacing,
MenuItemWidget(
captionedTextWidget: CaptionedTextWidget(
title: S.of(context).suggestFeatures,
),
2022-10-21 13:37:57 +00:00
pressedColor: getEnteColorScheme(context).fillFaint,
trailingIcon: Icons.chevron_right_outlined,
trailingIconIsMuted: true,
onTap: () async {
2023-12-21 07:34:06 +00:00
// ignore: unawaited_futures
2023-05-27 05:36:42 +00:00
launchUrlString(
githubIssuesUrl,
mode: LaunchMode.externalApplication,
2021-05-25 14:02:13 +00:00
);
},
),
sectionOptionSpacing,
MenuItemWidget(
captionedTextWidget: CaptionedTextWidget(
title: S.of(context).reportABug,
),
2022-10-21 13:37:57 +00:00
pressedColor: getEnteColorScheme(context).fillFaint,
trailingIcon: Icons.chevron_right_outlined,
trailingIconIsMuted: true,
2021-08-09 07:10:05 +00:00
onTap: () async {
await sendLogs(context, S.of(context).reportBug, bugsEmail);
2021-08-09 07:10:05 +00:00
},
2023-04-17 07:14:09 +00:00
onLongPress: () async {
final zipFilePath = await getZippedLogsFile(context);
2022-06-28 14:39:17 +00:00
await shareLogs(context, bugsEmail, zipFilePath);
2022-06-06 10:32:10 +00:00
},
2021-08-09 07:10:05 +00:00
),
sectionOptionSpacing,
2021-07-28 15:41:45 +00:00
],
);
}
}