ente/lib/ui/settings/support_section_widget.dart

80 lines
2.6 KiB
Dart
Raw Normal View History

2022-11-01 06:13:06 +00:00
// @dart=2.9
import 'package:ente_auth/core/constants.dart';
import 'package:ente_auth/core/logging/super_logging.dart';
2022-11-01 06:13:06 +00:00
import 'package:ente_auth/theme/ente_theme.dart';
import 'package:ente_auth/ui/components/captioned_text_widget.dart';
import 'package:ente_auth/ui/components/expandable_menu_item_widget.dart';
import 'package:ente_auth/ui/components/menu_item_widget.dart';
import 'package:ente_auth/ui/components/toggle_switch_widget.dart';
2022-11-01 06:13:06 +00:00
import 'package:ente_auth/ui/settings/common_settings.dart';
import 'package:ente_auth/utils/email_util.dart';
import 'package:flutter/material.dart';
class SupportSectionWidget extends StatefulWidget {
2022-11-01 06:13:06 +00:00
const SupportSectionWidget({Key key}) : super(key: key);
@override
State<SupportSectionWidget> createState() => _SupportSectionWidgetState();
}
class _SupportSectionWidgetState extends State<SupportSectionWidget> {
2022-11-01 06:13:06 +00:00
@override
Widget build(BuildContext context) {
return ExpandableMenuItemWidget(
title: "Support",
selectionOptionsWidget: _getSectionOptions(context),
leadingIcon: Icons.help_outline_outlined,
);
}
Widget _getSectionOptions(BuildContext context) {
return Column(
children: [
sectionOptionSpacing,
MenuItemWidget(
captionedTextWidget: const CaptionedTextWidget(
title: "Email",
),
pressedColor: getEnteColorScheme(context).fillFaint,
trailingIcon: Icons.chevron_right_outlined,
trailingIconIsMuted: true,
onTap: () async {
await sendEmail(context, to: supportEmail);
},
),
sectionOptionSpacing,
MenuItemWidget(
captionedTextWidget: const CaptionedTextWidget(
title: "Report a bug",
),
pressedColor: getEnteColorScheme(context).fillFaint,
trailingIcon: Icons.chevron_right_outlined,
trailingIconIsMuted: true,
onTap: () async {
2022-11-22 08:36:36 +00:00
await sendLogs(context, "Report bug", "auth@ente.io");
2022-11-01 06:13:06 +00:00
},
onDoubleTap: () async {
final zipFilePath = await getZippedLogsFile(context);
2022-11-22 08:36:36 +00:00
await shareLogs(context, "auth@ente.io", zipFilePath);
2022-11-01 06:13:06 +00:00
},
),
sectionOptionSpacing,
MenuItemWidget(
captionedTextWidget: const CaptionedTextWidget(
title: "Crash analytics",
),
trailingSwitch: ToggleSwitchWidget(
value: SuperLogging.shouldReportErrors(),
onChanged: (value) async {
await SuperLogging.setShouldReportErrors(value);
setState(() {});
},
),
),
sectionOptionSpacing,
2022-11-01 06:13:06 +00:00
],
);
}
}